erp计划直接入库

liweidong
qinyulong 2 weeks ago
parent 7e3b71c430
commit 1867fc3ddb
  1. 136
      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<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

Loading…
Cancel
Save