From fe25998a243812afb327b68f01aa31897210e96a Mon Sep 17 00:00:00 2001 From: yanps Date: Mon, 13 Nov 2023 19:57:46 +0800 Subject: [PATCH 1/8] =?UTF-8?q?opt:=20NDC=E5=8F=8C=E5=B7=A5=E4=BD=8DAGV?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 16 ++++++++++++++-- .../StandardOrdinarySiteDeviceDriver.java | 2 ++ .../wms/service/impl/WmsToAcsServiceImpl.java | 2 ++ .../org/nl/modules/security/rest/DesUtil.java | 2 ++ 4 files changed, 20 insertions(+), 2 deletions(-) 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..6948788e5 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 @@ -215,12 +215,18 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic 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(); + if(!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 { log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; @@ -366,6 +372,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic if (standardOrdinarySiteDeviceDriver.getOption() == 1) { standardOrdinarySiteDeviceDriver.setAgvphase(0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + String task_code = standardOrdinarySiteDeviceDriver.getTask_code(); + if(!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 { log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; 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; From f826b0ba7781adea13e02626dd894ba108605fc5 Mon Sep 17 00:00:00 2001 From: yanps Date: Wed, 15 Nov 2023 14:13:59 +0800 Subject: [PATCH 2/8] =?UTF-8?q?opt:=20NDC=E5=8F=8C=E5=B7=A5=E4=BD=8DAGV?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run/TwoNDCSocketConnectionAutoRun.java | 2 +- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 44 +++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) 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/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 6948788e5..8d3807a62 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,7 +208,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); } @@ -218,14 +218,15 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic 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(); - if(!task_code.equals(task.getTask_code())){ - log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey,task.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); @@ -235,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) @@ -248,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) @@ -294,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); } @@ -316,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 + "不满足取货条件"; @@ -358,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); } @@ -368,15 +367,16 @@ 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(); - if(!task_code.equals(task.getTask_code())){ - log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey,task.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); @@ -518,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反馈) @@ -580,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反馈) From 87e99fadd6694c7cbf4aa204cc3f4092806dadd1 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 16 Nov 2023 09:43:47 +0800 Subject: [PATCH 3/8] =?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 + } } } } From ea75b54f381f33fe65ef0e38bca2f4b96f82ea80 Mon Sep 17 00:00:00 2001 From: lishuai <1793460677@qq.com> Date: Thu, 16 Nov 2023 10:19:19 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=8A=A5=E9=94=99=E6=97=B6data=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java | 2 +- .../basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 8d3807a62..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 @@ -726,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坐标 From cd8c64312f4c3f4247f53cf5874febf9ab47ff76 Mon Sep 17 00:00:00 2001 From: ludj Date: Wed, 22 Nov 2023 20:10:06 +0800 Subject: [PATCH 5/8] =?UTF-8?q?rev:=E5=89=8D=E7=AB=AF=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/wms/st/inAndOutReturn/index.vue | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue index b276655e3..ce0a11ed0 100644 --- a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue @@ -82,6 +82,7 @@ --> + + + + + + + + + + + - - - - - - Date: Thu, 23 Nov 2023 16:58:20 +0800 Subject: [PATCH 6/8] =?UTF-8?q?rev:=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-ui/src/assets/styles/eladmin.scss | 12 ++++---- .../src/views/wms/basedata/st/ivt/index.vue | 5 +++- .../src/views/wms/stat/inbillquery/index2.vue | 30 ++++++++++--------- .../views/wms/stat/outbillquery/index2.vue | 24 +++++++-------- .../src/views/wms/stat/pastivt/index.vue | 24 +++++++-------- 5 files changed, 48 insertions(+), 47 deletions(-) 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 @@ - + - - - - - + + + + + + - + - + + - - - - - + + + --> - - - - - + + + Date: Thu, 23 Nov 2023 17:39:56 +0800 Subject: [PATCH 7/8] =?UTF-8?q?add:=20=E6=88=90=E5=93=81=E6=97=A5=E6=8A=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ext/mes/rest/LmsToMesController.java | 7 + .../wms/ext/mes/service/LmsToMesService.java | 6 + .../mes/service/impl/LmsToMesServiceImpl.java | 37 ++ .../szls/rest/LmsToBigScreenController.java | 8 + .../szls/service/LmsToBigScreenService.java | 2 + .../impl/LmsToBigScreenServiceImpl.java | 6 + .../impl/ProductInstorServiceImpl.java | 2 +- .../nl/wms/sch/manage/AUTOQUERYBILLINFO.wql | 425 ++++++++++++++ .../wms/sch/manage/AutoQueryProudDayData.java | 519 ++++++++++++++++++ 9 files changed, 1011 insertions(+), 1 deletion(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryProudDayData.java 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 cae29d5ba..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 @@ -105,4 +105,11 @@ public class LmsToMesController { 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 97d0aa7ec..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 @@ -116,4 +116,10 @@ public interface LmsToMesService { * 参数: */ 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 af0147968..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 @@ -636,6 +636,43 @@ public class LmsToMesServiceImpl implements LmsToMesService { } + } 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()); } 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/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index 1f8510cd1..d5fc32a04 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -248,7 +248,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { //创建二楼去一楼的任务 JSONObject form = new JSONObject(); form.put("point_code1", point_code); - form.put("point_code2", "NTB01"); + form.put("point_code2", "1001"); form.put("vehicle_code", box_no); form.put("task_type", "010507"); cutConveyorTask.createTask(form); 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..e0f4cc4ce --- /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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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..d490e1dde --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryProudDayData.java @@ -0,0 +1,519 @@ +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()); + + System.out.println(param.toString()); + + // 调用接口 + 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()+"成品数据"); + + /* + * 查询各仓库库存 + */ + 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() ? "0KG" : NumberUtil.round(collect.get(0).getString("num"), 3)+"KG"); + + // 超期库存 + List collect2 = sidIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("OverdueInventory", collect2.isEmpty() ? "0KG" : NumberUtil.round(collect2.get(0).getString("num"),3)+"KG"); + + // 临期库存 + List collect3 = faceIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("InterimInventory", collect3.isEmpty() ? "0KG" : NumberUtil.round(collect3.get(0).getString("num"),3)+"KG"); + + // 正常库存 + List collect4 = regIvtList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("NormalStockAge", collect4.isEmpty() ? "0KG" : NumberUtil.round(collect4.get(0).getString("num"),3)+"KG"); + + 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(), 3)+"KG"); + allIvt.put("OverdueInventory", NumberUtil.round(sidIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + allIvt.put("InterimInventory", NumberUtil.round(faceIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + allIvt.put("NormalStockAge", NumberUtil.round(regIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collectB.get(0).getString("num"), 3)+"KG"); + + // C库存 + List collectC = custIvtCList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("Customernventory2", collectC.isEmpty() ? "0KG" : NumberUtil.round(collectC.get(0).getString("num"), 3)+"KG"); + + // 其他库存 + List collectOthen = custIvtOtherList.stream() + .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) + .collect(Collectors.toList()); + json.put("Customernventory3", collectOthen.isEmpty() ? "0KG" : NumberUtil.round(collectOthen.get(0).getString("num"), 3)+"KG"); + + 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(), 3)+"KG"); + allCustIvt.put("Customernventory2", NumberUtil.round(custIvtCList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + allCustIvt.put("Customernventory3", NumberUtil.round(custIvtOtherList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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(), 3)+"KG"); + + // 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(), 3)+"KG"); + + // 汇总 + yesterdayIn.put("Customerqty3", NumberUtil.round(yesterdayInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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(), 3)+"KG"); + + // 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(), 3)+"KG"); + + // 汇总 + yesterdayOut.put("Customerqty3", NumberUtil.round(yesterdayOutList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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(), 3)+"KG"); + + // 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(), 3)+"KG"); + + // 汇总 + monthdayIn.put("Customerqty3", NumberUtil.round(monthInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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(), 3)+"KG"); + + // 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(), 3)+"KG"); + + // 汇总 + monthdayOut.put("Customerqty3",NumberUtil.round( monthOutList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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","0KG"); + result.put("Areaqty2","0KG"); + result.put("Areaqty3","0KG"); + result.put("Areaqty4","0KG"); + } + + 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(), 3) + "KG"; + + 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","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0KG"); + + 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","0KG"); + result.put("Areaqty2","0KG"); + result.put("Areaqty3","0KG"); + result.put("Areaqty4","0KG"); + } + + 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(), 3) + "KG"; + + + 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","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0KG"); + if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0KG"); + + return result; + } +} From 3f8914af53d1942fad9ddbc36f8e70ac6198cb07 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 24 Nov 2023 15:14:55 +0800 Subject: [PATCH 8/8] =?UTF-8?q?rev=EF=BC=9A=E6=88=90=E5=93=81=E6=97=A5?= =?UTF-8?q?=E6=8A=A5=E5=8D=95=E4=BD=8D=E6=94=B9=E4=B8=BAT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/sch/manage/AUTOQUERYBILLINFO.wql | 36 ++++---- .../wms/sch/manage/AutoQueryProudDayData.java | 92 +++++++++---------- 2 files changed, 63 insertions(+), 65 deletions(-) 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 index e0f4cc4ce..a786972e4 100644 --- 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 @@ -41,7 +41,7 @@ IF 输入.flag = "1" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -58,7 +58,7 @@ IF 输入.flag = "2" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -78,7 +78,7 @@ IF 输入.flag = "3" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -99,7 +99,7 @@ IF 输入.flag = "4" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -119,7 +119,7 @@ IF 输入.flag = "5" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -142,7 +142,7 @@ IF 输入.flag = "6" QUERY SELECT - SUM( ivt.ivt_qty ) AS num, + SUM( ivt.ivt_qty ) / 1000 AS num, attr.stor_id FROM st_ivt_structivt ivt @@ -165,7 +165,7 @@ IF 输入.flag = "7" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, sub.customer_name FROM st_ivt_iostorinvdis dis @@ -186,7 +186,7 @@ IF 输入.flag = "8" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, sub.customer_name FROM st_ivt_iostorinvdis dis @@ -207,7 +207,7 @@ IF 输入.flag = "9" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, sub.customer_name FROM st_ivt_iostorinvdis dis @@ -229,7 +229,7 @@ IF 输入.flag = "10" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, sub.customer_name FROM st_ivt_iostorinvdis dis @@ -251,7 +251,7 @@ IF 输入.flag = "11" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code FROM st_ivt_iostorinvdis dis @@ -272,7 +272,7 @@ IF 输入.flag = "12" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code FROM st_ivt_iostorinvdis dis @@ -293,7 +293,7 @@ IF 输入.flag = "13" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code, sub.customer_name FROM @@ -315,7 +315,7 @@ IF 输入.flag = "14" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code, sub.customer_name FROM @@ -337,7 +337,7 @@ IF 输入.flag = "15" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code FROM st_ivt_iostorinvdis dis @@ -359,7 +359,7 @@ IF 输入.flag = "16" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code FROM st_ivt_iostorinvdis dis @@ -381,7 +381,7 @@ IF 输入.flag = "17" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code, sub.customer_name FROM @@ -404,7 +404,7 @@ IF 输入.flag = "18" QUERY SELECT - SUM( dis.plan_qty ) AS num, + SUM( dis.plan_qty ) / 1000 AS num, LEFT(dis.pcsn,2) AS region_code, sub.customer_name FROM 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 index d490e1dde..d25b86208 100644 --- 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 @@ -51,8 +51,6 @@ public class AutoQueryProudDayData { param.put("Code", "ctp_AAVwgNuQOtO0"); param.put("card", data()); - System.out.println(param.toString()); - // 调用接口 lmsToMesService.proudDayData(param); @@ -70,7 +68,7 @@ public class AutoQueryProudDayData { String custC = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("CUST_C").getValue(); JSONObject result = new JSONObject(); // 全部数据 - result.put("Title", DateUtil.today()+"成品数据"); + result.put("Title", DateUtil.today()+"成品数据(单位:T)"); /* * 查询各仓库库存 @@ -99,25 +97,25 @@ public class AutoQueryProudDayData { List collect = allIvtList.stream() .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) .collect(Collectors.toList()); - json.put("TotalInventory", collect.isEmpty() ? "0KG" : NumberUtil.round(collect.get(0).getString("num"), 3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collect2.get(0).getString("num"),3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collect3.get(0).getString("num"),3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collect4.get(0).getString("num"),3)+"KG"); + json.put("NormalStockAge", collect4.isEmpty() ? "0" : NumberUtil.round(collect4.get(0).getString("num"),2)+""); Arrayobject1.add(json); } @@ -125,10 +123,10 @@ public class AutoQueryProudDayData { // 计算全部 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(), 3)+"KG"); - allIvt.put("OverdueInventory", NumberUtil.round(sidIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); - allIvt.put("InterimInventory", NumberUtil.round(faceIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); - allIvt.put("NormalStockAge", NumberUtil.round(regIvtList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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); @@ -181,19 +179,19 @@ public class AutoQueryProudDayData { List collectB = custIvtBList.stream() .filter(row -> row.getString("stor_id").equals(item.getString("stor_id"))) .collect(Collectors.toList()); - json.put("Customernventory1", collectB.isEmpty() ? "0KG" : NumberUtil.round(collectB.get(0).getString("num"), 3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collectC.get(0).getString("num"), 3)+"KG"); + 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() ? "0KG" : NumberUtil.round(collectOthen.get(0).getString("num"), 3)+"KG"); + json.put("Customernventory3", collectOthen.isEmpty() ? "0" : NumberUtil.round(collectOthen.get(0).getString("num"), 2)+""); Arrayobject2.add(json); } @@ -201,9 +199,9 @@ public class AutoQueryProudDayData { // 计算全部 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(), 3)+"KG"); - allCustIvt.put("Customernventory2", NumberUtil.round(custIvtCList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); - allCustIvt.put("Customernventory3", NumberUtil.round(custIvtOtherList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 3)+"KG"); + 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); @@ -255,16 +253,16 @@ public class AutoQueryProudDayData { 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(), 3)+"KG"); + 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(), 3)+"KG"); + 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(), 3)+"KG"); + yesterdayIn.put("Customerqty3", NumberUtil.round(yesterdayInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); Arrayobject4.add(yesterdayIn); // ---- 昨日出库量 ---- @@ -275,16 +273,16 @@ public class AutoQueryProudDayData { 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(), 3)+"KG"); + 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(), 3)+"KG"); + 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(), 3)+"KG"); + yesterdayOut.put("Customerqty3", NumberUtil.round(yesterdayOutList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); Arrayobject4.add(yesterdayOut); // ---- 当月入库量 ---- @@ -295,16 +293,16 @@ public class AutoQueryProudDayData { 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(), 3)+"KG"); + 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(), 3)+"KG"); + 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(), 3)+"KG"); + monthdayIn.put("Customerqty3", NumberUtil.round(monthInList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2)+""); Arrayobject4.add(monthdayIn); // ---- 当月出库量 ---- @@ -315,16 +313,16 @@ public class AutoQueryProudDayData { 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(), 3)+"KG"); + 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(), 3)+"KG"); + 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(), 3)+"KG"); + 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); @@ -442,16 +440,16 @@ public class AutoQueryProudDayData { .collect(Collectors.groupingBy(row -> row.getString("region_code"))); if (paramMap.isEmpty()) { - result.put("Areaqty1","0KG"); - result.put("Areaqty2","0KG"); - result.put("Areaqty3","0KG"); - result.put("Areaqty4","0KG"); + 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(), 3) + "KG"; + 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; @@ -461,10 +459,10 @@ public class AutoQueryProudDayData { } } - if (ObjectUtil.isEmpty(result.getString("Areaqty1"))) result.put("Areaqty1","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0KG"); + 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; } @@ -485,10 +483,10 @@ public class AutoQueryProudDayData { .collect(Collectors.groupingBy(row -> row.getString("region_code"))); if (paramMap.isEmpty()) { - result.put("Areaqty1","0KG"); - result.put("Areaqty2","0KG"); - result.put("Areaqty3","0KG"); - result.put("Areaqty4","0KG"); + result.put("Areaqty1","0"); + result.put("Areaqty2","0"); + result.put("Areaqty3","0"); + result.put("Areaqty4","0"); } for (String region_code : paramMap.keySet()) { @@ -498,7 +496,7 @@ public class AutoQueryProudDayData { .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(), 3) + "KG"; + String num = NumberUtil.round(custList.stream().map(row -> row.getDoubleValue("num")).reduce(Double::sum).orElse(0.0).toString(), 2) + ""; switch (region_code) { @@ -509,10 +507,10 @@ public class AutoQueryProudDayData { } } - if (ObjectUtil.isEmpty(result.getString("Areaqty1"))) result.put("Areaqty1","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty2"))) result.put("Areaqty2","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty3"))) result.put("Areaqty3","0KG"); - if (ObjectUtil.isEmpty(result.getString("Areaqty4"))) result.put("Areaqty4","0KG"); + 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; }