|
@@ -2,26 +2,19 @@ package com.management.platform.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.management.platform.entity.PlanProcedureTotal;
|
|
|
-import com.management.platform.entity.ProdProcedure;
|
|
|
-import com.management.platform.entity.User;
|
|
|
-import com.management.platform.mapper.PlanProcedureTotalMapper;
|
|
|
-import com.management.platform.mapper.ProdProcedureMapper;
|
|
|
-import com.management.platform.mapper.ProductMapper;
|
|
|
-import com.management.platform.mapper.UserMapper;
|
|
|
+import com.management.platform.entity.*;
|
|
|
+import com.management.platform.mapper.*;
|
|
|
import com.management.platform.service.PlanProcedureTotalService;
|
|
|
import com.management.platform.service.ProdProcedureService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.management.platform.service.ReportService;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -43,6 +36,12 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
|
|
|
private ProductMapper productMapper;
|
|
|
@Resource
|
|
|
private PlanProcedureTotalMapper planProcedureTotalMapper;
|
|
|
+ @Resource
|
|
|
+ private ProdProcedureCopyMapper prodProcedureCopyMapper;
|
|
|
+ @Resource
|
|
|
+ private PlanProcedureTotalService planProcedureTotalService;
|
|
|
+ @Resource
|
|
|
+ private ReportService reportService;
|
|
|
|
|
|
@Override
|
|
|
public HttpRespMsg changeProdProcedure(HttpServletRequest request, List<ProdProcedure> prodProcedureList, Integer productId, String productName, String version) {
|
|
@@ -69,6 +68,16 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
|
|
|
.eq(StringUtils.isNotBlank(version),ProdProcedure::getVersionNumber,version)
|
|
|
.select(ProdProcedure::getId)
|
|
|
);
|
|
|
+ //当现有的数据不是新增工序而且没指定新的版本号时 要阻止
|
|
|
+ List<Integer> oldIdList = oldList.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> nowIdList = prodProcedureList.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
|
|
|
+ if(!nowIdList.containsAll(oldIdList)){
|
|
|
+ List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalMapper.selectList(new QueryWrapper<PlanProcedureTotal>().in("prod_procedure_id", oldIdList));
|
|
|
+ if(planProcedureTotals.size()>0){
|
|
|
+ msg.setError("当前版本工序存在已被使用的,同版本号只支持修改和新增,不支持删除操作,请重新定义新的工序版本号");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if(oldList!=null&&oldList.size()>0){
|
|
|
|
|
@@ -198,4 +207,43 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
|
|
|
httpRespMsg.data=map;
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg updateData() {
|
|
|
+ List<ProdProcedure> prodProcedures = prodProcedureMapper.selectList(new LambdaQueryWrapper<ProdProcedure>().eq(ProdProcedure::getCompanyId, 7));
|
|
|
+ List<ProdProcedureCopy> prodProcedureCopyList = prodProcedureCopyMapper.selectList(new LambdaQueryWrapper<ProdProcedureCopy>().eq(ProdProcedureCopy::getCompanyId, 7));
|
|
|
+ List<Integer> ids = prodProcedures.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
|
|
|
+ //需要处理的数据
|
|
|
+ List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().notIn(PlanProcedureTotal::getProdProcedureId, ids));
|
|
|
+ List<Report> reportList = reportService.list(new LambdaQueryWrapper<Report>().notIn(Report::getProdProcedureId, ids));
|
|
|
+ for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
|
|
|
+ Optional<ProdProcedureCopy> first = prodProcedureCopyList.stream().filter(p -> p.getId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ ProdProcedureCopy prodProcedureCopy = first.get();
|
|
|
+ Optional<ProdProcedure> procedure = prodProcedures.stream().filter(p -> p.getProductId().equals(prodProcedureCopy.getProductId()) && p.getVersionNumber().equals(prodProcedureCopy.getVersionNumber()) && p.getName().equals(prodProcedureCopy.getName())).findFirst();
|
|
|
+ if(procedure.isPresent()){
|
|
|
+ planProcedureTotal.setProdProcedureId(procedure.get().getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(planProcedureTotals.size()>0){
|
|
|
+ planProcedureTotalService.updateBatchById(planProcedureTotals);
|
|
|
+ }
|
|
|
+ for (Report report : reportList) {
|
|
|
+ Optional<ProdProcedureCopy> first = prodProcedureCopyList.stream().filter(p -> p.getId().equals(report.getProdProcedureId())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ ProdProcedureCopy prodProcedureCopy = first.get();
|
|
|
+ Optional<ProdProcedure> procedure = prodProcedures.stream().filter(p -> p.getProductId().equals(prodProcedureCopy.getProductId()) && p.getVersionNumber().equals(prodProcedureCopy.getVersionNumber()) && p.getName().equals(prodProcedureCopy.getName())).findFirst();
|
|
|
+ if(procedure.isPresent()){
|
|
|
+ report.setProdProcedureId(procedure.get().getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(reportList.size()>0){
|
|
|
+ reportService.updateBatchById(reportList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return new HttpRespMsg();
|
|
|
+ }
|
|
|
}
|