From 1867fc3ddba602779734c8c878fa7f10ca07d2d3 Mon Sep 17 00:00:00 2001 From: qinyulong Date: Sat, 28 Mar 2026 18:29:27 +0800 Subject: [PATCH] =?UTF-8?q?erp=E8=AE=A1=E5=88=92=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ErpMesRbWoServiceImpl.java | 136 ++++++++++++------ 1 file changed, 93 insertions(+), 43 deletions(-) diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java index fa1010f4..bd18e8f8 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java @@ -67,6 +67,81 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { return mesRbWoMapper.getYieldPlanErpList(entity.getWoreqdat()); } + // @Override +// @Transactional(rollbackFor = Exception.class) +// public void synMesRbWo() { +// //用字典的code查更新日期 +// String selectTime = apsOrderClient.getSelectTime("SYCN_MESRBWO_TIME"); +// //从ERP视图查询最大日期 +// String newlevdateMax = mesRbWoMapper.getNewlevdateMax(selectTime); +// apsOrderClient.upByDateMax(newlevdateMax, "SYCN_MESRBWO_TIME"); +// List mesRbWoList = mesRbWoMapper.getYieldPlanErpList(newlevdateMax); +// Gson gson = new Gson(); +// String jsonString = gson.toJson(mesRbWoList); +// log.info("qyl:同步生产计划 data: {}", jsonString); +// /** +// * 有多个实体类 +// * b1. 根据零件号从`DS_PART`表中查询零件信息 +// * +// * ```sql +// * SELECT a.product_type, a.part_name, a.area, a.craft_way, a.config_no +// * INTO v_product_type, v_part_name, v_po_area, v_craft_way, v_config_no +// * FROM ds_part a WHERE a.part_code = v_prtno; +// */ +// List dsPartList = apsOrderClient.getPartList(); +// Map partMap = dsPartList.stream().collect(Collectors.toMap(DsPartEntity::getPartCode, v -> v)); +// List yieldPlanList=new ArrayList<>(); +// //若零件不为空, 验证零件是否存在二级零件工艺 +// List dsCraftList= apsOrderClient.getDsCraftList(); +// List partIdList = dsCraftList.stream().map(x -> x.getPartId()).toList(); +// final Long[] partId = {0L}; +// List rbwoerptomesList=new ArrayList<>(); +// mesRbWoList.forEach(mesRbWo -> { +// YieldPlan yieldPlan=new YieldPlan(); +// //b1. 根据零件号从`DS_PART`表中查询零件信息 +// DsPartEntity dsPart = partMap.get(mesRbWo.getPrtno()); +// yieldPlan.setPlanType(12001L);//赋值默认值12001 +// if(mesRbWo.getProcesslinedesc().contains("封接") +// ||"LX08-05-028,LX08-05-030,LX08-05-031".contains(mesRbWo.getProcessline())){ +// yieldPlan.setPlanType(12002L); +// yieldPlan.setPlate("烧结电镀"); +// } +// //b3. 状态字段赋值,新mes中对应字段(status) +// yieldPlan.setStatus(YieldPlanEnum.STATUS_DISPATCHED.getCode()); +// yieldPlan.setRoamNo(""); +// //1. 若零件为空 +// if (null == dsPart) { +// yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); +// yieldPlan.setRoamNo("无零件信息!!"); +// } else { +// yieldPlan.setProductType(dsPart.getProductType()); +// yieldPlan.setPartName(dsPart.getPartName()); +// yieldPlan.setYpArea(dsPart.getArea()); +// yieldPlan.setPrimaryCraft(dsPart.getCraftWay()); +// //2. 若零件不为空, 验证零件是否存在二级零件工艺 +// if (!partIdList.contains(dsPart.getId())) { +// yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); +// yieldPlan.setRoamNo("无二级工艺信息!!"); +// } +// } +// yieldPlan.setYpCode(mesRbWo.getWono()); +// yieldPlan.setPartCode(mesRbWo.getPrtno()); +// yieldPlan.setProductIdent(mesRbWo.getWoreqdat()); +// yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); +// yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); +// yieldPlan.setDemandDate(mesRbWo.getWopordat()); +// yieldPlanList.add(yieldPlan); +// //插入记录表 +// Rrbwoerptomes rbwoerptomes=new Rrbwoerptomes(); +// rbwoerptomes.setWoNo(mesRbWo.getWono()); +// rbwoerptomes.setProcessLineDesc(mesRbWo.getProcesslinedesc()); +// rbwoerptomes.setReadTime(new Date()); +// rbwoerptomes.setReadContent(mesRbWo.getProcessline()); +// rbwoerptomesList.add(rbwoerptomes); +// }); +// apsOrderClient.saveList(yieldPlanList); +//// rbwoerptomesService.saveOrUpdateBatch(rbwoerptomesList); +// } @Override @Transactional(rollbackFor = Exception.class) public void synMesRbWo() { @@ -79,68 +154,43 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { Gson gson = new Gson(); String jsonString = gson.toJson(mesRbWoList); log.info("qyl:同步生产计划 data: {}", jsonString); - /** - * 有多个实体类 - * b1. 根据零件号从`DS_PART`表中查询零件信息 - * - * ```sql - * SELECT a.product_type, a.part_name, a.area, a.craft_way, a.config_no - * INTO v_product_type, v_part_name, v_po_area, v_craft_way, v_config_no - * FROM ds_part a WHERE a.part_code = v_prtno; - */ - List dsPartList = apsOrderClient.getPartList(); - Map partMap = dsPartList.stream().collect(Collectors.toMap(DsPartEntity::getPartCode, v -> v)); List yieldPlanList=new ArrayList<>(); - //若零件不为空, 验证零件是否存在二级零件工艺 - List dsCraftList= apsOrderClient.getDsCraftList(); - List partIdList = dsCraftList.stream().map(x -> x.getPartId()).toList(); - final Long[] partId = {0L}; - List rbwoerptomesList=new ArrayList<>(); mesRbWoList.forEach(mesRbWo -> { YieldPlan yieldPlan=new YieldPlan(); - //b1. 根据零件号从`DS_PART`表中查询零件信息 - DsPartEntity dsPart = partMap.get(mesRbWo.getPrtno()); + mesRbWo.getPlnsign(); + mesRbWo.getWorelstat(); + mesRbWo.getWoexcstat(); + mesRbWo.getPrtmeterial(); + mesRbWo.getRigidity(); + mesRbWo.getProcesslinedesc(); + mesRbWo.getPlndept(); + yieldPlan.setProductIdent(mesRbWo.getPrtlotno()); + yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWoporqty())); + yieldPlan.setPlate(mesRbWo.getKdofplat()); + yieldPlan.setPartName(mesRbWo.getPrtdesc()); + yieldPlan.setMemo(mesRbWo.getRemark()); + yieldPlan.setDominantDept(mesRbWo.getPrtmdept()); + yieldPlan.setPrimaryCraft(mesRbWo.getProcessline()); + yieldPlan.setProductLine(mesRbWo.getProdline()); yieldPlan.setPlanType(12001L);//赋值默认值12001 if(mesRbWo.getProcesslinedesc().contains("封接") ||"LX08-05-028,LX08-05-030,LX08-05-031".contains(mesRbWo.getProcessline())){ yieldPlan.setPlanType(12002L); yieldPlan.setPlate("烧结电镀"); } + yieldPlan.setProductType(mesRbWo.getMtltmrk()); //b3. 状态字段赋值,新mes中对应字段(status) yieldPlan.setStatus(YieldPlanEnum.STATUS_DISPATCHED.getCode()); yieldPlan.setRoamNo(""); - //1. 若零件为空 - if (null == dsPart) { - yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); - yieldPlan.setRoamNo("无零件信息!!"); - } else { - yieldPlan.setProductType(dsPart.getProductType()); - yieldPlan.setPartName(dsPart.getPartName()); - yieldPlan.setYpArea(dsPart.getArea()); - yieldPlan.setPrimaryCraft(dsPart.getCraftWay()); - //2. 若零件不为空, 验证零件是否存在二级零件工艺 - if (!partIdList.contains(dsPart.getId())) { - yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); - yieldPlan.setRoamNo("无二级工艺信息!!"); - } - } yieldPlan.setYpCode(mesRbWo.getWono()); yieldPlan.setPartCode(mesRbWo.getPrtno()); yieldPlan.setProductIdent(mesRbWo.getWoreqdat()); - yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); - yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); + yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWoporqty())); yieldPlan.setDemandDate(mesRbWo.getWopordat()); + yieldPlanList.add(yieldPlan); - //插入记录表 - Rrbwoerptomes rbwoerptomes=new Rrbwoerptomes(); - rbwoerptomes.setWoNo(mesRbWo.getWono()); - rbwoerptomes.setProcessLineDesc(mesRbWo.getProcesslinedesc()); - rbwoerptomes.setReadTime(new Date()); - rbwoerptomes.setReadContent(mesRbWo.getProcessline()); - rbwoerptomesList.add(rbwoerptomes); }); apsOrderClient.saveList(yieldPlanList); -// rbwoerptomesService.saveOrUpdateBatch(rbwoerptomesList); } @Override