From 87e99fadd6694c7cbf4aa204cc3f4092806dadd1 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 16 Nov 2023 09:43:47 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E6=88=90=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 317440 -> 317440 bytes .../wms/ext/mes/rest/LmsToMesController.java | 7 + .../wms/ext/mes/service/LmsToMesService.java | 6 + .../mes/service/impl/LmsToMesServiceImpl.java | 37 +++++ .../mes/service/impl/MesToLmsServiceImpl.java | 44 ++++- .../instor/rest/ProductScrapController.java | 8 + .../instor/service/ProductScrapService.java | 6 + .../service/impl/ProductScrapServiceImpl.java | 154 ++++++++++++++++++ .../wms/st/inStor/productscrap/index.vue | 23 +++ .../st/inStor/productscrap/productscrap.js | 9 +- .../src/views/wms/st/outbill/MoneyDialog.vue | 19 +++ 11 files changed, 308 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index bc5a57a9dbb2f14d99644c6248aea364c27be389..25f8c21a216995450d163c11b00ac6a658c3ae6d 100644 GIT binary patch delta 11307 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 Ap#T5? delta 11129 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 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java index 91d7fbbe9..cae29d5ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java @@ -98,4 +98,11 @@ public class LmsToMesController { public ResponseEntity lmsPackage(@RequestBody JSONObject jo) { return new ResponseEntity<>(lmsToMesService.lmsPackage(jo), HttpStatus.OK); } + + @PostMapping("/scrapAudit") + @Log("成品报废审核") + @ApiOperation("成品报废审核") + public ResponseEntity scrapAudit(@RequestBody JSONObject jo) { + return new ResponseEntity<>(lmsToMesService.scrapAudit(jo), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java index 4da855c49..97d0aa7ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java @@ -110,4 +110,10 @@ public interface LmsToMesService { * } */ JSONObject lmsPackage(JSONObject jo); + + /** + * 成品报废审核 + * 参数: + */ + JSONObject scrapAudit(JSONObject jo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java index d16b08bb5..af0147968 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java @@ -604,4 +604,41 @@ public class LmsToMesServiceImpl implements LmsToMesService { } return result; } + + @Override + public JSONObject scrapAudit(JSONObject param) { + log.info("scrapAudit接口输入参数为:-------------------" + param.toString()); + + JSONObject result = new JSONObject(); + if (StrUtil.equals("0", is_connect_mes)) { + result.put("status", HttpStatus.OK.value()); + result.put("message", "下发成功,但未连接飞书!"); + result.put("data", new JSONObject()); + return result; + } + + // String url = acsUrl + api; + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("FEISHU_URL").getValue(); + String api = "/FeiShuNoticesWebApi/CreateApproval"; + url = url + api; + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("scrapAudit接口输出参数为:-------------------" + result.toString()); + + + String RTYPE = result.getString("RTYPE"); + if (RTYPE.equals("E")) { + throw new BadRequestException(result.getString("RTMSG")); + } + + + } catch (Exception e) { + throw new BadRequestException("飞书提示错误:" + e.getMessage()); + } + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 043dd2400..de3d62a29 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -23,6 +23,7 @@ import org.nl.wms.pda.mps.service.impl.BakingServiceImpl; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.tasks.CoolCutTask; import org.nl.wms.st.inbill.service.CheckOutBillService; +import org.nl.wms.st.instor.service.impl.ProductScrapServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -1358,9 +1359,44 @@ public class MesToLmsServiceImpl implements MesToLmsService { @Override public JSONObject sendAuditResult(JSONObject param) { - String instance_code = param.getString("instance_code"); - //0-不通过;1-通过; - String result = param.getString("result"); - return null; + log.info("sendAuditResult接口输入参数为:-------------------" + param.toString()); + + WQLObject mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + JSONObject resultParam = new JSONObject(); + + try { + String instance_code = param.getString("instance_code"); + //0-不通过;1-通过; + String result = param.getString("result"); + + if (ObjectUtil.isEmpty(instance_code)) throw new BadRequestException("参数instance_code不能为空"); + if (ObjectUtil.isEmpty(result)) throw new BadRequestException("参数result不能为空"); + + JSONObject json = mst.query("ext_code = '" + instance_code + "' and bill_status = '20'").uniqueResult(0); + if (ObjectUtil.isEmpty(json)) throw new BadRequestException("未找到对应单据或已经完成!"); + + // 调用接口 + ProductScrapServiceImpl bean = SpringContextHolder.getBean(ProductScrapServiceImpl.class); + + if (result.equals("0")) { + bean.auditOut(json); + } else { + bean.auditPass(json); + } + + resultParam.put("RTYPE", "S"); + resultParam.put("Code", "0"); + resultParam.put("RTMSG", "操作成功!"); + System.out.println(resultParam); + + } catch (Exception e) { + resultParam.put("RTYPE", "E"); + resultParam.put("Code", "1"); + resultParam.put("RTMSG", "操作失败!," + e.getMessage()); + System.out.println(resultParam); + } + + log.info("sendAuditResult接口输出参数为:-------------------" + resultParam.toString()); + return resultParam; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java index 34025866a..d34f700c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java @@ -76,4 +76,12 @@ public class ProductScrapController { return new ResponseEntity<>(HttpStatus.CREATED); } + @PostMapping("/onSubmit") + @Log("提交") + @ApiOperation("提交") + public ResponseEntity onSubmit(@RequestBody JSONObject whereJson) { + productScrapService.onSubmit(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java index b4452140e..91563e89a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java @@ -49,4 +49,10 @@ public interface ProductScrapService { * @param whereJson / */ void auditOut(JSONObject whereJson); + + /** + * 提交 + * @param whereJson / + */ + void onSubmit(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index d0c1eb0ed..179d69d58 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -16,10 +16,15 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; +import org.nl.system.service.user.ISysUserService; +import org.nl.system.service.user.dao.SysUser; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; +import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.st.inbill.service.CheckOutBillService; import org.nl.wms.st.instor.service.ProductScrapService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,6 +43,9 @@ import java.util.stream.Collectors; public class ProductScrapServiceImpl implements ProductScrapService { private final CheckOutBillService checkOutBillService; + @Autowired + private ISysUserService iSysUserService; + @Override public Map pageQuery(Map whereJson, Pageable page) { HashMap map = new HashMap<>(whereJson); @@ -284,4 +292,150 @@ public class ProductScrapServiceImpl implements ProductScrapService { mst.update(param,"scrap_id = '"+whereJson.getString("scrap_id")+"'"); } + @Override + @Transactional(rollbackFor = Exception.class) + public void onSubmit(JSONObject whereJson) { + WQLObject mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + WQLObject dtl = WQLObject.getWQLObject("st_ivt_productscrapdtl"); + WQLObject sub = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); + + List dtlList = dtl.query("scrap_id = '" + whereJson.getString("scrap_id") + "'").getResultJSONArray(0).toJavaList(JSONObject.class); + + String package_box_in = dtlList.stream() + .map(row -> row.getString("package_box_sn")) + .distinct() + .collect(Collectors.joining("','")); + + // 子卷包装集合 + List boxList = sub.query("package_box_sn in ('" + package_box_in + "')").getResultJSONArray(0).toJavaList(JSONObject.class); + + // 组织数据 + JSONObject param = new JSONObject(); // 主体 + param.put("approval_code", "E41632DA-E7BF-4230-B818-760FBFA0EB72"); // 固定值 + param.put("system", "LMS"); // 固定值 + + /* + * 当前操作人员 + */ + JSONArray userList = new JSONArray(); + JSONObject userJson = new JSONObject(); + + SysUser userDao = iSysUserService.getById(SecurityUtils.getCurrentUserId()); + userJson.put("User", userDao.getUsername()); // 当前操作人员code + userList.add(userJson); + + param.put("UserList", userList); + + /* + * form + */ + JSONArray formList = new JSONArray(); + + // 报废日期: 年月日时分 + JSONObject jsonDate = new JSONObject(); + jsonDate.put("id", "widget16989785636210001"); // 固定值 + jsonDate.put("type", "input"); // 固定值 + jsonDate.put("value", DateUtil.now().substring(0, 16)); + formList.add(jsonDate); + + // 报废明细 + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("id", "widget16989759925050001"); // 固定值 + jsonDtl.put("type", "fieldList"); // 固定值 + + JSONArray valueArr = new JSONArray(); + + for (int i = 0; i < dtlList.size(); i++) { + JSONObject json = dtlList.get(i); + JSONArray dtlAtt = new JSONArray(); + + JSONObject jsonBox = boxList.stream() + .filter(row -> row.getString("container_name").equals(json.getString("pcsn"))) + .collect(Collectors.toList()).get(0); + + if (ObjectUtil.isEmpty(jsonBox)) throw new BadRequestException("子卷"+json.getString("pcsn")+"不存在,请检查!"); + + // 产品名称 + JSONObject jsonName = new JSONObject(); + jsonName.put("id","widget16989761117830001");// 固定值 + jsonName.put("type","input");// 固定值 + jsonName.put("value",jsonBox.getString("product_description")); + dtlAtt.add(jsonName); + + // 产品规格 + JSONObject jsonThick = new JSONObject(); + jsonThick.put("id", "widget16989764299770001");// 固定值 + jsonThick.put("type", "input");// 固定值 + jsonThick.put("value", jsonBox.getString("thickness")); + dtlAtt.add(jsonThick); + + // 不合格品批次号 + JSONObject jsonOut = new JSONObject(); + jsonOut.put("id","widget16989764601080001");// 固定值 + jsonOut.put("type","input");// 固定值 + jsonOut.put("value",jsonBox.getString("container_name")); + dtlAtt.add(jsonOut); + + // 不合格品重量 + JSONObject jsonWeight = new JSONObject(); + jsonWeight.put("id", "widget16989773376540001"); + jsonWeight.put("type", "number"); + jsonWeight.put("value", json.getDoubleValue("qty")); + dtlAtt.add(jsonWeight); + + // 不合格品缺陷描述 + JSONObject jsonRemark = new JSONObject(); + jsonRemark.put("id", "widget16989773089460001");// 固定值 + jsonRemark.put("type", "input");// 固定值 + jsonRemark.put("value", json.getString("remark")); + dtlAtt.add(jsonRemark); + + // 不合格品来源 + JSONObject jsonSource = new JSONObject(); + jsonSource.put("id", "widget16989785808620001"); + jsonSource.put("type", "radioV2"); + + switch (json.getString("fail_source")) { + case "1" : + jsonSource.put("value", "lohzzb0f-dxucmbtkt5j-0"); + break; + case "2" : + jsonSource.put("value", "lohzzb0f-728pkzd3t0b-0"); + break; + case "3" : + jsonSource.put("value", "lohzzb0f-2d3n1nt9t5x-0"); + break; + case "4" : + jsonSource.put("value", "lohzzmz1-ai6w4202ynw-1"); + break; + case "5" : + jsonSource.put("value", "lohzzmz1-2d02yqh91t1-3"); + break; + case "6" : + jsonSource.put("value", "lohzzmz1-d0j15ri1jyg-5"); + break; + } + dtlAtt.add(jsonSource); + + valueArr.add(dtlAtt); + } + + jsonDtl.put("value", valueArr); + formList.add(jsonDtl); + + param.put("form", formList); + + /* + * 调用mes接口,更新单据 + */ + LmsToMesServiceImpl bean = SpringContextHolder.getBean(LmsToMesServiceImpl.class); + JSONObject result = bean.scrapAudit(param); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("ext_code", result.getString("RTDAT")); + jsonObject.put("bill_status", "20"); + mst.update(jsonObject,"scrap_id = '"+whereJson.getString("scrap_id")+"'"); + + } + } diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue index 6b8a33b65..417b11cd9 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue @@ -80,6 +80,19 @@ + + 提交 + { + this.crud.toQuery() + this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.loading_button = false + }).catch(() => { + this.loading_button = false + }) + }, auditPass() { this.loading_button = true productscrap.auditPass(this.currentRow).then(res => { diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js index f5d578e96..7cf5204f2 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js @@ -52,4 +52,11 @@ export function auditOut(data) { data }) } -export default { add, edit, del, getOutBillDtl, auditPass, auditOut } +export function onSubmit(data) { + return request({ + url: '/api/productscrap/onSubmit', + method: 'post', + data + }) +} +export default { add, edit, del, getOutBillDtl, auditPass, auditOut, onSubmit } diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue index 91ad42824..01cd0bb51 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue @@ -262,11 +262,30 @@ export default { // this.crud.resetQuery(true) }, moneySubmit() { + var isTest = this.isTest(this.formMst.order_number) + if (isTest) { + if (this.formMst.car_type === '') { + this.crud.notify('请选择车型!', CRUD.NOTIFICATION_TYPE.INFO) + return + } + } checkoutbill.moneySubmit(this.formMst).then(res => { this.crud.notify('保存成功!', CRUD.NOTIFICATION_TYPE.INFO) this.crud.toQuery() this.close() }) + }, + isTest(val) { + // 包含至少一个数字和字母正则 + const regPost1 = /^(?![^a-zA-Z]+$)(?!\D+$)/g + // 包含至少一个汉字正则 + const regPost2 = /.*[\u4e00-\u9fa5]+.*$/g + + if (regPost1.test(val) && regPost2.test(val)) { + return true + } else { + return false + } } } }