|
@@ -8,10 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.management.platform.entity.*;
|
|
|
import com.management.platform.entity.vo.SysRichFunction;
|
|
|
import com.management.platform.mapper.*;
|
|
|
-import com.management.platform.service.PlanDeptService;
|
|
|
-import com.management.platform.service.PlanService;
|
|
|
+import com.management.platform.service.*;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.management.platform.service.WxCorpInfoService;
|
|
|
import com.management.platform.util.ExcelUtil;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
import com.management.platform.util.MessageUtils;
|
|
@@ -79,6 +77,10 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
private PlanMaterialMapper planMaterialMapper;
|
|
|
@Resource
|
|
|
private TaskTypeMapper taskTypeMapper;
|
|
|
+ @Resource
|
|
|
+ private ProdProcedureTeamService prodProcedureTeamService;
|
|
|
+ @Resource
|
|
|
+ private PlanProcedureTotalService planProcedureTotalService;
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
|
private String path;
|
|
@@ -108,8 +110,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
- queryWrapper.gt("steel_stamp_number_start",steelStampNumber);
|
|
|
- queryWrapper.lt("steel_stamp_number_end",steelStampNumber);
|
|
|
+ queryWrapper.apply("'"+steelStampNumber+"'"+" between steel_stamp_number_start AND steel_stamp_number_end");
|
|
|
}
|
|
|
IPage<Plan> planIPage = planMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
|
|
|
Map map=new HashMap();
|
|
@@ -129,10 +130,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
plan.setStationName(department.getDepartmentName());
|
|
|
}
|
|
|
if(plan.getProductId()!=null){
|
|
|
- Product product = productMapper.selectById(plan.getProductId());
|
|
|
- plan.setProductName(product.getName());
|
|
|
+ Product product = productMapper.selectById(plan.getProductId());
|
|
|
+ plan.setProductName(product.getName());
|
|
|
}
|
|
|
+ List<ProdProcedure> procedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("company_id", companyId).eq("product_id",plan.getProductId()).orderByDesc("id"));
|
|
|
+ List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
|
|
|
+ List<ProdProcedure> list;
|
|
|
if(plan.getId()==null){
|
|
|
+ list = procedureList.stream().filter(pl -> pl.getVersionNumber().equals(procedureList.get(0).getVersionNumber())).collect(Collectors.toList());
|
|
|
if(plan.getProductSchedulingNum()!=null){
|
|
|
if(count(new QueryWrapper<Plan>().eq("product_scheduling_num",plan.getProductSchedulingNum()))>0){
|
|
|
msg.setError("当前排产工单号已存在");
|
|
@@ -152,6 +157,10 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}else {
|
|
|
plan.setPlanType(1);
|
|
|
}
|
|
|
+ if(procedureList!=null&&procedureList.size()>0){
|
|
|
+ String versionNumber = procedureList.get(0).getVersionNumber();
|
|
|
+ plan.setVersionNumber(versionNumber);
|
|
|
+ }
|
|
|
if(planMapper.insert(plan)<0){
|
|
|
msg.setError("验证失败");
|
|
|
return msg;
|
|
@@ -166,7 +175,23 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
msg.setError("验证失败");
|
|
|
return msg;
|
|
|
}
|
|
|
+ list = procedureList.stream().filter(pl -> pl.getVersionNumber().equals(plan.getVersionNumber())).collect(Collectors.toList());
|
|
|
+ planProcedureTotalService.remove(new QueryWrapper<PlanProcedureTotal>().eq("plan_id",plan.getId()));
|
|
|
}
|
|
|
+ list=list.stream().sorted(Comparator.comparing(ProdProcedure::getId)).collect(Collectors.toList());
|
|
|
+ list.forEach(ps->{
|
|
|
+ PlanProcedureTotal p=new PlanProcedureTotal();
|
|
|
+ p.setPlanId(plan.getId());
|
|
|
+ p.setProdProcedureId(ps.getId());
|
|
|
+ BigDecimal totalWages=new BigDecimal(String.valueOf(ps.getUnitPrice()));
|
|
|
+ totalWages=totalWages.multiply(new BigDecimal(plan.getNum()));
|
|
|
+ p.setTotalWages(totalWages.doubleValue());
|
|
|
+ BigDecimal totalWorkingHours=new BigDecimal(String.valueOf(ps.getWorkingTime()));
|
|
|
+ totalWorkingHours=totalWorkingHours.multiply(new BigDecimal(plan.getNum()));
|
|
|
+ p.setTotalWorkingHours(totalWorkingHours.doubleValue());
|
|
|
+ planProcedureTotals.add(p);
|
|
|
+ });
|
|
|
+ planProcedureTotalService.saveBatch(planProcedureTotals);
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
@@ -186,9 +211,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if(first.isPresent()){
|
|
|
//todo:推送到企业微信
|
|
|
StringBuilder stringBuilder=new StringBuilder();
|
|
|
- stringBuilder.append(planType==0?"今日计划":planType==1?"明日计划":"插单计划"+": ");
|
|
|
- stringBuilder.append(planType==2?"任务名称"+plan.getTaskName()+"\n"+"任务变更通知号"+plan.getTaskChangeNoticeNum():"产品名称"+plan.getProductName()+"\n"+"排产工单号"+plan.getProductSchedulingNum());
|
|
|
- wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,first.get().getCorpwxUserid(),stringBuilder.toString(),planType==0?"plan/today":planType==1?"plan/tomorrow":"plan/orderInsert",null);
|
|
|
+ stringBuilder.append((planType==0?"今日计划":planType==1?"明日计划":"插单计划")+"\n");
|
|
|
+ stringBuilder.append(planType==2?"任务名称: "+plan.getTaskName()+"\n"+"任务变更通知号: "+plan.getTaskChangeNoticeNum():"产品名称: "+plan.getProductName()+"\n"+"排产工单号: "+plan.getProductSchedulingNum());
|
|
|
+ wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,first.get().getCorpwxRealUserid(),stringBuilder.toString(),planType==0?"plan/today":planType==1?"plan/tomorrow":"plan/orderInsert",null);
|
|
|
}else msg.setError("验证失败");
|
|
|
}
|
|
|
}
|
|
@@ -573,6 +598,27 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg teamAllocation(Integer procedureId,String teamIds) {
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<ProdProcedureTeam> list=new ArrayList<>();
|
|
|
+ if(StringUtils.isEmpty(teamIds)){
|
|
|
+ String[] team = teamIds.split(",");
|
|
|
+ for (String s : team) {
|
|
|
+ ProdProcedureTeam prodProcedureTeam=new ProdProcedureTeam();
|
|
|
+ prodProcedureTeam.setCompanyId(companyId);
|
|
|
+ prodProcedureTeam.setProdProcedureId(procedureId);
|
|
|
+ prodProcedureTeam.setUserId(s);
|
|
|
+ list.add(prodProcedureTeam);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!prodProcedureTeamService.saveBatch(list)){
|
|
|
+ msg.setError("验证失败");
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public HttpRespMsg planDetail(Integer id, Integer type) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
@@ -580,8 +626,15 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if(plan!=null){
|
|
|
switch (type){
|
|
|
case 0:
|
|
|
+ List<PlanProcedureTotal> procedureTotals = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", plan.getId()));
|
|
|
List<ProdProcedure> prodProcedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("product_id", plan.getProductId()).eq("version_number",plan.getVersionNumber()));
|
|
|
- msg.setData(prodProcedureList);
|
|
|
+ procedureTotals.forEach(ps->{
|
|
|
+ Optional<ProdProcedure> first = prodProcedureList.stream().filter(pl -> pl.getId().equals(ps.getProdProcedureId())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ ps.setProdProcedure(first.get());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ msg.setData(procedureTotals);
|
|
|
break;
|
|
|
// case 1:
|
|
|
// Map map=new HashMap();
|