|
|
|
|
@ -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<MesRbWo> 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<DsPartEntity> dsPartList = apsOrderClient.getPartList();
|
|
|
|
|
// Map<String, DsPartEntity> partMap = dsPartList.stream().collect(Collectors.toMap(DsPartEntity::getPartCode, v -> v));
|
|
|
|
|
// List<YieldPlan> yieldPlanList=new ArrayList<>();
|
|
|
|
|
// //若零件不为空, 验证零件是否存在二级零件工艺
|
|
|
|
|
// List<DsCraftEntity> dsCraftList= apsOrderClient.getDsCraftList();
|
|
|
|
|
// List<Long> partIdList = dsCraftList.stream().map(x -> x.getPartId()).toList();
|
|
|
|
|
// final Long[] partId = {0L};
|
|
|
|
|
// List<Rrbwoerptomes> 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<DsPartEntity> dsPartList = apsOrderClient.getPartList(); |
|
|
|
|
Map<String, DsPartEntity> partMap = dsPartList.stream().collect(Collectors.toMap(DsPartEntity::getPartCode, v -> v)); |
|
|
|
|
List<YieldPlan> yieldPlanList=new ArrayList<>(); |
|
|
|
|
//若零件不为空, 验证零件是否存在二级零件工艺
|
|
|
|
|
List<DsCraftEntity> dsCraftList= apsOrderClient.getDsCraftList(); |
|
|
|
|
List<Long> partIdList = dsCraftList.stream().map(x -> x.getPartId()).toList(); |
|
|
|
|
final Long[] partId = {0L}; |
|
|
|
|
List<Rrbwoerptomes> 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 |
|
|
|
|
|