|
|
|
@ -198,23 +198,47 @@ public class ChanjetSchedule {
|
|
|
|
|
|
|
|
|
|
List<TplusLastestBomDO> insertList = BeanUtils.toBean(bomMaterialVOS, TplusLastestBomDO.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TplusLastestBomDO> newList = new ArrayList<>();
|
|
|
|
|
List<TplusLastestBomDO> oldList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
List<ProcedureDO> procedureDOS = procedureMapper.selectList(new LambdaUpdateWrapper<ProcedureDO>(){{
|
|
|
|
|
eq(ProcedureDO::getStatus,1);
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
insertList.forEach(xo -> {
|
|
|
|
|
//
|
|
|
|
|
TplusLastestBomDO existTplusLastestBomDO = tplusLastestBomMapper.selectOne(new LambdaUpdateWrapper<TplusLastestBomDO>(){{
|
|
|
|
|
eq(TplusLastestBomDO::getTopCode,xo.getTopCode())
|
|
|
|
|
.eq(TplusLastestBomDO::getProjectSubCode,xo.getProjectSubCode()).last("limit 1");
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
if(procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).count()>0){
|
|
|
|
|
ProcedureDO procedureDO = procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).collect(Collectors.toList()).get(0);
|
|
|
|
|
|
|
|
|
|
ProcedureDO procedureDO = procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).collect(Collectors.toList()).get(0);
|
|
|
|
|
if(procedureDO!=null){
|
|
|
|
|
xo.setProcedureId(procedureDO.getId()).setProcedureCode(procedureDO.getCode()).setProcedureName(procedureDO.getName());
|
|
|
|
|
|
|
|
|
|
if(existTplusLastestBomDO!=null) {
|
|
|
|
|
existTplusLastestBomDO.setProcedureId(procedureDO.getId()).setProcedureCode(procedureDO.getCode()).setProcedureName(procedureDO.getName());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
xo.setId(null).setTopCode(so.getProjectSubCode()).setCreator("2").setUpdater("2");
|
|
|
|
|
|
|
|
|
|
xo.setTopCode(so.getProjectSubCode()).setCreator("2").setUpdater("2");
|
|
|
|
|
if(existTplusLastestBomDO==null) {
|
|
|
|
|
xo.setId(null);
|
|
|
|
|
newList.add(xo);
|
|
|
|
|
}else{
|
|
|
|
|
oldList.add(existTplusLastestBomDO);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(insertList)) {
|
|
|
|
|
tplusLastestBomMapper.delete(TplusLastestBomDO::getTopCode, so.getProjectSubCode());
|
|
|
|
|
tplusLastestBomMapper.insertBatch(insertList);
|
|
|
|
|
if(CollUtil.isNotEmpty(newList)) {
|
|
|
|
|
// tplusLastestBomMapper.delete(TplusLastestBomDO::getTopCode, so.getProjectSubCode());
|
|
|
|
|
tplusLastestBomMapper.insertBatch(newList);
|
|
|
|
|
}
|
|
|
|
|
if(CollUtil.isNotEmpty(oldList)) {
|
|
|
|
|
tplusLastestBomMapper.updateBatch(oldList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
codes.add(so.getProjectSubCode());
|
|
|
|
@ -236,13 +260,13 @@ public class ChanjetSchedule {
|
|
|
|
|
// 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口
|
|
|
|
|
if(getSystemParameters()) {
|
|
|
|
|
CommonResult<List<QueryBomResVO>> result =
|
|
|
|
|
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode)), QueryBomResVO.class);
|
|
|
|
|
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode,false)), QueryBomResVO.class);
|
|
|
|
|
if (!result.isSuccess()) {
|
|
|
|
|
throw exception(CALL_API_ERROR);
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(result.getData())) {
|
|
|
|
|
QueryBomResVO topLayer = result.getData().get(0);
|
|
|
|
|
|
|
|
|
|
QueryBomResVO topLayer = result.getData().stream().filter(ko->!ko.isDisabled()).collect(Collectors.toList()).get(0);
|
|
|
|
|
// QueryBomResVO topLayer = result.getData().get(0);
|
|
|
|
|
// 判断物料编码+物料名称+规格+颜色是否存在
|
|
|
|
|
for (Integer idx = 0; idx < topLayer.getDynamicPropertyValues().size(); idx++) {
|
|
|
|
|
if (topLayer.getDynamicPropertyKeys().get(idx).equals("freeItem0".toLowerCase())
|
|
|
|
@ -347,7 +371,7 @@ public class ChanjetSchedule {
|
|
|
|
|
.setStockQuantity(new BigDecimal(stockData.getAvailableQuantity()))
|
|
|
|
|
.setUnit(stockData.getUnitName())
|
|
|
|
|
.setProcedureName(dto.getProcess()==null?null:dto.getProcess().getName())
|
|
|
|
|
.setProcedureName(dto.getProcess()==null?null:dto.getProcess().getCode());
|
|
|
|
|
.setProcedureCode(dto.getProcess()==null?null:dto.getProcess().getCode());
|
|
|
|
|
|
|
|
|
|
resultData.add(bomMaterialVO);
|
|
|
|
|
|
|
|
|
|