|
@@ -583,8 +583,11 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
|
|
|
//=================更新技术要求==========================
|
|
|
//查询相关的技术要求
|
|
|
- List<ApsProductionTechnicalRequirementDo> apsProductionTechnicalRequirementDoList = apsProductionTechnicalRequirementService.list(new QueryWrapper<ApsProductionTechnicalRequirementDo>().lambda().like(ApsProductionTechnicalRequirementDo::getOrderdetailids, nowId).orderByDesc(ApsProductionTechnicalRequirementDo::getModifydate));
|
|
|
- if (apsProductionTechnicalRequirementDoList.size() > 0) {
|
|
|
+ List<ApsProductionTechnicalRequirementDo> apsProductionTechnicalRequirementDoList = apsProductionTechnicalRequirementService.list(new QueryWrapper<ApsProductionTechnicalRequirementDo>().lambda()
|
|
|
+ .eq(ApsProductionTechnicalRequirementDo::getOrderid, apsProductDetailDo.getMainid())
|
|
|
+ .like(ApsProductionTechnicalRequirementDo::getOrderdetailids, nowId)
|
|
|
+ .orderByDesc(ApsProductionTechnicalRequirementDo::getModifydate));
|
|
|
+ if (!apsProductionTechnicalRequirementDoList.isEmpty()) {
|
|
|
//只会存在一个
|
|
|
ApsProductionTechnicalRequirementDo apsProductionTechnicalRequirementDo = apsProductionTechnicalRequirementDoList.get(0);
|
|
|
//更新原来的产品明细为新的产品明细
|
|
@@ -600,7 +603,7 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
int index = orderDetailIdList.indexOf(nowId);
|
|
|
//替换成新的产品明细
|
|
|
orderDetailIdList.set(index, apsProductDetailDo.getId());
|
|
|
- orderDetailNameList.set(index, apsProductDetailDo.getInputmaterialdescription());
|
|
|
+ orderDetailNameList.set(index, apsProductDetailDo.getInputmaterialdescription() + " " + apsProductDetailDo.getTotalordercount() + "吨");
|
|
|
|
|
|
updateTechnicalRequirement.setOrderdetailids(String.join(",", orderDetailIdList));
|
|
|
updateTechnicalRequirement.setOrderdetailnames(String.join(",\r\n", orderDetailNameList));
|
|
@@ -622,6 +625,88 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R updateProductDetailAllCount(UpdateProductDetailsAndBlankOutputReq req) {
|
|
|
+ //获取目前订单所有的产品明细
|
|
|
+ List<ApsProductDetailDo> apsProductDetailDoList = req.getApsProductDetailDoList();
|
|
|
+ //获取当前修改的产品明细的ID
|
|
|
+ String nowId = req.getUpdateId();
|
|
|
+
|
|
|
+ //区分 目前修改的产品明细和 暂未修改的产品明细
|
|
|
+ List<ApsProductDetailDo> nowUpdateList = apsProductDetailDoList.stream().filter(item -> item.getId().equals(nowId)).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (!nowUpdateList.isEmpty()) {
|
|
|
+ ApsProductDetailDo apsProductDetailDo = nowUpdateList.get(0);
|
|
|
+ if (apsProductDetailDo.getTotalordercount() != null) {
|
|
|
+ ApsProductDetailDo oldProductDetailDo = apsProductDetailService.getById(nowId);
|
|
|
+ if (oldProductDetailDo != null) {
|
|
|
+ //修改了产品明细的总重量
|
|
|
+ if (!oldProductDetailDo.getTotalordercount().equals(apsProductDetailDo.getTotalordercount())) {
|
|
|
+ //更新技术要求
|
|
|
+ List<ApsProductionTechnicalRequirementDo> apsProductionTechnicalRequirementDos = apsProductionTechnicalRequirementService.list(new LambdaQueryWrapper<ApsProductionTechnicalRequirementDo>()
|
|
|
+ .eq(ApsProductionTechnicalRequirementDo::getOrderid, apsProductDetailDo.getMainid())
|
|
|
+ .like(ApsProductionTechnicalRequirementDo::getOrderdetailids, apsProductDetailDo.getId())
|
|
|
+ .orderByDesc(ApsProductionTechnicalRequirementDo::getModifydate));
|
|
|
+ if (!apsProductionTechnicalRequirementDos.isEmpty()) {
|
|
|
+ //需要更新的技术要求
|
|
|
+ ApsProductionTechnicalRequirementDo apsProductionTechnicalRequirementDo = apsProductionTechnicalRequirementDos.get(0);
|
|
|
+ ApsProductionTechnicalRequirementDo updateTechnicalRequirement = new ApsProductionTechnicalRequirementDo();
|
|
|
+ updateTechnicalRequirement.setId(apsProductionTechnicalRequirementDo.getId());
|
|
|
+ List<String> detailIdList = Arrays.asList(apsProductionTechnicalRequirementDo.getOrderdetailids().split(","));
|
|
|
+ List<String> detailNameList = new LinkedList<>(Arrays.asList(apsProductionTechnicalRequirementDo.getOrderdetailnames().split(",\r\n")));
|
|
|
+ int index = detailIdList.indexOf(apsProductDetailDo.getId());
|
|
|
+ detailNameList.set(index, apsProductDetailDo.getInputmaterialdescription() + " " + apsProductDetailDo.getTotalordercount() + "吨");
|
|
|
+ updateTechnicalRequirement.setOrderdetailnames(String.join(",\r\n", detailNameList));
|
|
|
+ //更新技术要求
|
|
|
+ apsProductionTechnicalRequirementService.updateById(updateTechnicalRequirement);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //更新输出成品
|
|
|
+ List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = apsProcessOutputProductService.list(new LambdaQueryWrapper<ApsProcessOutputProductDo>()
|
|
|
+ .eq(ApsProcessOutputProductDo::getProductid, apsProductDetailDo.getId()));
|
|
|
+ if (!apsProcessOutputProductDoList.isEmpty()) {
|
|
|
+ List<ApsProcessOutputProductDo> needUpdateList = new LinkedList<>();
|
|
|
+ for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
|
|
|
+ ApsProcessOutputProductDo needUpdate = new ApsProcessOutputProductDo();
|
|
|
+ needUpdate.setId(apsProcessOutputProductDo.getId());
|
|
|
+ //修改了 产品明细的总数量
|
|
|
+ if (!oldProductDetailDo.getTotalordercount().equals(apsProductDetailDo.getTotalordercount())) {
|
|
|
+ if (apsProductDetailDo.getTotalordercount() != null) {
|
|
|
+ needUpdate.setOrdertatal(apsProductDetailDo.getTotalordercount());
|
|
|
+ } else {
|
|
|
+ needUpdate.setOrdertatal(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //修改了 产品明细的 卷重要求、卷径要求、套筒要求、卷数要求
|
|
|
+ if (!Objects.equals(oldProductDetailDo.getRollweightrequirement(), apsProductDetailDo.getRollweightrequirement())) {
|
|
|
+ needUpdate.setRollweightrequirement(apsProductDetailDo.getRollweightrequirement());
|
|
|
+ }
|
|
|
+ if (!Objects.equals(oldProductDetailDo.getRolldiameterrequirement(), apsProductDetailDo.getRolldiameterrequirement())) {
|
|
|
+ needUpdate.setRolldiameterrequirement(apsProductDetailDo.getRolldiameterrequirement());
|
|
|
+ }
|
|
|
+ if (!Objects.equals(oldProductDetailDo.getSleeverequirement(), apsProductDetailDo.getSleeverequirement())) {
|
|
|
+ needUpdate.setSleeverequirement(apsProductDetailDo.getSleeverequirement());
|
|
|
+ }
|
|
|
+ if (!Objects.equals(oldProductDetailDo.getRollnumberrequirement(), apsProductDetailDo.getRollnumberrequirement())) {
|
|
|
+ needUpdate.setRollnumberrequirement(apsProductDetailDo.getRollnumberrequirement());
|
|
|
+ }
|
|
|
+ needUpdateList.add(needUpdate);
|
|
|
+ }
|
|
|
+ apsProcessOutputProductService.updateBatchById(needUpdateList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新或新增 产品明细
|
|
|
+ if (!apsProductDetailDoList.isEmpty()) {
|
|
|
+ apsProductDetailService.updateOrSaveProductDetails(apsProductDetailDoList);
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public R getOldTechnicalRequirement(GetOldTechnicalRequirementReq req) {
|
|
|
String technicalRequirementId = req.getTechnicalRequirementId();
|