From 7c4011434f0da5c2aa17e0fad8abc4b2dd9a35d8 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Wed, 26 Mar 2025 09:59:27 +0800 Subject: [PATCH 1/5] =?UTF-8?q?wms=E7=9A=84=E6=8A=A5=E6=A3=80=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sap/service/impl/SapWmsServicelmpl.java | 10 +++-- .../impl/OdsProcureOutOrderServiceImpl.java | 39 +++++++++++++++++-- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java index b4faa12ac..10d7102c7 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWmsServicelmpl.java @@ -190,6 +190,8 @@ public class SapWmsServicelmpl implements SapWmsService { L_ITEM.appendRow(); L_ITEM.setValue("COSTCENTER", stringObjectMap.get("COSTCENTER"));//成本中心 L_ITEM.setValue("PLANT", stringObjectMap.get("PLANT"));//工厂 + L_ITEM.setValue("GL_ACCOUNT", stringObjectMap.get("GL_ACCOUNT"));//总帐科目编号 + L_ITEM.setValue("GR_RCPT", stringObjectMap.get("GR_RCPT"));//收货方/运达方 L_ITEM.setValue("LGORT", stringObjectMap.get("LGORT"));//库存地点 L_ITEM.setValue("MATNR", stringObjectMap.get("MATNR"));//物料号 L_ITEM.setValue("QUANTITY", stringObjectMap.get("QUANTITY"));//数量 @@ -239,11 +241,11 @@ public class SapWmsServicelmpl implements SapWmsService { try { JCoRepository repository = dest.getRepository(); - JCoFunction func = repository.getFunction("ZMES_961_MB1A"); + JCoFunction func = repository.getFunction("ZMES_962_MB1A"); if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } - log.info("成品ZMES_201_MB1A-------" + mapList.toString()); + log.info("ZMES_962_MB1A-------" + mapList.toString()); /** AUFNR 订单号 POSNR 订单项目编号 @@ -269,7 +271,9 @@ public class SapWmsServicelmpl implements SapWmsService { JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); for (Map stringObjectMap : mapList) { L_ITEM.appendRow(); - L_ITEM.setValue("COSTCENTER", stringObjectMap.get("COSTCENTER"));//成本中心 + L_ITEM.setValue("AUFNR", stringObjectMap.get("AUFNR"));//订单号 + L_ITEM.setValue("GL_ACCOUNT", stringObjectMap.get("GL_ACCOUNT"));//总帐科目编号 + L_ITEM.setValue("GR_RCPT", stringObjectMap.get("GR_RCPT"));//收货方/运达方 L_ITEM.setValue("PLANT", stringObjectMap.get("PLANT"));//工厂 L_ITEM.setValue("LGORT", stringObjectMap.get("LGORT"));//库存地点 L_ITEM.setValue("MATNR", stringObjectMap.get("MATNR"));//物料号 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index 482b8fd1f..f5b37ef10 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -489,7 +489,8 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderSpecialByIDs(orderList); for (OdsProcureOutOrder order: orderList1 ) { - if ("成本中心".equals(orderList1.get(0).getUserDefined6())){//区分出来内部订单 + if ("成本中心".equals(orderList1.get(0).getUserDefined6())){ + //区分出来内部订单 Map paramMap=new HashMap<>(); List mapList = new ArrayList<>(); paramMap.put("GL_ACCOUNT", order.getUserDefined2());//总帐科目编号 @@ -534,12 +535,15 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService order1.setUserDefined11(msg);//信息 odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); } - //这个地方需要对 + + }else { //内部订单 Map paramMap=new HashMap<>(); List mapList = new ArrayList<>(); - paramMap.put("COSTCENTER", order.getUserDefined3());// + paramMap.put("AUFNR", order.getProduceCode());// + paramMap.put("GL_ACCOUNT", order.getUserDefined2());// + paramMap.put("GR_RCPT", order.getUserDefined4());//收货方/运达方 paramMap.put("PLANT", order.getSiteCode());//工厂 paramMap.put("LGORT", order.getLocCode());//库存地点 paramMap.put("MATNR", order.getMaterialCode());// @@ -551,6 +555,35 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService mapList.add(paramMap); // R result2 = remoteSapService.sapProductOutboundCostTWO(mapList); R result2 = remoteSapService.sapProductOutboundCostTW(mapList); + int code = result2.getCode(); + OdsProcureOutOrder order1 = new OdsProcureOutOrder(); + String msg = result2.getMsg(); + order.setUserDefined11(msg); + if (code== 200){ + //过账成功 + Map map = new HashMap(); + map = (Map) result2.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + //order.setUserDefined9(userDefined9); + // order.setUserDefined10("2");//成功 +// for (OdsProcureOutOrder order2: +// orderList2 ) { + order1.setID(order.getID()); + order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("2");//1是未过账,2是成功,3是失败 + order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); +// } + }else { + order1.setID(order.getID()); + // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("3");//1是未过账,2是成功,3是失败 + // order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); + } + } } From 0005043b709538b1b0cf2ba177567747a6bc7f4c Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Thu, 27 Mar 2025 14:29:35 +0800 Subject: [PATCH 2/5] =?UTF-8?q?wms=E7=9A=84=E6=88=90=E5=93=81=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E5=85=A5=E5=BA=93=E6=8A=A5=E8=A1=A8=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E8=B4=A8=E6=A3=80=E7=8A=B6=E6=80=81=E8=8E=B7=E5=8F=96=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OdsProcureOrderServiceImpl.java | 231 ++++++++++-------- .../impl/OdsProcureOutOrderServiceImpl.java | 131 ++-------- .../mapper/wms/OdsProcureOutOrderMapper.xml | 2 +- .../mapper/wms/WmsProductPutMapper.xml | 18 +- 4 files changed, 155 insertions(+), 227 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 2a66fd767..cc6991120 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -1568,111 +1568,138 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public void OutboundPostingzcSAPTS(List orderList) { - //先根据出库单获取 -// * 退料的移动类型为 262 -// * 领料的移动类型为 261 List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDsTS(orderList); - List orderList2 = new ArrayList<>();//非反冲 - List> mapList = new ArrayList<>();//非反冲 - List sapMaterialPostingFCList = new ArrayList<>();//反冲 - List orderList2FC = new ArrayList<>();//反冲 - for (OdsProcureOutOrder odsProcureOutOrder : - orderList1) { - if (!"X".equals(odsProcureOutOrder.getUserDefined3())){ - Map map = new HashMap<>(); - map.put("AUFNR", odsProcureOutOrder.getProduceCode()); - map.put("PLANT", odsProcureOutOrder.getSiteCode()); - String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); - map.put("LGORT", lgort); - map.put("MATNR", odsProcureOutOrder.getMaterialCode()); - map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString()); - map.put("MEINS", odsProcureOutOrder.getUnit()); - mapList.add(map); - orderList2.add(odsProcureOutOrder); - }else { - SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery(); - sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂 - String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); - sapBackflushMPQuery.setLgort(lgort);//库存地点 - sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号 - sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量 - sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位 - sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号 - sapMaterialPostingFCList.add(sapBackflushMPQuery); - orderList2FC.add(odsProcureOutOrder); - } - } - if (mapList.size() > 0) { - //非反冲过账 - SapMaterialPosting sapMaterialPosting = new SapMaterialPosting(); - sapMaterialPosting.setPostingType("261"); - sapMaterialPosting.setMapList(mapList); - R result = remoteSapService.sapMaterialPosting(sapMaterialPosting); - OdsProcureOutOrder order = new OdsProcureOutOrder(); - int code = result.getCode(); - String msg = result.getMsg(); - //order.setSapMaterialPostingList(sapMaterialPostingList); - order.setUserDefined11(msg); - if (code == 200) { - //过账成功 - Map map = new HashMap(); - map = (Map) result.getData(); - String userDefined9 = (String) map.get("MATERIALDOCUMENT"); - order.setUserDefined9(userDefined9); - order.setUserDefined10("2");//成功 - odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); - for (OdsProcureOutOrder order1: - orderList2) { - //过账成功--减库存 - List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); - for (WmsOdsMateStorageNews wmsOdsMateStorageNews: - odsEmStorageNews) { - //wmsOdsMateStorageNews - wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); - wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 - } - } - } else { - // - order.setUserDefined9(""); - order.setUserDefined10("3");//失败 - odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); - } - } - if (sapMaterialPostingFCList.size() > 0) { - //反冲过账 - R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x - int code = result2.getCode(); - OdsProcureOutOrder order = new OdsProcureOutOrder(); - String msg = result2.getMsg(); - order.setUserDefined11(msg); - if (code == 200) { - //过账成功 - Map map = new HashMap(); - map = (Map) result2.getData(); - String userDefined9 = (String) map.get("MATERIALDOCUMENT"); - order.setUserDefined9(userDefined9); - order.setUserDefined10("2");//成功 - odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); - for (OdsProcureOutOrder order1: - orderList2FC) { - //过账成功--减库存 - List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); - for (WmsOdsMateStorageNews wmsOdsMateStorageNews: - odsEmStorageNews) { - //wmsOdsMateStorageNews - wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); - wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 - } - } - } else {// - order.setUserDefined9(""); - order.setUserDefined10("3");//失败 - odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); - } - } + OutboundPostingzcSAPGYTS(orderList1); } + + + public void OutboundPostingzcSAPGYTS(List orderList) { + //先根据出库单获取 +// -- and wms_ods_procure_out_order.Order_Status='3' + //我把过账状态-- and wms_ods_procure_out_order.User_Defined10!='2'去掉了 + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderSpecialByIDs(orderList); + for (OdsProcureOutOrder order: + orderList1 ) { + if ("成本中心".equals(orderList1.get(0).getUserDefined6())){ + //区分出来内部订单 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + paramMap.put("GL_ACCOUNT", order.getUserDefined2());//总帐科目编号 + paramMap.put("COSTCENTER", order.getUserDefined3());//成本中心 + paramMap.put("GR_RCPT", order.getUserDefined4());//收货方/运达方 + paramMap.put("PLANT", order.getSiteCode());//工厂 + paramMap.put("LGORT", order.getLocCode());//库存地点 + paramMap.put("MATNR", order.getMaterialCode());//物料号 + paramMap.put("QUANTITY", order.getPlanNumber());//数量 + paramMap.put("MEINS", order.getUnit());//条目单位 + paramMap.put("BATCH", order.getUserDefined1());//批号 + paramMap.put("PROD_DATE", order.getPlanDate());//生产日期 + paramMap.put("EXPIRYDATE", order.getUserDefined5());//货架寿命到期日 + mapList.add(paramMap); + R result2 = remoteSapService.sapProductOutboundCostCenter(mapList); + + int code = result2.getCode(); + OdsProcureOutOrder order1 = new OdsProcureOutOrder(); + String msg = result2.getMsg(); + order.setUserDefined11(msg); + if (code== 200){ + //过账成功 + Map map = new HashMap(); + map = (Map) result2.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + //order.setUserDefined9(userDefined9); + // order.setUserDefined10("2");//成功 +// for (OdsProcureOutOrder order2: +// orderList2 ) { + order1.setID(order.getID()); + order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("2");//1是未过账,2是成功,3是失败 + order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); +// } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + }else { + order1.setID(order.getID()); + // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("3");//1是未过账,2是成功,3是失败 + // order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); + } + + + }else { + //内部订单 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + paramMap.put("AUFNR", order.getProduceCode());// + paramMap.put("GL_ACCOUNT", order.getUserDefined2());// + paramMap.put("GR_RCPT", order.getUserDefined4());//收货方/运达方 + paramMap.put("PLANT", order.getSiteCode());//工厂 + paramMap.put("LGORT", order.getLocCode());//库存地点 + paramMap.put("MATNR", order.getMaterialCode());// + paramMap.put("QUANTITY", order.getPlanNumber());// + paramMap.put("MEINS", order.getUnit());// + paramMap.put("BATCH", order.getUserDefined1());// + paramMap.put("PROD_DATE", order.getPlanDate());//生产日期 + paramMap.put("EXPIRYDATE", order.getUserDefined5());//货架寿命到期日 + mapList.add(paramMap); +// R result2 = remoteSapService.sapProductOutboundCostTWO(mapList); + R result2 = remoteSapService.sapProductOutboundCostTW(mapList); + int code = result2.getCode(); + OdsProcureOutOrder order1 = new OdsProcureOutOrder(); + String msg = result2.getMsg(); + order.setUserDefined11(msg); + if (code== 200){ + //过账成功 + Map map = new HashMap(); + map = (Map) result2.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + //order.setUserDefined9(userDefined9); + // order.setUserDefined10("2");//成功 +// for (OdsProcureOutOrder order2: +// orderList2 ) { + order1.setID(order.getID()); + order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("2");//1是未过账,2是成功,3是失败 + order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); +// } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + }else { + order1.setID(order.getID()); + // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 + order1.setUserDefined10("3");//1是未过账,2是成功,3是失败 + // order1.setUserDefined9(userDefined9);//凭证 + order1.setUserDefined11(msg);//信息 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialTWById(order1); + } + + } + } + + + + } @Override @DS("#header.poolName") public void OutboundPostingzcSAPTH(List orderList) { diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index f5b37ef10..e35ed000c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -527,6 +527,15 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService order1.setUserDefined11(msg);//信息 odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); // } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } }else { order1.setID(order.getID()); // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 @@ -575,6 +584,15 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService order1.setUserDefined11(msg);//信息 odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapSpecialById(order1); // } + order1.setProduceCode(order.getProduceCode()); + order1.setMaterialCode(order.getMaterialCode()); + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } }else { order1.setID(order.getID()); // order1.setSapNumber(order.getOutNumber());//成功..这个是否的outNumber是用已出库减去已经过账的数量 @@ -588,117 +606,6 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService } -// List orderList2 = new ArrayList<>();//非反冲 -// List> mapList = new ArrayList<>();//非反冲 -// List sapMaterialPostingFCList = new ArrayList<>();//反冲 -// List orderList2FC = new ArrayList<>();//反冲 -// for (OdsProcureOutOrder odsProcureOutOrder : -// orderList1) { -// if (!"X".equals(odsProcureOutOrder.getUserDefined3())){ -// Map map = new HashMap<>(); -// map.put("AUFNR", odsProcureOutOrder.getProduceCode()); -// map.put("PLANT", odsProcureOutOrder.getSiteCode()); -// String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); -// map.put("LGORT", lgort); -// map.put("MATNR", odsProcureOutOrder.getMaterialCode()); -// map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString()); -// map.put("MEINS", odsProcureOutOrder.getUnit()); -// mapList.add(map); -// orderList2.add(odsProcureOutOrder); -// }else { -// SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery(); -// sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂 -// String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); -// sapBackflushMPQuery.setLgort(lgort);//库存地点 -// sapBackflushMPQuery.setUmlgo("0013"); -// sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号 -// sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量 -// sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位 -// sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号 -// sapMaterialPostingFCList.add(sapBackflushMPQuery); -// orderList2FC.add(odsProcureOutOrder); -// } -// } -// if (mapList.size() > 0) { -// //非反冲过账 -// SapMaterialPosting sapMaterialPosting = new SapMaterialPosting(); -// sapMaterialPosting.setPostingType("261"); -// sapMaterialPosting.setMapList(mapList); -// R result = remoteSapService.sapMaterialPosting(sapMaterialPosting); -// OdsProcureOutOrder order = new OdsProcureOutOrder(); -// int code = result.getCode(); -// String msg = result.getMsg(); -// //order.setSapMaterialPostingList(sapMaterialPostingList); -// order.setUserDefined11(msg); -// if (code == 200) { -// //过账成功 -// Map map = new HashMap(); -// map = (Map) result.getData(); -// String userDefined9 = (String) map.get("MATERIALDOCUMENT"); -// order.setUserDefined9(userDefined9); -// order.setUserDefined10("2");//成功 -// for (OdsProcureOutOrder order1: -// orderList2 ) { -// BigDecimal sapNumber= order1.getSapNumber(); -// order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); -// } -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); -// for (OdsProcureOutOrder order1: -// orderList2) { -// //过账成功--减库存 -// List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); -// for (WmsOdsMateStorageNews wmsOdsMateStorageNews: -// odsEmStorageNews) { -// //wmsOdsMateStorageNews -// wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); -// wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 -// } -// } -// } else { -// // -// order.setUserDefined9(""); -// order.setUserDefined10("3");//失败 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); -// } -// } -// if (sapMaterialPostingFCList.size() > 0) { -// //反冲过账 -// R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x -// int code = result2.getCode(); -// OdsProcureOutOrder order = new OdsProcureOutOrder(); -// String msg = result2.getMsg(); -// order.setUserDefined11(msg); -// if (code == 200) { -// //过账成功 -// Map map = new HashMap(); -// map = (Map) result2.getData(); -// String userDefined9 = (String) map.get("MATERIALDOCUMENT"); -// order.setUserDefined9(userDefined9); -// order.setUserDefined10("2");//成功 -// for (OdsProcureOutOrder order1: -// orderList2FC ) { -// BigDecimal sapNumber= order1.getSapNumber(); -// order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1); -// } -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); -// for (OdsProcureOutOrder order1: -// orderList2FC) { -// //过账成功--减库存 -// List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); -// for (WmsOdsMateStorageNews wmsOdsMateStorageNews: -// odsEmStorageNews) { -// //wmsOdsMateStorageNews -// wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); -// wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 -// } -// } -// } else {// -// order.setUserDefined9(""); -// order.setUserDefined10("3");//失败 -// odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); -// } -// } + } } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index d3a729bc8..bd91cdf45 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -1251,7 +1251,7 @@ wms_raw_mission_out WHERE prd_order=#{produceCode} AND - material_code=#{materialCode} AND + material_code like concat('%', #{materialCode},'%') AND user_defined5='1' From be0e664a90fea7c02bcb33b0e64d65cc45dcc215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=9D=B0?= <2658502433@qq.com> Date: Thu, 27 Mar 2025 17:20:32 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=88=90=E5=9E=8B=E6=9C=BA=E4=BA=A7?= =?UTF-8?q?=E9=87=8F=E6=9F=A5=E8=AF=A2=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MesCxjProductedController.java | 105 ++++++++++++++ .../com/op/mes/domain/MesCxjProducted.java | 136 ++++++++++++++++++ .../op/mes/mapper/MesCxjProductedMapper.java | 61 ++++++++ .../mes/service/IMesCxjProductedService.java | 61 ++++++++ .../impl/MesCxjProductedServiceImpl.java | 103 +++++++++++++ .../mapper/mes/MesCxjProductedMapper.xml | 98 +++++++++++++ 6 files changed, 564 insertions(+) create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/controller/MesCxjProductedController.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/MesCxjProducted.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/mapper/MesCxjProductedMapper.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/IMesCxjProductedService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesCxjProductedServiceImpl.java create mode 100644 op-modules/op-mes/src/main/resources/mapper/mes/MesCxjProductedMapper.xml diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesCxjProductedController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesCxjProductedController.java new file mode 100644 index 000000000..93dfc672b --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesCxjProductedController.java @@ -0,0 +1,105 @@ +package com.op.mes.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.op.common.security.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.op.common.log.annotation.Log; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.log.enums.BusinessType; +import com.op.mes.domain.MesCxjProducted; +import com.op.mes.service.IMesCxjProductedService; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 成型机产量Controller + * + * @author ruoyi + * @date 2025-03-20 + */ +@RestController +@RequestMapping("/producted") +public class MesCxjProductedController extends BaseController +{ + @Autowired + private IMesCxjProductedService mesCxjProductedService; + + /** + * 查询成型机产量列表 + */ +// @RequiresPermissions("@ss.hasPermi('system:producted:list')") + @GetMapping("/list") + public TableDataInfo list(MesCxjProducted mesCxjProducted) + { + startPage(); + List list = mesCxjProductedService.selectMesCxjProductedList(mesCxjProducted); + return getDataTable(list); + } + + /** + * 导出成型机产量列表 + */ +// @PreAuthorize("@ss.hasPermi('system:producted:export')") + @Log(title = "成型机产量", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MesCxjProducted mesCxjProducted) + { + List list = mesCxjProductedService.selectMesCxjProductedList(mesCxjProducted); + ExcelUtil util = new ExcelUtil(MesCxjProducted.class); + util.exportExcel(response, list, "成型机产量数据"); + } + + /** + * 获取成型机产量详细信息 + */ +// @PreAuthorize("@ss.hasPermi('system:producted:query')") + @GetMapping(value = "/{workorderCode}") + public AjaxResult getInfo(@PathVariable("workorderCode") String workorderCode) + { + return success(mesCxjProductedService.selectMesCxjProductedByWorkorderCode(workorderCode)); + } + + /** + * 新增成型机产量 + */ +// @PreAuthorize("@ss.hasPermi('system:producted:add')") + @Log(title = "成型机产量", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MesCxjProducted mesCxjProducted) + { + return toAjax(mesCxjProductedService.insertMesCxjProducted(mesCxjProducted)); + } + + /** + * 修改成型机产量 + */ +// @PreAuthorize("@ss.hasPermi('system:producted:edit')") + @Log(title = "成型机产量", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MesCxjProducted mesCxjProducted) + { + return toAjax(mesCxjProductedService.updateMesCxjProducted(mesCxjProducted)); + } + + /** + * 删除成型机产量 + */ +// @PreAuthorize("@ss.hasPermi('system:producted:remove')") + @Log(title = "成型机产量", businessType = BusinessType.DELETE) + @DeleteMapping("/{workorderCodes}") + public AjaxResult remove(@PathVariable String[] workorderCodes) + { + return toAjax(mesCxjProductedService.deleteMesCxjProductedByWorkorderCodes(workorderCodes)); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesCxjProducted.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesCxjProducted.java new file mode 100644 index 000000000..60746998e --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesCxjProducted.java @@ -0,0 +1,136 @@ +package com.op.mes.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +/** + * 成型机产量对象 mes_cxj_producted + * + * @author chj + * @date 2025-03-20 + */ +public class MesCxjProducted extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** + * 产品编码 + */ + private String productCode; + + /* + 产品名称 + */ + private String productName; + + /** + *班次 + */ + private String ShiftId; + + /** 工单号 */ + @Excel(name = "工单号") + private String workorderCode; + + /** 机台编码 */ + @Excel(name = "机台编码") + private String workorderName; + + /** + * 开始结束日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + public LocalDateTime getBeginTime() { + return beginTime; + } + + public void setBeginTime(LocalDateTime beginTime) { + this.beginTime = beginTime; + } + + public LocalDateTime getEndTime() { + return endTime; + } + + public void setEndTime(LocalDateTime endTime) { + this.endTime = endTime; + } + + /** 备用1 */ + @Excel(name = "备用1") + private String attr1; + + /** 备用2 */ + @Excel(name = "备用2") + private String attr2; + + /** 备用2 */ + @Excel(name = "备用2") + private String attr3; + + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getShiftId() { + return ShiftId; + } + + public void setShiftId(String shiftId) { + ShiftId = shiftId; + } + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderName() { + return workorderName; + } + + public void setWorkorderName(String workorderName) { + this.workorderName = workorderName; + } + + @Override + public String toString() { + return "MesCxjProducted{" + + "productCode='" + productCode + '\'' + + ", productName='" + productName + '\'' + + ", ShiftId='" + ShiftId + '\'' + + ", workorderCode='" + workorderCode + '\'' + + ", workorderName='" + workorderName + '\'' + + ", beginTime='" + beginTime + '\'' + + ", endTime='" + endTime + '\'' + + ", attr1='" + attr1 + '\'' + + ", attr2='" + attr2 + '\'' + + ", attr3='" + attr3 + '\'' + + '}'; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesCxjProductedMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesCxjProductedMapper.java new file mode 100644 index 000000000..48a6ed750 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesCxjProductedMapper.java @@ -0,0 +1,61 @@ +package com.op.mes.mapper; + +import java.util.List; +import com.op.mes.domain.MesCxjProducted; + +/** + * 成型机产量Mapper接口 + * + * @author ruoyi + * @date 2025-03-20 + */ +public interface MesCxjProductedMapper +{ + /** + * 查询成型机产量 + * + * @param workorderCode 成型机产量主键 + * @return 成型机产量 + */ + public MesCxjProducted selectMesCxjProductedByWorkorderCode(String workorderCode); + + /** + * 查询成型机产量列表 + * + * @param mesCxjProducted 成型机产量 + * @return 成型机产量集合 + */ + public List selectMesCxjProductedList(MesCxjProducted mesCxjProducted); + + /** + * 新增成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + public int insertMesCxjProducted(MesCxjProducted mesCxjProducted); + + /** + * 修改成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + public int updateMesCxjProducted(MesCxjProducted mesCxjProducted); + + /** + * 删除成型机产量 + * + * @param workorderCode 成型机产量主键 + * @return 结果 + */ + public int deleteMesCxjProductedByWorkorderCode(String workorderCode); + + /** + * 批量删除成型机产量 + * + * @param workorderCodes 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesCxjProductedByWorkorderCodes(String[] workorderCodes); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesCxjProductedService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesCxjProductedService.java new file mode 100644 index 000000000..8667a276a --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesCxjProductedService.java @@ -0,0 +1,61 @@ +package com.op.mes.service; + +import java.util.List; +import com.op.mes.domain.MesCxjProducted; + +/** + * 成型机产量Service接口 + * + * @author ruoyi + * @date 2025-03-20 + */ +public interface IMesCxjProductedService +{ + /** + * 查询成型机产量 + * + * @param workorderCode 成型机产量主键 + * @return 成型机产量 + */ + public MesCxjProducted selectMesCxjProductedByWorkorderCode(String workorderCode); + + /** + * 查询成型机产量列表 + * + * @param mesCxjProducted 成型机产量 + * @return 成型机产量集合 + */ + public List selectMesCxjProductedList(MesCxjProducted mesCxjProducted); + + /** + * 新增成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + public int insertMesCxjProducted(MesCxjProducted mesCxjProducted); + + /** + * 修改成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + public int updateMesCxjProducted(MesCxjProducted mesCxjProducted); + + /** + * 批量删除成型机产量 + * + * @param workorderCodes 需要删除的成型机产量主键集合 + * @return 结果 + */ + public int deleteMesCxjProductedByWorkorderCodes(String[] workorderCodes); + + /** + * 删除成型机产量信息 + * + * @param workorderCode 成型机产量主键 + * @return 结果 + */ + public int deleteMesCxjProductedByWorkorderCode(String workorderCode); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesCxjProductedServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesCxjProductedServiceImpl.java new file mode 100644 index 000000000..502591f05 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesCxjProductedServiceImpl.java @@ -0,0 +1,103 @@ +package com.op.mes.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.mes.mapper.MesCxjProductedMapper; +import com.op.mes.domain.MesCxjProducted; +import com.op.mes.service.IMesCxjProductedService; + +/** + * 成型机产量Service业务层处理 + * + * @author ruoyi + * @date 2025-03-20 + */ +@Service +public class MesCxjProductedServiceImpl implements IMesCxjProductedService +{ + @Autowired + private MesCxjProductedMapper mesCxjProductedMapper; + + /** + * 查询成型机产量 + * + * @param workorderCode 成型机产量主键 + * @return 成型机产量 + */ + @Override + @DS("#header.poolName") + public MesCxjProducted selectMesCxjProductedByWorkorderCode(String workorderCode) + { + return mesCxjProductedMapper.selectMesCxjProductedByWorkorderCode(workorderCode); + } + + /** + * 查询成型机产量列表 + * + * @param mesCxjProducted 成型机产量 + * @return 成型机产量 + */ + @Override + @DS("#header.poolName") + public List selectMesCxjProductedList(MesCxjProducted mesCxjProducted) + { + return mesCxjProductedMapper.selectMesCxjProductedList(mesCxjProducted); + } + + /** + * 新增成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertMesCxjProducted(MesCxjProducted mesCxjProducted) + { + mesCxjProducted.setCreateTime(DateUtils.getNowDate()); + return mesCxjProductedMapper.insertMesCxjProducted(mesCxjProducted); + } + + /** + * 修改成型机产量 + * + * @param mesCxjProducted 成型机产量 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateMesCxjProducted(MesCxjProducted mesCxjProducted) + { + return mesCxjProductedMapper.updateMesCxjProducted(mesCxjProducted); + } + + /** + * 批量删除成型机产量 + * + * @param workorderCodes 需要删除的成型机产量主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteMesCxjProductedByWorkorderCodes(String[] workorderCodes) + { + return mesCxjProductedMapper.deleteMesCxjProductedByWorkorderCodes(workorderCodes); + } + + /** + * 删除成型机产量信息 + * + * @param workorderCode 成型机产量主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteMesCxjProductedByWorkorderCode(String workorderCode) + { + return mesCxjProductedMapper.deleteMesCxjProductedByWorkorderCode(workorderCode); + } +} diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesCxjProductedMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesCxjProductedMapper.xml new file mode 100644 index 000000000..a068632e3 --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesCxjProductedMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + SELECT + pro_order_workorder.workorder_code, + pro_order_workorder.product_code, + pro_order_workorder.product_name, + mes_cxj_producted.workorder_name, + mes_cxj_producted.create_time, + pro_order_workorder.shift_id + FROM + mes_cxj_producted LEFT JOIN + pro_order_workorder on mes_cxj_producted.workorder_code = pro_order_workorder.workorder_id + + + + + + + + insert into mes_cxj_producted + + workorder_code, + workorder_name, + create_time, + attr1, + attr2, + attr3, + + + #{workorderCode}, + #{workorderName}, + #{createTime}, + #{attr1}, + #{attr2}, + #{attr3}, + + + + + update mes_cxj_producted + + workorder_name = #{workorderName}, + create_time = #{createTime}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + + where workorder_code = #{workorderCode} + + + + delete from mes_cxj_producted where workorder_code = #{workorderCode} + + + + delete from mes_cxj_producted where workorder_code in + + #{workorderCode} + + + \ No newline at end of file From 615af4da86350554176f3ff7147e9a8fdf776d7f Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Fri, 28 Mar 2025 14:46:24 +0800 Subject: [PATCH 4/5] =?UTF-8?q?wms=E7=9A=84=E6=8A=A5=E6=A3=80=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/wms/controller/WmsRawOrderInController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsRawOrderInController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsRawOrderInController.java index 456541181..256271cf4 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsRawOrderInController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsRawOrderInController.java @@ -131,8 +131,8 @@ public class WmsRawOrderInController extends BaseController { * 报检报表 */ - @PostMapping("/listZJ") - public TableDataInfo listInspectionReport(@RequestBody WmsRawOrderIn wmsRawOrderIn) { + @GetMapping("/listZJ") + public TableDataInfo listInspectionReport(WmsRawOrderIn wmsRawOrderIn) { startPage(); List list = wmsRawOrderInService.listInspectionReport(wmsRawOrderIn); return getDataTable(list); From 31cbf06fad6221aad9adc98dc0548e273493f5f5 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 28 Mar 2025 18:00:12 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=99=BD=E5=9D=AF=E4=B8=8D=E8=89=AF?= =?UTF-8?q?=E3=80=81=E8=BF=94=E5=B7=A5=E3=80=81=E7=BC=BA=E7=BA=BF=E5=88=86?= =?UTF-8?q?=E5=B8=83=E7=AD=89=E6=8A=A5=E8=A1=A8=E5=BC=80=E5=8F=91=EF=BC=9B?= =?UTF-8?q?=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1=E4=BA=8C=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E9=86=92=E5=8A=9F=E8=83=BD=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/common/core/constant/HttpStatus.java | 4 +- .../src/main/java/com/op/job/task/RyTask.java | 4 +- .../impl/MesLineAssistantQtyServiceImpl.java | 64 +++-- .../controller/QcStaticTableController.java | 31 ++ .../com/op/quality/domain/QcProCheck.java | 27 +- .../com/op/quality/domain/QcStaticTable.java | 18 ++ .../quality/mapper/QcStaticTableMapper.java | 16 ++ .../service/IQcStaticTableService.java | 9 + .../impl/QcCheckTaskDetailServiceImpl.java | 16 +- .../impl/QcStaticTableServiceImpl.java | 264 ++++++++++++++++++ .../quality/QcCheckTaskDetailMapper.xml | 5 +- .../mapper/quality/QcProCheckMapper.xml | 5 + .../mapper/quality/QcStaticTableMapper.xml | 156 +++++++++++ 13 files changed, 571 insertions(+), 48 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/constant/HttpStatus.java b/op-common/op-common-core/src/main/java/com/op/common/core/constant/HttpStatus.java index 96e6b8887..0c5aed4f5 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/constant/HttpStatus.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/constant/HttpStatus.java @@ -2,7 +2,7 @@ package com.op.common.core.constant; /** * 返回状态码 - * + * * @author OP */ public class HttpStatus { @@ -91,3 +91,5 @@ public class HttpStatus { */ public static final int WARN = 601; } + + diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 797dd8ba7..163409d9d 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -190,9 +190,9 @@ public class RyTask { remoteQualityService.createCPBatchTask(); } - //质量检验任务没有检查的,一小时后重新发送微信提醒,三分钟一次 + //质量检验任务没有检查的,2小时后重新发送微信提醒一次(除成品检验外) public void resendWXTask(){ - logger.info("++质量管理系统+检验任务一小时后重新发送微信提醒+开始++resendWXTask+++++"); + logger.info("++质量管理系统+检验任务2小时后重新发送微信提醒一次(成品检验除外)+开始++resendWXTask+++++"); remoteQualityService.resendWXTask(); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java index 615fd4bb5..1f7f79281 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java @@ -162,49 +162,61 @@ public class MesLineAssistantQtyServiceImpl implements IMesLineAssistantQtyServi MesLineAssistantQty manQty = assistMaps.get(mesLineAssistant.getProductDateStr()); if(manQty!=null){ //班长用人=当日人数*工时占比 - assistdto.setMonitorQty(new BigDecimal(manQty.getMonitorQty()) + assistdto.setMonitorQty(new BigDecimal(manQty.getMonitorQty()==null?0L:manQty.getMonitorQty()) .multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) .toString() ); //班长工时=当日考勤小时数*工时占比 assistdto.setMonitorHour( - monitorHour.multiply( - new BigDecimal(assistdto.getHourRatio().replace("%",""))).toString()); + monitorHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) + .toString()); //组长用人=当日人数*工时占比 - assistdto.setGroupleaderQty(new BigDecimal(manQty.getGroupleaderQty()) + assistdto.setGroupleaderQty(new BigDecimal(manQty.getGroupleaderQty()==null?0L:manQty.getGroupleaderQty()) .multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) .toString() ); //组长工时=当日考勤小时数*工时占比 assistdto.setGroupLeaderHour( - groupleadeHour.multiply( - new BigDecimal(assistdto.getHourRatio().replace("%",""))).toString()); + groupleadeHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) + .toString() + ); //物料员用人=当日人数*工时占比 - assistdto.setMaterialQty(new BigDecimal(manQty.getMaterialQty()) + assistdto.setMaterialQty(new BigDecimal(manQty.getMaterialQty()==null?0L:manQty.getMaterialQty()) .multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) .toString() ); //物料员工时=当日考勤小时数*工时占比 assistdto.setMaterialHour( - materialHour.multiply( - new BigDecimal(assistdto.getHourRatio().replace("%",""))).toString()); + materialHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) + .toString()); //药管员用人=当日人数*工时占比 - assistdto.setPillMgrQty(new BigDecimal(manQty.getPillMgrQty()) + assistdto.setPillMgrQty(new BigDecimal(manQty.getPillMgrQty()==null?0L:manQty.getPillMgrQty()) .multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) .toString() ); //药管员工时=当日考勤小时数*工时占比 assistdto.setPillMgrHour( - pillMgrHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))).toString()); + pillMgrHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) + .toString()); //配药员用人=当日人数*工时占比 - assistdto.setPillDisQty(new BigDecimal(manQty.getPillDisQty()) + assistdto.setPillDisQty(new BigDecimal(manQty.getPillDisQty()==null?0L:manQty.getPillDisQty()) .multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) .toString() ); - //配药员工时=当日考勤小时数/线体数 + //配药员工时=当日考勤小时数*工时占比 assistdto.setPillDisHour( - pillDisHour.multiply( - new BigDecimal(assistdto.getHourRatio().replace("%",""))).toString()); + pillDisHour.multiply(new BigDecimal(assistdto.getHourRatio().replace("%",""))) + .multiply(new BigDecimal("0.01")) + .toString()); } } } @@ -225,7 +237,7 @@ public class MesLineAssistantQtyServiceImpl implements IMesLineAssistantQtyServi .toString() ); } - + //最后一行 MesLineAssistantQtyVo assistdto0 = new MesLineAssistantQtyVo(); //assistdto0.setProductDate(dtos.get(0).getProductDate()); //assistdto0.setFactoryCode(dtos.get(0).getFactoryCode()); @@ -238,16 +250,16 @@ public class MesLineAssistantQtyServiceImpl implements IMesLineAssistantQtyServi monitorHour.add(groupleadeHour).add(materialHour).add(pillMgrHour).add(pillDisHour).toString() ); MesLineAssistantQty manQty = assistMaps.get(mesLineAssistant.getProductDateStr()); - assistdto0.setMonitorQty(manQty.getMonitorQty().toString()); - assistdto0.setMonitorHour(monitorHour.toString()); - assistdto0.setGroupleaderQty(manQty.getGroupleaderQty().toString()); - assistdto0.setGroupLeaderHour(groupleadeHour.toString()); - assistdto0.setMaterialQty(manQty.getMaterialQty().toString()); - assistdto0.setMaterialHour(materialHour.toString()); - assistdto0.setPillMgrQty(manQty.getPillMgrQty().toString()); - assistdto0.setPillMgrHour(pillMgrHour.toString()); - assistdto0.setPillDisQty(manQty.getPillDisQty().toString()); - assistdto0.setPillDisHour(pillDisHour.toString()); + assistdto0.setMonitorQty(manQty.getMonitorQty()==null?"0":manQty.getMonitorQty().toString()); + assistdto0.setMonitorHour(monitorHour==null?"0":monitorHour.toString()); + assistdto0.setGroupleaderQty(manQty.getGroupleaderQty()==null?"0":manQty.getGroupleaderQty().toString()); + assistdto0.setGroupLeaderHour(groupleadeHour==null?"0":groupleadeHour.toString()); + assistdto0.setMaterialQty(manQty.getMaterialQty()==null?"0":manQty.getMaterialQty().toString()); + assistdto0.setMaterialHour(materialHour==null?"0":materialHour.toString()); + assistdto0.setPillMgrQty(manQty.getPillMgrQty()==null?"0":manQty.getPillMgrQty().toString()); + assistdto0.setPillMgrHour(pillMgrHour==null?"0":pillMgrHour.toString()); + assistdto0.setPillDisQty(manQty.getPillDisQty()==null?"0":manQty.getPillDisQty().toString()); + assistdto0.setPillDisHour(pillDisHour==null?"0":pillDisHour.toString()); dtos.add(assistdto0); if(StringUtils.isNotBlank(mesLineAssistant.getLineCode())){ dtos = dtos.stream().filter(dto ->(dto.getLineCode().equals(mesLineAssistant.getLineCode()))) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index 707bd226a..6a52c0147 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -5,6 +5,7 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -864,4 +865,34 @@ public class QcStaticTableController extends BaseController { } } } + @Log(title = "白坯不良率报表--表头", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfDateTitle") + public List getMonthOfDateTitle(QcStaticTable qcStaticTable) { + return qcStaticTableService.getDaysOfMonth(qcStaticTable); + } + @Log(title = "白坯不良率报表--数表", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfData") + public List> getMonthOfData(QcStaticTable qcStaticTable) { + return qcStaticTableService.getMonthOfData(qcStaticTable); + } + @Log(title = "白坯不良率报表--图表", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfLine") + public List getMonthOfLine(QcStaticTable qcStaticTable) { + return qcStaticTableService.getMonthOfLine(qcStaticTable); + } + @Log(title = "白坯返工率报表--数表", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfDataRework") + public List> getMonthOfDataRework(QcStaticTable qcStaticTable) { + return qcStaticTableService.getMonthOfDataRework(qcStaticTable); + } + @Log(title = "白坯返工率报表--图表", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfLineRework") + public List getMonthOfLineRework(QcStaticTable qcStaticTable) { + return qcStaticTableService.getMonthOfLineRework(qcStaticTable); + } + @Log(title = "白坯缺陷排列报表--数表", businessType = BusinessType.QUERY) + @GetMapping("/getMonthOfDataDefect") + public List> getMonthOfDataDefect(QcStaticTable qcStaticTable) { + return qcStaticTableService.getMonthOfDataDefect(qcStaticTable); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java index 78086ded2..022c09c69 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java @@ -86,9 +86,26 @@ public class QcProCheck extends BaseEntity { private String passRate; private String chartType; - private String quality; private String okQuality; private String shiftId; + private String quality; + private int qualityNook; + + public String getQuality() { + return quality; + } + + public void setQuality(String quality) { + this.quality = quality; + } + + public int getQualityNook() { + return qualityNook; + } + + public void setQualityNook(int qualityNook) { + this.qualityNook = qualityNook; + } public String getShiftId() { return shiftId; @@ -106,14 +123,6 @@ public class QcProCheck extends BaseEntity { this.okQuality = okQuality; } - public String getQuality() { - return quality; - } - - public void setQuality(String quality) { - this.quality = quality; - } - public String getChartType() { return chartType; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index c35490f02..d8f534655 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -121,6 +121,24 @@ public class QcStaticTable extends BaseEntity { private String lineCode; private String lineName; private String checkTypeName; + private String sampleQty; + private String noOkQty; + + public String getSampleQty() { + return sampleQty; + } + + public void setSampleQty(String sampleQty) { + this.sampleQty = sampleQty; + } + + public String getNoOkQty() { + return noOkQty; + } + + public void setNoOkQty(String noOkQty) { + this.noOkQty = noOkQty; + } public String getCheckTypeName() { return checkTypeName; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index c7ecf8dee..26640e90c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -119,4 +119,20 @@ public interface QcStaticTableMapper { Map getDLDataDay(QcCPKInfo qcCPKInfo); List getXJCheckTableDetailList(QcStaticTable qcStaticTable); + + List getBPpMaterials(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getBPNoOkMap(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getBPSumNoOkMap(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getBPReworkMap(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getBPSumReworkMap(QcStaticTable qcStaticTable); + + List getBpDefects(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getBPDefectMap(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getSampMap(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index cadb129cb..9c375f1c5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -77,4 +77,13 @@ public interface IQcStaticTableService { List getProdLineList(); List getXJCheckTableDetailList(QcStaticTable qcStaticTable); + + List getDaysOfMonth(QcStaticTable qcStaticTable); + List> getMonthOfData(QcStaticTable qcStaticTable); + List getMonthOfLine(QcStaticTable qcStaticTable); + + List> getMonthOfDataRework(QcStaticTable qcStaticTable); + List getMonthOfLineRework(QcStaticTable qcStaticTable); + + List> getMonthOfDataDefect(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java index cc3d825ae..7b0f9b28f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java @@ -138,7 +138,7 @@ public class QcCheckTaskDetailServiceImpl implements IQcCheckTaskDetailService { return qcCheckTaskDetailMapper.deleteQcCheckTaskDetailByRecordId(recordId); } - /**质量检验任务提醒,一小时后微信二次发送**/ + /**质量检验任务提醒,2小时后微信再发送一次提醒未检验(成品检验除外)**/ @Override public AjaxResult resendWXTask() { @@ -154,7 +154,7 @@ public class QcCheckTaskDetailServiceImpl implements IQcCheckTaskDetailService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++质量检验任务提醒,一小时后微信二次发送开始++++++++++"); + logger.info("++++++++++++" + dateSource.get("poolName") + "++++质量检验任务二次提醒,2小时后微信二次发送开始++++++++++"); Runnable run = () -> resendWXFunc(dateSource.get("poolName")); executorService.execute(run); }); @@ -173,8 +173,8 @@ public class QcCheckTaskDetailServiceImpl implements IQcCheckTaskDetailService { //发企业微信--------------------开始 SysNoticeGroup noticeQo = new SysNoticeGroup(); //筛选成品检验 id 7 - List noCheckListCP = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCP")).collect(Collectors.toList()); - String CP = StringUtils.join(noCheckListCP.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); +// List noCheckListCP = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCP")).collect(Collectors.toList()); +// String CP = StringUtils.join(noCheckListCP.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); //批次成品检验 id 12 List noCheckListCPPC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCPPC")).collect(Collectors.toList()); String CPPC = StringUtils.join(noCheckListCPPC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); @@ -188,10 +188,10 @@ public class QcCheckTaskDetailServiceImpl implements IQcCheckTaskDetailService { List noCheckListSC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeSC")).collect(Collectors.toList()); String SC = StringUtils.join(noCheckListSC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); - if(noCheckListCP != null || noCheckListCP.size() > 0) { - noticeQo.setNoticeId(7L); - sendWeChartMessage(noticeQo,CP,noCheckListCP.size()+"个成品检验",noCheckListCP); - } +// if(noCheckListCP != null || noCheckListCP.size() > 0) { +// noticeQo.setNoticeId(7L); +// sendWeChartMessage(noticeQo,CP,noCheckListCP.size()+"个成品检验",noCheckListCP); +// } if(noCheckListCPPC != null || noCheckListCPPC.size() > 0){ noticeQo.setNoticeId(12L); sendWeChartMessage(noticeQo,CPPC,noCheckListCPPC.size()+"个批次成品检验",noCheckListCPPC); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 4d3819493..5aef17828 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -1,6 +1,7 @@ package com.op.quality.service.impl; import java.math.BigDecimal; +import java.math.BigInteger; import java.math.RoundingMode; import java.text.DateFormat; import java.text.ParseException; @@ -1393,6 +1394,268 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return qcStaticTableMapper.getXJCheckTableDetailList(qcStaticTable); } + @Override + public List getDaysOfMonth(QcStaticTable qcStaticTable) { + return getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1]) + ); + } + @Override + @DS("#header.poolName") + public List> getMonthOfData(QcStaticTable qcStaticTable) { + List> dtos = new ArrayList<>(); + //获取白坯种类 + List bpMaterials = qcStaticTableMapper.getBPpMaterials(qcStaticTable); + Map sampMaps = qcStaticTableMapper.getBPNoOkMap(qcStaticTable); + List days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1])); + //List itemNames = new ArrayList(Arrays.asList("抽检数","不良品数","不良率%")); + Map dto1,dto2,dto3 = null; + for(QcStaticTable bpMaterial:bpMaterials){ + dto1 = new HashMap<>(); + dto1.put("materialName",bpMaterial.getMaterialName()); + dto1.put("dataType","抽检数"); + for(int m=0;m(); + dto2.put("materialName",bpMaterial.getMaterialName()); + dto2.put("dataType","不良品数"); + for(int m=0;m(); + dto3.put("materialName",bpMaterial.getMaterialName()); + dto3.put("dataType","不良率%"); + for(int m=0;m getMonthOfLine(QcStaticTable qcStaticTable) { + List dtos = new ArrayList<>(); + Map sampMaps = qcStaticTableMapper.getBPSumNoOkMap(qcStaticTable); + List days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1])); + QcStaticTable dto = null; + for(int m=0;m> getMonthOfDataRework(QcStaticTable qcStaticTable) { + List> dtos = new ArrayList<>(); + //获取白坯种类 + List bpMaterials = qcStaticTableMapper.getBPpMaterials(qcStaticTable); + Map sampMaps = qcStaticTableMapper.getBPReworkMap(qcStaticTable); + List days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1])); + //List itemNames = new ArrayList(Arrays.asList("抽检数","不良品数","不良率%")); + Map dto1,dto2,dto3 = null; + for(QcStaticTable bpMaterial:bpMaterials){ + dto1 = new HashMap<>(); + dto1.put("materialName",bpMaterial.getMaterialName()); + dto1.put("dataType","抽检次数"); + for(int m=0;m(); + dto2.put("materialName",bpMaterial.getMaterialName()); + dto2.put("dataType","返工次数"); + for(int m=0;m(); + dto3.put("materialName",bpMaterial.getMaterialName()); + dto3.put("dataType","返工率%"); + for(int m=0;m getMonthOfLineRework(QcStaticTable qcStaticTable) { + List dtos = new ArrayList<>(); + Map sampMaps = qcStaticTableMapper.getBPSumReworkMap(qcStaticTable); + List days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1])); + QcStaticTable dto = null; + for(int m=0;m> getMonthOfDataDefect(QcStaticTable qcStaticTable) { + List> dtos = new ArrayList<>(); + //获取不良种类 + List bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable); + Map defectMaps = qcStaticTableMapper.getBPDefectMap(qcStaticTable); + List days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]), + Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1])); + Map dto1 = null; + for(String defectName:bpDefects){ + dto1 = new HashMap<>(); + dto1.put("dataType",defectName); + BigDecimal rowSum= BigDecimal.ZERO; + for(int m=0;m dto2 = this.getHJRow(dtos,days.size()); + dtos.add(dto2); + } + //抽样数行 + Map sampMaps = qcStaticTableMapper.getSampMap(qcStaticTable); + Map dto3 = this.getSampRow(days,sampMaps); + dtos.add(dto3); + return dtos; + } + protected Map getHJRow(List> dtos,int days){ + Map dto2 = new HashMap<>(); + dto2.put("dataType","合计"); + for(int day=1;day<=days;day++){ + int daym =day; + dto2.put("monthNum"+day,dtos.stream() + .map(map -> map.get("monthNum"+daym)) + .filter(numStr -> numStr != null) + .mapToDouble(numStr -> { + try { + return Double.parseDouble(numStr); + } catch (NumberFormatException e) { + System.err.println("无法将 " + numStr + " 转换为数字,跳过该元素。"); + return 0; + } + }) + .sum()+""); + } + dto2.put("rowSum",dtos.stream() + .map(map -> map.get("rowSum")) + .filter(numStr -> numStr != null) + .mapToDouble(numStr -> { + try { + return Double.parseDouble(numStr); + } catch (NumberFormatException e) { + System.err.println("无法将 " + numStr + " 转换为数字,跳过该元素。"); + return 0; + } + }) + .sum()+""); + return dto2; + } + protected Map getSampRow(List days,Map sampMaps){ + Map dto3 = new HashMap<>(); + dto3.put("dataType","抽样数"); + BigDecimal rowSum= BigDecimal.ZERO; + for(int m=0;m getMonthByMonth(String startM,String endM){ YearMonth start = YearMonth.of(Integer.parseInt(startM.split("-")[0]), Integer.parseInt(startM.split("-")[1])); @@ -1425,6 +1688,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return dateList; } + public static void main(String args[]){ String ymd = "1、0.4016"; System.out.println(ymd.substring(2)); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml index 69bf93505..f8692804e 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml @@ -208,8 +208,9 @@ confirm_time as confirmTime from qc_check_task where del_flag = '0' - and check_status = '0' - and datediff( hour, create_time,CONVERT(varchar(10),GETDATE())) > 1 + and check_status = '0' and check_type != 'checkTypeCC' + and datediff( hour, create_time,CONVERT(varchar(10),GETDATE())) >= 2 + and create_time > DATEADD(DAY, -1, CAST(GETDATE() AS DATE)) and confirm_time is null diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index 168564995..651c6065f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -131,6 +131,9 @@ isqua, file_id, + quality, + quality_nook, + #{rfid}, @@ -160,6 +163,8 @@ #{updateTime}, #{isqua}, #{fileId}, + #{quality}, + #{qualityNook}, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index d67118ca1..fbac3aaba 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -1035,5 +1035,161 @@ and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120) order by qct.order_no,qct.income_batch_no,pow.product_date desc + + + + + + + + +