质量异常接口v2

master
yinq 3 years ago
parent 8421dc2ef2
commit cfb50d3c25

@ -42,7 +42,7 @@ public class QualitySystemDto {
/**
*
*/
private String number;//工单
private String number;//图号
/**
*
*/
@ -75,7 +75,7 @@ public class QualitySystemDto {
/**
*
*/
private String pbUser;
private String submission_man_employee_no;
/**
*
@ -158,7 +158,7 @@ public class QualitySystemDto {
/**
*
*/
private String problem_owner;//责任人
private String problem_owner_name;//责任人
/**
*
*/

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
@ -257,6 +258,9 @@ public class AbnormalBill extends Model<AbnormalBill> {
@TableField(value = "BPM_SUBMIT")
private String bpmSubmit;
@TableField(exist = false)
private List<String> ncCodeDesc;
@TableField(exist = false)
private String filePath;
@ -290,6 +294,13 @@ public class AbnormalBill extends Model<AbnormalBill> {
this.userConTime = userConTime;
}
public List<String> getNcCodeDesc() {
return ncCodeDesc;
}
public void setNcCodeDesc(List<String> ncCodeDesc) {
this.ncCodeDesc = ncCodeDesc;
}
public String getBpmFlowId() {
return bpmFlowId;

@ -71,4 +71,18 @@ public interface YunBpmService {
*/
YunBpmApiRes saveQualitySystem(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose, String ncGroup, String ncCode);
/**
*
* @author donglt
* @date 2021/8/14 23:55
* @param sheetCode CodegetH3URL
* @param workflowCode Code
* @param workflowFormId ID
* @param workflowInstanceId ID
* @param workItemId ID
* @param replayToken ReplayToken
* @param accessToken AccessToken
* @return org.jeecg.modules.pq.yunbpm.bean.YunBpmApiRes
**/
YunBpmApiRes defaultSubmitForm(String sheetCode, String workflowCode, String workflowFormId, String workflowInstanceId, String workItemId, String replayToken, String accessToken);
}

@ -10,6 +10,7 @@ import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillLog;
import com.foreverwin.mesnac.anomaly.model.AbnormalNcCode;
import com.foreverwin.mesnac.anomaly.service.*;
import com.foreverwin.mesnac.anomaly.utils.YunBpmApiRes;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.enums.HandleEnum;
import com.foreverwin.mesnac.meapi.mapper.ShopOrderMapper;
@ -17,6 +18,7 @@ import com.foreverwin.mesnac.meapi.model.Router;
import com.foreverwin.mesnac.meapi.model.ShopOrder;
import com.foreverwin.mesnac.meapi.service.NwaUserService;
import com.foreverwin.mesnac.meapi.service.RouterService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.exception.BusinessException;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
@ -29,6 +31,8 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
*
@ -70,6 +74,9 @@ public class AbnormalBillLogServiceImpl extends ServiceImpl<AbnormalBillLogMappe
@Autowired
private AbnormalPlanService abnormalPlanService;
@Autowired
private YunBpmService yunBpmService;
@Override
public IPage<AbnormalBillLog> selectPage(FrontPage<AbnormalBillLog> frontPage, AbnormalBillLog abnormalBillLog) {
@ -91,6 +98,26 @@ public class AbnormalBillLogServiceImpl extends ServiceImpl<AbnormalBillLogMappe
String site = CommonMethods.getSite();
AbnormalBillLog abnormalBillLog = abnormalBillLogMapper.findAllByAbnormalNo(abnormalBill);
/**
* mesbpm
*/
AbnormalBill aBill = new AbnormalBill();
aBill.setAbnormalNo(abnormalBill.getAbnormalNo());
List<AbnormalBill> abnormalBills = abnormalBillService.selectList(aBill);
if (abnormalBills.get(0).getBpmSubmit().equals("false")) {
//abnormalBill.setBpmSubmit("false");
abnormalBill.setBpmFlowId(abnormalBills.get(0).getBpmFlowId());
List<String> NcCodeGroupList = (List)abnormalBill.getNcCodeDesc().stream().map((e) -> {
return e.split("/")[0];
}).collect(Collectors.toList());
YunBpmApiRes bpmApiRes = yunBpmService.saveQualitySystem(abnormalBill, abnormalBillDispose,
String.join(";", NcCodeGroupList), String.join(";", abnormalBill.getNcCodeDesc()));
if (!bpmApiRes.getErrCode().equals(0)) {
throw new BaseException("MES->质量BPM系统修改失败");
}
}
if (!StringUtil.isBlank(abnormalBillDispose.getRouterBo())) {
//分割该工艺路线
String[] routerSplit = abnormalBillDispose.getRouterBo().split(",");

@ -9,6 +9,7 @@ import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import com.foreverwin.mesnac.anomaly.service.YunBpmService;
import com.foreverwin.mesnac.anomaly.utils.*;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.util.DateUtil;
import com.foreverwin.mesnac.meapi.util.StringUtils;
import org.apache.http.Consts;
@ -21,6 +22,8 @@ import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@ -35,7 +38,11 @@ import java.util.Map;
*/
@Service
public class YunBpmServiceImpl implements YunBpmService {
private final Logger logger = LoggerFactory.getLogger(YunBpmServiceImpl.class);
private final static String DEFAULT_ACTION_CODE = "submit";
private final static Boolean DEFAULT_AGREE = true;
private final static String DEFAULT_FORM_TYPE = "1";
@Override
public YunBpmApiRes saveForm(Object formData, String owner, String ownerDeptId, String sheetCode, String workflowCode, String replayToken, String accessToken) {
return saveOrUpdateForm(formData, owner, ownerDeptId, sheetCode, workflowCode, null, null, null, replayToken, accessToken);
@ -64,6 +71,7 @@ public class YunBpmServiceImpl implements YunBpmService {
.product_barcode(abnormalBill.getSfc()).work_order(abnormalBill.getWorkOrder()).submit_date(DateUtil.getCurrentDate())
.item_number(abnormalBill.getItemNumber()).product_category(abnormalBill.getProductCategory())
.submission_users(abnormalBill.getReportSendUserGroup()).working_procedure_code(abnormalBill.getOperation())
.submission_man_employee_no(abnormalBill.getPbUser())
//不良明细
.problem_description(abnormalBill.getPbDescription()).problem_number(abnormalBill.getPbQty())
.discover_link(abnormalBill.getDiscover()).entity_location(abnormalBill.getEntityLocation())
@ -74,7 +82,7 @@ public class YunBpmServiceImpl implements YunBpmService {
//责任划分
.cause_analysis(abnormalBillDispose.getDutyCauseDescription()).reason_type(abnormalBillDispose.getDutyCauseType())
.responsibility_type(abnormalBillDispose.getDutyType()).responsibility_dept(abnormalBillDispose.getDutyDepart())
.problem_owner(abnormalBillDispose.getPrincipalUser())
.problem_owner_name(abnormalBillDispose.getPrincipalUser())
//.send_user_group()
/*//解决方案
.abnormalbill_programme().repair_process_route().repair_process_version()
@ -89,15 +97,54 @@ public class YunBpmServiceImpl implements YunBpmService {
OAuthTokenInfo auth = getTokenByUserNameAndPassword(yunBpmConfig.userName, yunBpmConfig.passWord);
YunBpmApiRes tokenRes = getReplayToken(auth.getAccess_token());
if (auth.getSuccess()) {
/**
* bpm
*/
YunBpmApiRes result = saveForm(qualitySystem, auth.getUser_id(), yunBpmConfig.deptId,
yunBpmConfig.workCode, yunBpmConfig.workCode, (String)tokenRes.getData(), auth.getAccess_token());
/*YunBpmApiRes result = updateForm(qualitySystem, yunBpmConfig.workCode, yunBpmConfig.workCode,
"d9e5aa7ec13849aabf2a879aa94ebc15", "1165ec5df80f4df8ae615539de6fa7ff", "50f1f3cf78124e7ab91a0432f3aeb3f0",
(String) tokenRes.getData(), auth.getAccess_token());*/
System.out.println(result.toString());
YunBpmApiRes result = null;
if (abnormalBill.getStatus().equals("N")){
//mes->bpm 提报
try {
result = saveForm(qualitySystem, auth.getUser_id(), yunBpmConfig.deptId,
yunBpmConfig.workCode, yunBpmConfig.workCode, (String)tokenRes.getData(), auth.getAccess_token());
String workflowInstanceId = JSON.parseObject(String.valueOf(result.getData())).getString("workflowInstanceId");
abnormalBill.setBpmFlowId(workflowInstanceId);
//mes->bpm 提交
String url = yunBpmConfig.getApiBaseUrl() + "/api/api/runtime/form/load?workflowInstanceId=" + abnormalBill.getBpmFlowId()
+ "&access_token=" + auth.getAccess_token();
String res = HttpUtil.get(url);
JSONObject jsonObject = JSON.parseObject(res);
JSONObject jsonData = jsonObject.getJSONObject("data");
String workItemId = jsonData.getString("workItemId");
String workflowFormId = jsonData.getJSONObject("bizObject").getJSONObject("data").getString("id");
result = defaultSubmitForm(yunBpmConfig.workCode, yunBpmConfig.workCode,workflowFormId, abnormalBill.getBpmFlowId(),
workItemId,(String)tokenRes.getData(), auth.getAccess_token());
} catch (Exception e) {
logger.error("bpm表单返回错误结果" + e.toString(),result);
}
}else {
String url = yunBpmConfig.getApiBaseUrl() + "/api/api/runtime/form/load?workflowInstanceId=" + abnormalBill.getBpmFlowId()
+ "&access_token=" + auth.getAccess_token();
String res = HttpUtil.get(url);
JSONObject jsonObject = JSON.parseObject(res);
JSONObject jsonData = jsonObject.getJSONObject("data");
String workItemId = jsonData.getString("workItemId");
String workflowFormId = jsonData.getJSONObject("bizObject").getJSONObject("data").getString("id");
if (!abnormalBill.getStatus().equals(Constants.SHUT_DOWN)){
//保存
result = updateForm(qualitySystem, yunBpmConfig.workCode, yunBpmConfig.workCode,
workflowFormId, abnormalBill.getBpmFlowId(), workItemId,
(String) tokenRes.getData(), auth.getAccess_token());
}else {
//闭关关闭
JSONObject jsonObj = new JSONObject();
jsonObj.put("abnormalbill_reason",abnormalBillDispose.getAbnormalReason());
jsonObj.put("preventive_measure",abnormalBillDispose.getBeforeMeasure());
jsonObj.put("mes_status",0);
System.out.println(jsonObj);
result = updateForm(jsonObj, yunBpmConfig.workCode, yunBpmConfig.workCode,
workflowFormId, abnormalBill.getBpmFlowId(), workItemId,
(String) tokenRes.getData(), auth.getAccess_token());
}
}
logger.info("bpm表单返回结果" + result.toString());
return result;
}
return null;
@ -140,10 +187,59 @@ public class YunBpmServiceImpl implements YunBpmService {
String requestUrl = yunBpmConfig.getApiBaseUrl() +
String.format(YunBpmApis.SAVE_OR_UPDATE_FORM, accessToken);
String jsons = JSONUtil.toJsonStr(saveFormModel);
System.out.println(jsons);
String respBody = HttpUtil.post(requestUrl, JSONUtil.toJsonStr(saveFormModel));
return JSONUtil.toBean(respBody, YunBpmApiRes.class);
}
@Override
public YunBpmApiRes defaultSubmitForm(String sheetCode, String workflowCode, String workflowFormId, String workflowInstanceId, String workItemId, String replayToken, String accessToken) {
return submitForm(DEFAULT_ACTION_CODE,DEFAULT_AGREE,DEFAULT_FORM_TYPE, sheetCode, workflowCode, workflowFormId, workflowInstanceId, workItemId, replayToken, accessToken);
}
/**
*
* @author donglt
* @date 2021/8/14 23:55
* @param actionCode submitagreedisAgree
* @param agree , true:false:
* @param formType 12
* @param sheetCode Code
* @param workflowCode Code
* @param workflowFormId ID
* @param workflowInstanceId ID
* @param workItemId ID
* @param replayToken ReplayToken
* @param accessToken AccessToken
* @return org.jeecg.modules.pq.yunbpm.bean.YunBpmApiRes
**/
private YunBpmApiRes submitForm(String actionCode,Boolean agree,String formType, String sheetCode,String workflowCode, String workflowFormId, String workflowInstanceId, String workItemId, String replayToken, String accessToken) {
String requestUrl = yunBpmConfig.getApiBaseUrl() + String.format(YunBpmApis.FORM_SUBMIT,accessToken);
Map<String, String> formData = new HashMap<>();
formData.put("id", workflowFormId);
BizObjectModel bizObjectModel = BizObjectModel.builder()
.data(formData)
.id(workflowFormId)
.sheetCode(sheetCode)
.schemaCode(sheetCode)
.workflowInstanceId(workflowInstanceId)
.build();
SubmitFormModel submitFormModel = SubmitFormModel.builder()
.actionCode(actionCode)
.agree(agree)
.formType(formType)
.replayToken(replayToken)
.workflowCode(workflowCode)
.workItemId(workItemId)
.workflowInstanceId(workflowInstanceId)
.bizObject(bizObjectModel)
.build();
String respBody = HttpUtil.post(requestUrl, JSONUtil.toJsonStr(submitFormModel));
return JSONUtil.toBean(respBody, YunBpmApiRes.class);
}
/**
*

@ -0,0 +1,73 @@
package com.foreverwin.mesnac.anomaly.utils;
import lombok.Data;
import java.util.Date;
/**
* AttachmentModel
* TODO
*
* @author donglt
* @version 1.0
* @date 2021/8/12 01:20
*/
@Data
public class AttachmentModel {
/**
* base64
*/
private String base64ImageStr;
/**
* id
*/
private String createdBy;
private Date createdTime;
private Boolean deleted;
/**
*
*/
private String fileExtension;
/**
*
*/
private Integer fileSize;
/**
* id
*/
private String id;
/**
* mime type
*/
private String mimeType;
/**
* id
*/
private String modifiedBy;
private Date modifiedTime;
/**
*
*/
private String name;
/**
* id
*/
private String refId;
private String remarks;
/**
*
*/
private String schemaCode;
}

@ -0,0 +1,107 @@
package com.foreverwin.mesnac.anomaly.utils;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* Approval
* TODO
*
* @author donglt
* @version 1.0
* @date 2021/8/12 01:06
*/
@Data
@Builder
@JsonInclude(value= JsonInclude.Include.NON_NULL)
public class BizCommentModel {
/**
* . 1 2 3 4 5 6 7: . 2, 3
*/
private String actionType;
/**
*
*/
private String activityCode;
/**
*
*/
private String activityName;
/**
* id
*/
private String bizObjectId;
/**
*
*/
private String bizPropertyCode;
/**
*
*/
private Date commentTime;
/**
*
*/
private String content;
/**
* id
*/
private String createdBy;
/**
*
*/
private Date createdTime;
/**
*
*/
private String creater;
private Boolean deleted;
private String id;
/**
* id
*/
private Date modifiedBy;
private Date modifiedTime;
/**
* . : [{id: "xxx", type: 3}]
*/
private String relUsers;
private String remarks;
/**
* . 1: , 2: , 3: , 0null: ()',
*/
private String result;
/**
*
*/
private String schemaCode;
/**
* id
*/
private Integer tokenId;
/**
* id
*/
private String workItemId;
/**
* id
*/
private String workflowInstanceId;
/**
* TokenId
*/
private String workflowTokenId;
/**
*
**/
private List<AttachmentModel> resources;
}

@ -9,12 +9,17 @@ public class yunBpmConfig {
public static final String userName = "zhangzy";
public static final String passWord = "123456";
public static final String apiBaseUrl = "http://yunbpmcs.mesnac.com:8080";
public static final String apiBaseUrl = "http://yunbpmcs.mesnac.com:8080";//测试
//public static final String apiBaseUrl = "http://754f8392.r2.cpolar.top";//测试
public static final String apiBaseToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBpIl0sImNvcnBJZCI6bnVsbCwidXNlcl9pZCI6ImU1MGVmMDE2NzhkZDQ2MGViZWUwNmYwZjE5OTU4M2JjIiwidXNlcl9uYW1lIjoiMjYyMjI2MTY0NTcwMzE3MCIsInNjb3BlIjpbInJlYWQiXSwibW9iaWxlIjpmYWxzZSwiaXNBZG1pbiI6dHJ1ZSwiZXhwIjoxNjYyNjI3MTM3LCJpc0FwcEFkbWluIjpmYWxzZSwiYXV0aG9yaXRpZXMiOlsiVVNFUiIsIkFVVEhfU1lTVEVNX01BTkFHRSJdLCJqdGkiOiI1YmJhNjQ3Yy0yNWNkLTRhZTMtYmRlMC0zYjE4NDYyZGI5YmYiLCJjbGllbnRfaWQiOiJhcGkifQ.NiQUUBapr9K5Tx3xIJzRaRfk426Rwl9bUiRCRpsF_fIQp19wot9FXJQWMTKF7mLkjbKxo6IBAfo-mGkpQRC_WLjaRnMGzVxalwXojN95KR1NAvAgSyiEsgwFDdatW_Yiwan4orHZHUc1Q_eyr_8AmZ-OIWrhFhS9hosky4FQx-v7M_L065a5xW8MDeuMOUSSoVWcxZP1Obo12PAMGHMBl36TJR4C7XanBSLw0kW7K3Ab6fhlJ6QLLC8SOb3dC4LTJToxFmXRNU7REKIs5Vu6087hJM7eSttZNu4aaSwqxeigWulHMFJGktSzQKl50l8breWXyb7AxcgvI0wG-FmA6g";//测试
//public static final String apiBaseUrl = "http://yunbpm.mesnac.com:8080";//正式
/**
* url
*/
public static final String urlStr = "http://yunbpmcs.mesnac.com:8080/api/api/aliyun/upload";
public static final String clientSecret = "c31b32364ce19ca8fcd150a417ecce58";
public static final String clientId = "api";
/**
* Id

Loading…
Cancel
Save