diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java index 5d2dbd4f9..efd759c44 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java @@ -278,7 +278,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("当前phase:"+ phase +"未找到对应设备"); } } catch (Exception e){ - log.info("processSocket出错:" + e.getMessage()); + log.info("processSocket出错:{},{}" ,e, e.getMessage()); e.printStackTrace(); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index 5520bccd4..ab24de672 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -459,7 +459,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic param.put("product_area", paramService.findByCode("productArea").getValue()); acsToWmsService.sendDeviceStatus(param); } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); +// data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); last_error = error; } else if (phase == 0x70) { //x坐标 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 8185c3c2b..b8ea52bd9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -208,19 +208,26 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } - if(ObjectUtil.isEmpty(inst.getCarno())){ + if (ObjectUtil.isEmpty(inst.getCarno())) { inst.setCarno(String.valueOf(carno)); instructionService.update(inst); } if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (ObjectUtil.isNotEmpty(this.device.getExtraValue().get("wait")) - && StrUtil.equals("true", this.device.getExtraValue().get("wait").toString()) + if (ObjectUtil.isNotEmpty(device.getExtraValue().get("wait")) + && StrUtil.equals("true", device.getExtraValue().get("wait").toString()) && StrUtil.equals(task.getTask_type(), "1")) { - // if (standardOrdinarySiteDeviceDriver.getOption() == 1) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + String task_code = standardOrdinarySiteDeviceDriver.getTask_code(); + log.info("当前任务号{},创建任务号{}", task.getTask_code(), task_code); + if (StrUtil.isEmpty(task_code) || !task_code.equals(task.getTask_code())) { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey, task.getTask_code()); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } else { log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; @@ -229,8 +236,6 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } - - } else if (device.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) { photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) device.getDeviceDriver(); if (photoelectricInspectionSiteDeviceDriver.getMove() == 1) @@ -242,17 +247,17 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } catch (Exception e) { e.printStackTrace(); } - - if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1 )|| standardInspectSiteDeviceDriver.getIs_force()==1 ) { + if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1) || standardInspectSiteDeviceDriver.getIs_force() == 1) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { - message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + ",指令号:" + ikey +"不满足取货条件"; + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; log.info("设备{}当前光电信号{},动作信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction(), ikey); } + standardInspectSiteDeviceDriver.setIs_force(0); } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } - standardInspectSiteDeviceDriver.setIs_force(0); + } // 取货完毕 //(Itype=1/2/3,需要WCS反馈Phase) @@ -288,7 +293,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } - if(ObjectUtil.isEmpty(inst.getCarno())){ + if (ObjectUtil.isEmpty(inst.getCarno())) { inst.setCarno(String.valueOf(carno)); instructionService.update(inst); } @@ -310,7 +315,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); standardInspectSiteDeviceDriver.writing("to_command", "0"); - if (standardInspectSiteDeviceDriver.getMove() == 0|| standardInspectSiteDeviceDriver.getIs_force()==1) { + if (standardInspectSiteDeviceDriver.getMove() == 0 || standardInspectSiteDeviceDriver.getIs_force() == 1) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; @@ -352,7 +357,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } - if(ObjectUtil.isEmpty(inst.getCarno())){ + if (ObjectUtil.isEmpty(inst.getCarno())) { inst.setCarno(String.valueOf(carno)); instructionService.update(inst); } @@ -362,10 +367,17 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic if (ObjectUtil.isNotEmpty(standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait")) && StrUtil.equals("true", standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait").toString()) && StrUtil.equals(task.getTask_type(), "1")) { - // if (standardOrdinarySiteDeviceDriver.getOption() == 1) { standardOrdinarySiteDeviceDriver.setAgvphase(0); - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + String task_code = standardOrdinarySiteDeviceDriver.getTask_code(); + log.info("当前任务号{},创建任务号{}", task.getTask_code(), task_code); + if (StrUtil.isEmpty(task_code) || !task_code.equals(task.getTask_code())) { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey, task.getTask_code()); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } else { log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; @@ -506,13 +518,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); standardInspectSiteDeviceDriver.writing("to_command", "1"); - if ((standardInspectSiteDeviceDriver.getMove() == 0 && standardInspectSiteDeviceDriver.getAction() == 1)||standardInspectSiteDeviceDriver.getIs_force()==1) { + if ((standardInspectSiteDeviceDriver.getMove() == 0 && standardInspectSiteDeviceDriver.getAction() == 1) || standardInspectSiteDeviceDriver.getIs_force() == 1) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } + standardInspectSiteDeviceDriver.setIs_force(0); } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } - standardInspectSiteDeviceDriver.setIs_force(0); } //放货完成 //(Itype=1/2/3,需要WCS反馈) @@ -568,13 +580,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); standardInspectSiteDeviceDriver.writing("to_command", "0"); - if ((standardInspectSiteDeviceDriver.getMove() == 1)||standardInspectSiteDeviceDriver.getIs_force()==1) { + if ((standardInspectSiteDeviceDriver.getMove() == 1) || standardInspectSiteDeviceDriver.getIs_force() == 1) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } + standardInspectSiteDeviceDriver.setIs_force(0); } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } - standardInspectSiteDeviceDriver.setIs_force(0); } //到达放货点 //(Itype=1、3,需要WCS反馈) @@ -714,7 +726,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic param.put("product_area", ParamService.findByCode("productArea").getValue()); acsToWmsService.sendDeviceStatus(param); } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + // data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); last_error = error; } else if (phase == 0x70) { //x坐标 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index 9d27b1983..3f5b67d48 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -78,6 +78,8 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple Instruction inst = null; //上次指令 Instruction last_inst = null; + //任务号 + String task_code; boolean requireSucess = false; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 7c6469602..49e0d7173 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -1092,10 +1092,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (device_k.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_k.getDeviceDriver(); standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option)); + standardOrdinarySiteDeviceDriver.setTask_code(task_code); } if (device_m.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_m.getDeviceDriver(); standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option)); + standardOrdinarySiteDeviceDriver.setTask_code(task_code); } } else { JSONObject jo = new JSONObject(); diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/security/rest/DesUtil.java b/acs/nladmin-system/src/main/java/org/nl/modules/security/rest/DesUtil.java index 89f9a3248..15a78ab55 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/security/rest/DesUtil.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/security/rest/DesUtil.java @@ -6,6 +6,8 @@ package org.nl.modules.security.rest; // + + import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; 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 bc5a57a9d..25f8c21a2 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls differ 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..0753a226d 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,18 @@ 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); + } + + @PostMapping("/proudDayData") + @Log("成品日报推送") + @ApiOperation("成品日报推送") + public ResponseEntity proudDayData(@RequestBody JSONObject jo) { + return new ResponseEntity<>(lmsToMesService.proudDayData(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..c36a099b9 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,16 @@ public interface LmsToMesService { * } */ JSONObject lmsPackage(JSONObject jo); + + /** + * 成品报废审核 + * 参数: + */ + JSONObject scrapAudit(JSONObject jo); + + /** + * 成品日报推送 + * 参数: + */ + JSONObject proudDayData(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..a2959b62d 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,78 @@ 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; + } + + @Override + public JSONObject proudDayData(JSONObject param) { + log.info("proudDayData接口输入参数为:-------------------" + 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/SendCard"; + url = url + api; + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("proudDayData接口输出参数为:-------------------" + 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/ext/szls/rest/LmsToBigScreenController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/rest/LmsToBigScreenController.java index 44f72a81e..46f446c73 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/rest/LmsToBigScreenController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/rest/LmsToBigScreenController.java @@ -63,4 +63,12 @@ public class LmsToBigScreenController { return new ResponseEntity<>(LmsToBigScreenService.getMonthDelivery(jo), HttpStatus.OK); } + @PostMapping("/getProudDayData") + @Log("成品日报") + @ApiOperation("成品日报") + @SaIgnore + public ResponseEntity getProudDayData(@RequestBody JSONObject jo) { + return new ResponseEntity<>(LmsToBigScreenService.getProudDayData(jo), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/LmsToBigScreenService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/LmsToBigScreenService.java index 9cdf03dd4..74d0e3609 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/LmsToBigScreenService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/LmsToBigScreenService.java @@ -11,4 +11,6 @@ public interface LmsToBigScreenService { JSONArray getMonthFreight(JSONObject jo); JSONArray getMonthYield(JSONObject jo); JSONArray getMonthDelivery(JSONObject jo); + + JSONObject getProudDayData(JSONObject jo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java index 5ec65faaf..ed1aa2c5e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java @@ -16,6 +16,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.szls.service.LmsToBigScreenService; +import org.nl.wms.sch.manage.AutoQueryProudDayData; import org.nl.wms.sch.tasks.URLEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -107,4 +108,9 @@ public class LmsToBigScreenServiceImpl implements LmsToBigScreenService { } return data; } + + @Override + public JSONObject getProudDayData(JSONObject jo) { + return SpringContextHolder.getBean(AutoQueryProudDayData.class).data(); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql new file mode 100644 index 000000000..a786972e4 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql @@ -0,0 +1,425 @@ +[交易说明] + 交易名: 成品日报 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.customer_name TYPEAS f_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id + WHERE + ivt.ivt_qty > '0' + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + DATEDIFF( NOW(), sub.date_of_production ) >= '90' + AND ivt.ivt_qty > '0' + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + DATEDIFF( NOW(), sub.date_of_production ) > '60' + AND DATEDIFF( NOW(), sub.date_of_production ) <= '90' + AND ivt.ivt_qty > '0' + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + DATEDIFF( NOW(), sub.date_of_production ) < '90' + AND ivt.ivt_qty > '0' + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + ivt.ivt_qty > '0' + + OPTION 输入.customer_name <> "" + sub.customer_name in 输入.customer_name + ENDOPTION + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "6" + QUERY + SELECT + SUM( ivt.ivt_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + ivt.ivt_qty > '0' + + OPTION 输入.customer_name <> "" + sub.customer_name not in 输入.customer_name + ENDOPTION + + GROUP BY attr.stor_id + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "7" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "8" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "9" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "10" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "11" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY LEFT(dis.pcsn,2) + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "12" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY LEFT(dis.pcsn,2) + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "13" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY LEFT(dis.pcsn,2),sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "14" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND mst.biz_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + + GROUP BY LEFT(dis.pcsn,2),sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "15" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY LEFT(dis.pcsn,2) + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "16" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY LEFT(dis.pcsn,2) + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "17" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '0' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY LEFT(dis.pcsn,2),sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "18" + QUERY + SELECT + SUM( dis.plan_qty ) / 1000 AS num, + LEFT(dis.pcsn,2) AS region_code, + sub.customer_name + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + WHERE + mst.is_delete = '0' + AND mst.io_type = '1' + AND mst.bill_status = '99' + AND MONTH(mst.biz_date) = MONTH(CURDATE()) + AND YEAR(mst.biz_date) = YEAR(CURDATE()) + + GROUP BY LEFT(dis.pcsn,2),sub.customer_name + + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryProudDayData.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryProudDayData.java new file mode 100644 index 000000000..d25b86208 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryProudDayData.java @@ -0,0 +1,517 @@ +package org.nl.wms.sch.manage; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.ext.mes.service.LmsToMesService; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoQueryProudDayData { + + private final LmsToMesService lmsToMesService; + + public void run() { + JSONObject param = new JSONObject(); + + JSONArray UserList = new JSONArray(); + + String userList = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("USER_LIST_FEISHU").getValue(); + + String[] split = userList.split(","); + if (split.length > 0) { + for (String s : split) { + JSONObject jo = new JSONObject(); + jo.put("User", s); + UserList.add(jo); + } + } else { + JSONObject jo = new JSONObject(); + jo.put("User",""); + UserList.add(jo); + } + param.put("UserList", UserList); + + param.put("Code", "ctp_AAVwgNuQOtO0"); + param.put("card", data()); + + // 调用接口 + lmsToMesService.proudDayData(param); + + } + + public JSONObject data() { + WQLObject storTab = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); // 仓库表 + + // 查询共多少个仓库 + String in_stor_code = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("STOR_CODE_FEISHU").getValue(); + JSONArray storArr = storTab.query("is_used = '1' and stor_code in"+in_stor_code).getResultJSONArray(0); + + // 客户 + String custB = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("CUST_B").getValue(); + String custC = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("CUST_C").getValue(); + + JSONObject result = new JSONObject(); // 全部数据 + result.put("Title", DateUtil.today()+"成品数据(单位:T)"); + + /* + * 查询各仓库库存 + */ + JSONArray Arrayobject1 = new JSONArray(); // 各仓库库存集合 + + // 库存总量集合 + List allIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "1").process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 超期库存集合 + List sidIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "2").process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 临期库存集合 + List faceIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "3").process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 正常库龄 + List regIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "4").process().getResultJSONArray(0).toJavaList(JSONObject.class); + + for (int i = 0; i < storArr.size(); i++) { + JSONObject item = storArr.getJSONObject(i); + + JSONObject json = new JSONObject(); + json.put("local", item.getString("stor_name")); // 存储地点 + + // 库存总量 + List collect = allIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("TotalInventory", collect.isEmpty() ? "0" : NumberUtil.round(collect.get(0).getString("num"), 2)+""); + + // 超期库存 + List collect2 = sidIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("OverdueInventory", collect2.isEmpty() ? "0" : NumberUtil.round(collect2.get(0).getString("num"),2)+""); + + // 临期库存 + List collect3 = faceIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("InterimInventory", collect3.isEmpty() ? "0" : NumberUtil.round(collect3.get(0).getString("num"),2)+""); + + // 正常库存 + List collect4 = regIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("NormalStockAge", collect4.isEmpty() ? "0" : NumberUtil.round(collect4.get(0).getString("num"),2)+""); + + Arrayobject1.add(json); + } + + // 计算全部 + JSONObject allIvt = new JSONObject(); + allIvt.put("local", "全部"); + allIvt.put("TotalInventory", NumberUtil.round(allIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + allIvt.put("OverdueInventory", NumberUtil.round(sidIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + allIvt.put("InterimInventory", NumberUtil.round(faceIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + allIvt.put("NormalStockAge", NumberUtil.round(regIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject1.add(allIvt); + + result.put("Arrayobject1",Arrayobject1); + + /* + * 各客户库存 : + * 1.表头 + * { + * B库存:10000708 蕉城时代,10000698 江苏时代,10000779 四川时代,10000561 宁德时代 + * C库存:10000426 比亚迪,2010 海亮股份 + * Other库存: 除B、C客户的其他客户 + * } + * 2.数据 + */ + // 1.表头: + JSONArray Customernventory = new JSONArray(); + + JSONObject custHand = new JSONObject(); + custHand.put("Customer1", "B库存"); + custHand.put("Customer2", "C库存"); + custHand.put("Customer3", "Other库存"); + Customernventory.add(custHand); + result.put("Customernventory",Customernventory); + + // 2.数据 + JSONArray Arrayobject2 = new JSONArray(); + + // B库存集合 + List custIvtBList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "5") + .addParam("customer_name", "('10000708','10000698','10000779','10000561')") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // C库存集合 + List custIvtCList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "5") + .addParam("customer_name", "('10000426','2010')") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 其他库存集合 + List custIvtOtherList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "6") + .addParam("customer_name", "('10000426','2010','10000708','10000698','10000779','10000561')") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + for (int i = 0; i < storArr.size(); i++) { + JSONObject item = storArr.getJSONObject(i); + + JSONObject json = new JSONObject(); + json.put("Local", item.getString("stor_name")); + + // B库存 + List collectB = custIvtBList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("Customernventory1", collectB.isEmpty() ? "0" : NumberUtil.round(collectB.get(0).getString("num"), 2)+""); + + // C库存 + List collectC = custIvtCList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("Customernventory2", collectC.isEmpty() ? "0" : NumberUtil.round(collectC.get(0).getString("num"), 2)+""); + + // 其他库存 + List collectOthen = custIvtOtherList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("Customernventory3", collectOthen.isEmpty() ? "0" : NumberUtil.round(collectOthen.get(0).getString("num"), 2)+""); + + Arrayobject2.add(json); + } + + // 计算全部 + JSONObject allCustIvt = new JSONObject(); + allCustIvt.put("Local", "全部"); + allCustIvt.put("Customernventory1", NumberUtil.round(custIvtBList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + allCustIvt.put("Customernventory2", NumberUtil.round(custIvtCList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + allCustIvt.put("Customernventory3", NumberUtil.round(custIvtOtherList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject2.add(allCustIvt); + + result.put("Arrayobject2", Arrayobject2); + + /* + * 库存变化 + * 1.表头 + * { + * B库存:10000708 蕉城时代,10000698 江苏时代,10000779 四川时代,10000561 宁德时代 + * C库存:10000426 比亚迪,2010 海亮股份 + * 汇总: 所有客户 + * } + * 2.数据 + */ + // 1.表头 + JSONArray Arrayobject3 = new JSONArray(); + + JSONObject changeIvt = new JSONObject(); + changeIvt.put("Customer1", "B客户"); + changeIvt.put("Customer2", "C客户"); + changeIvt.put("Customer3", "汇总"); + Arrayobject3.add(changeIvt); + result.put("Arrayobject3", Arrayobject3); + + // 2.数据 + JSONArray Arrayobject4 = new JSONArray(); + + // 所有昨日入库量客户分组集合 + List yesterdayInList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "7") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有昨日出库量客户分组集合 + List yesterdayOutList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "8") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月入库量客户分组集合 + List monthInList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "9") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月出库量客户分组集合 + List monthOutList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "10") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // ---- 昨日入库量 ---- + JSONObject yesterdayIn = new JSONObject(); + yesterdayIn.put("Title", "昨日入库量"); + + // B客户 + List custBList = yesterdayInList.stream() + .filter(row -> custB.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + yesterdayIn.put("Customerqty1", NumberUtil.round(custBList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2) +""); + + // C客户 + List custCList = yesterdayInList.stream() + .filter(row -> custC.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + yesterdayIn.put("Customerqty2", NumberUtil.round(custCList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // 汇总 + yesterdayIn.put("Customerqty3", NumberUtil.round(yesterdayInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject4.add(yesterdayIn); + + // ---- 昨日出库量 ---- + JSONObject yesterdayOut = new JSONObject(); + yesterdayOut.put("Title", "昨日出库量"); + + // B客户 + List custBList2 = yesterdayOutList.stream() + .filter(row -> custB.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + yesterdayOut.put("Customerqty1", NumberUtil.round(custBList2.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // C客户 + List custCList2 = yesterdayOutList.stream() + .filter(row -> custC.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + yesterdayOut.put("Customerqty2", NumberUtil.round(custCList2.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // 汇总 + yesterdayOut.put("Customerqty3", NumberUtil.round(yesterdayOutList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject4.add(yesterdayOut); + + // ---- 当月入库量 ---- + JSONObject monthdayIn = new JSONObject(); + monthdayIn.put("Title", "当月入库量"); + + // B客户 + List custBList3 = monthInList.stream() + .filter(row -> custB.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + monthdayIn.put("Customerqty1", NumberUtil.round(custBList3.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // C客户 + List custCList3 = monthInList.stream() + .filter(row -> custC.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + monthdayIn.put("Customerqty2", NumberUtil.round(custCList3.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // 汇总 + monthdayIn.put("Customerqty3", NumberUtil.round(monthInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject4.add(monthdayIn); + + // ---- 当月出库量 ---- + JSONObject monthdayOut = new JSONObject(); + monthdayOut.put("Title", "当月出库量"); + + // B客户 + List custBList4 = monthOutList.stream() + .filter(row -> custB.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + monthdayOut.put("Customerqty1", NumberUtil.round(custBList4.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // C客户 + List custCList4 = monthOutList.stream() + .filter(row -> custC.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + monthdayOut.put("Customerqty2", NumberUtil.round(custCList4.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + + // 汇总 + monthdayOut.put("Customerqty3",NumberUtil.round( monthOutList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); + Arrayobject4.add(monthdayOut); + + result.put("Arrayobject4",Arrayobject4); + + /* + * 各区域库存变化 + * 数据 + * { + * B库存:10000708 蕉城时代,10000698 江苏时代,10000779 四川时代,10000561 宁德时代 + * C库存:10000426 比亚迪,2010 海亮股份 + * } + * { + * region_code: A1,A2,A3,A4 + * } + */ + JSONArray Arrayobject5 = new JSONArray(); + + // 所有昨日入库量区域分组集合 + List yesterdayInRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "11") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有昨日出库量区域分组集合 + List yesterdayOutRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "12") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有昨日入库量区域、客户分组集合 + List yesterdayCustInRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "13") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有昨日出库量区域、客户分组集合 + List yesterdayCustOutRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "14") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月入库量区域分组集合 + List monthInRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "15") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月出库量区域分组集合 + List monthOutRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "16") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月入库量区域、客户分组集合 + List monthCustInRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "17") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // 所有当月出库量区域、客户分组集合 + List monthCustOutRegList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "18") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + // ---- 当月入库量 ---- + JSONObject monthRegIn = monthReg(monthInRegList, "当月入库量"); + Arrayobject5.add(monthRegIn); + + // ---- 当月出库量 ---- + JSONObject monthRegOut = monthReg(monthOutRegList, "当月出库量"); + Arrayobject5.add(monthRegOut); + + // ---- 昨日入库量 ---- + JSONObject yesterdayInReg = monthReg(yesterdayInRegList, "昨日入库量"); + Arrayobject5.add(yesterdayInReg); + + // ---- 昨日出库量 ---- + JSONObject yesterdayOutReg = monthReg(yesterdayOutRegList, "昨日出库量"); + Arrayobject5.add(yesterdayOutReg); + + // ---- B昨日出库量 ---- + JSONObject yesterdayCustOutRegB = monthRegCust(yesterdayCustOutRegList, "B昨日出库量", custB); + Arrayobject5.add(yesterdayCustOutRegB); + + // ---- B昨日入库量 ---- + JSONObject yesterdayCustInRegB = monthRegCust(yesterdayCustInRegList, "B昨日入库量", custB); + Arrayobject5.add(yesterdayCustInRegB); + + // ---- B当月入库量 ---- + JSONObject monthCustInRegB = monthRegCust(monthCustInRegList, "B当月入库量", custB); + Arrayobject5.add(monthCustInRegB); + + // ---- B当月出库量 ---- + JSONObject monthCustOutRegB = monthRegCust(monthCustOutRegList, "B当月出库量", custB); + Arrayobject5.add(monthCustOutRegB); + + // ---- C昨日出库量 ---- + JSONObject yesterdayCustOutRegC = monthRegCust(yesterdayCustOutRegList, "C昨日出库量", custC); + Arrayobject5.add(yesterdayCustOutRegC); + + // ---- C昨日入库量 ---- + JSONObject yesterdayCustInRegC = monthRegCust(yesterdayCustInRegList, "C昨日入库量", custC); + Arrayobject5.add(yesterdayCustInRegC); + + // ---- C当月入库量 ---- + JSONObject monthCustInRegC = monthRegCust(monthCustInRegList, "C当月入库量", custC); + Arrayobject5.add(monthCustInRegC); + + // ---- C当月出库量 ---- + JSONObject monthCustOutRegC = monthRegCust(monthCustOutRegList, "C当月出库量", custC); + Arrayobject5.add(monthCustOutRegC); + + result.put("Arrayobject5", Arrayobject5); + + return result; + } + + /** + * 当月区域公共方法 + * @param param 、 + * @param title 、 + * @return JSONObject + */ + private JSONObject monthReg(List param, String title) { + + JSONObject result = new JSONObject(); + result.put("Title", title); + + Map> paramMap = param.stream() + .collect(Collectors.groupingBy(row -> row.getString("region_code"))); + + if (paramMap.isEmpty()) { + result.put("Areaqty1","0"); + result.put("Areaqty2","0"); + result.put("Areaqty3","0"); + result.put("Areaqty4","0"); + } + + for (String region_code : paramMap.keySet()) { + List list = paramMap.get(region_code); + + String num = NumberUtil.round(list.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2) + ""; + + switch (region_code) { + case "A1": result.put("Areaqty1", num); break; + case "A2": result.put("Areaqty2", num); break; + case "A3": result.put("Areaqty3", num); break; + case "A4": result.put("Areaqty4", num); break; + } + } + + if (ObjectUtil.isEmpty(result.getString("Areaqty1"))) result.put("Areaqty1","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0"); + + return result; + } + + /** + * 当月区域、客户公共方法 + * @param param 、 + * @param title 、 + * @param customer 客户 、 + * @return JSONObject + */ + private JSONObject monthRegCust(List param, String title, String customer) { + + JSONObject result = new JSONObject(); + result.put("Title", title); + + Map> paramMap = param.stream() + .collect(Collectors.groupingBy(row -> row.getString("region_code"))); + + if (paramMap.isEmpty()) { + result.put("Areaqty1","0"); + result.put("Areaqty2","0"); + result.put("Areaqty3","0"); + result.put("Areaqty4","0"); + } + + for (String region_code : paramMap.keySet()) { + List list = paramMap.get(region_code); + + List custList = list.stream() + .filter(row -> customer.contains(row.getString("customer_name"))) + .collect(Collectors.toList()); + + String num = NumberUtil.round(custList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2) + ""; + + + switch (region_code) { + case "A1": result.put("Areaqty1", num); break; + case "A2": result.put("Areaqty2", num); break; + case "A3": result.put("Areaqty3", num); break; + case "A4": result.put("Areaqty4", num); break; + } + } + + if (ObjectUtil.isEmpty(result.getString("Areaqty1"))) result.put("Areaqty1","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0"); + if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0"); + + return result; + } +} 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/assets/styles/eladmin.scss b/lms/nladmin-ui/src/assets/styles/eladmin.scss index 57a62e5db..0970b01ac 100644 --- a/lms/nladmin-ui/src/assets/styles/eladmin.scss +++ b/lms/nladmin-ui/src/assets/styles/eladmin.scss @@ -4,11 +4,11 @@ .filter-item { display: inline-block; vertical-align: middle; - margin: 0 3px 10px 0; + margin: 0 3px 3px 0; input { - height: 30.5px; - line-height: 30.5px; + height: 28px; + line-height: 28px; } } @@ -19,7 +19,7 @@ vertical-align: middle; font-size: 14px; color: #606266; - line-height: 30.5px; + line-height: 28px; padding: 0 7px 0 7px; } @@ -28,7 +28,7 @@ } .el-select__caret.el-input__icon.el-icon-arrow-up { - line-height: 30.5px; + line-height: 28px; } .date-item { @@ -149,7 +149,7 @@ } .el-form-item--mini.el-form-item { - margin-bottom: 10px !important; + margin-bottom: 8px !important; } //去除编辑文本框为数字时的上下箭头start diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index 5d86beac5..69c98f164 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -88,6 +88,7 @@ clearable size="mini" placeholder="全部" + style="width: 200px;" class="filter-item" @change="crud.toQuery" > @@ -117,13 +118,14 @@ - + --> + + + + + + + + + + + - - - - - - + + 提交 + { + 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 2fa355d5d..f1da9780e 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/MoneyDialog.vue @@ -267,11 +267,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 + } } } } diff --git a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue index 7d4916cc2..17fa6227c 100644 --- a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue +++ b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue @@ -28,18 +28,6 @@ /> - - - - - + + + + + + - + - + + - - - - - + + + --> - - - - - + + +