|
@@ -119,7 +119,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
/*作为工长看到的数据*/
|
|
|
if(count(new QueryWrapper<Plan>().eq("foreman_id",user.getId()))>0){
|
|
|
- queryWrapper.eq("foreman_id",user.getId());
|
|
|
+ queryWrapper.and(wrapper->wrapper.eq("foreman_id",user.getId()).or().eq("create_id",user.getId()));
|
|
|
}else {
|
|
|
/*作为组员可以查看的数据*/
|
|
|
List<ProdProcedureTeam> prodProcedureTeams = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("company_id", companyId).eq("user_id", user.getId()));
|
|
@@ -130,7 +130,8 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
collect = list.stream().map(PlanProcedureTotal::getPlanId).distinct().collect(Collectors.toList());
|
|
|
}
|
|
|
collect.add(-1);
|
|
|
- queryWrapper.in("id",collect);
|
|
|
+ List<Integer> finalCollect = collect;
|
|
|
+ queryWrapper.and(wrapper->wrapper.in("id", finalCollect).or().eq("create_id",user.getId()));
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
queryWrapper.apply("'"+steelStampNumber+"'"+" between steel_stamp_number_start AND steel_stamp_number_end");
|
|
@@ -140,11 +141,21 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
List<Integer> ids = records.stream().map(Plan::getProductId).distinct().collect(Collectors.toList());
|
|
|
ids.add(-1);
|
|
|
List<Product> productList = productMapper.selectList(new QueryWrapper<Product>().in("id", ids));
|
|
|
+ List<Integer> planIds = records.stream().map(Plan::getId).distinct().collect(Collectors.toList());
|
|
|
+ planIds.add(-1);
|
|
|
+ List<PlanProcedureTotal> procedureTotals = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().in("plan_id", planIds));
|
|
|
records.forEach(rs->{
|
|
|
Optional<Product> first = productList.stream().filter(pl -> pl.getId().equals(rs.getProductId())).findFirst();
|
|
|
if(first.isPresent()){
|
|
|
rs.setProduct(first.get());
|
|
|
}
|
|
|
+ if(procedureTotals.size()>0){
|
|
|
+ List<PlanProcedureTotal> totals = procedureTotals.stream().filter(ps -> ps.getPlanId().equals(rs.getId())).collect(Collectors.toList());
|
|
|
+ if(totals.size()>0){
|
|
|
+ double sum = totals.stream().mapToDouble(PlanProcedureTotal::getTotalWages).sum();
|
|
|
+ rs.setTotalMoney(sum);
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
Map map=new HashMap();
|
|
|
map.put("total",planIPage.getTotal());
|
|
@@ -155,9 +166,11 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
|
|
|
@Override
|
|
|
public HttpRespMsg addOrUpdatePlan(Plan plan) {
|
|
|
- Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ User user = userMapper.selectById(request.getHeader("token"));
|
|
|
+ Integer companyId = user.getCompanyId();
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
plan.setCompanyId(companyId);
|
|
|
+ plan.setCreateId(user.getId());
|
|
|
if(plan.getStationId()!=null){
|
|
|
Department department = departmentMapper.selectById(plan.getStationId());
|
|
|
plan.setStationName(department.getDepartmentName());
|
|
@@ -637,13 +650,16 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg teamAllocation(PlanProcedureTotal planProcedureTotal,String teamIds) {
|
|
|
+ public HttpRespMsg teamAllocation(PlanProcedureTotal planProcedureTotal,String teamIds) throws Exception {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
BigDecimal totalWages=new BigDecimal(planProcedureTotal.getTotalWages());
|
|
|
BigDecimal totalWorkingHours=new BigDecimal(planProcedureTotal.getTotalWorkingHours());
|
|
|
BigDecimal overCountWages = new BigDecimal(0);
|
|
|
BigDecimal overWorkingHours = new BigDecimal(0);
|
|
|
+ ProdProcedure prodProcedure = prodProcedureMapper.selectById(planProcedureTotal.getProdProcedureId());
|
|
|
+ Plan plan = planMapper.selectById(planProcedureTotal.getPlanId());
|
|
|
+ Product product = productMapper.selectById(plan.getProductId());
|
|
|
List<ProdProcedureTeam> list=new ArrayList<>();
|
|
|
if(!StringUtils.isEmpty(teamIds)){
|
|
|
String[] team = teamIds.split(",");
|
|
@@ -652,6 +668,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
overCountWages=totalWages.multiply(new BigDecimal(team.length));
|
|
|
overWorkingHours=totalWorkingHours.multiply(new BigDecimal(team.length));
|
|
|
List<ProdProcedureTeam> procedureTeamList = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("plan_procedure_id",planProcedureTotal.getId()));
|
|
|
+ List<User> userList = userMapper.selectBatchIds(Arrays.asList(team));
|
|
|
for (int i = 0; i < team.length; i++) {
|
|
|
ProdProcedureTeam prodProcedureTeam=new ProdProcedureTeam();
|
|
|
prodProcedureTeam.setCompanyId(companyId);
|
|
@@ -678,6 +695,18 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
list.add(prodProcedureTeam);
|
|
|
}
|
|
|
+ List<WxCorpInfo> wxCorpInfoList = wxCorpInfoService.list(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
|
|
|
+ if(wxCorpInfoList.size()>0){
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoList.get(0);
|
|
|
+ String userIds = userList.stream().map(User::getCorpwxRealUserid).collect(Collectors.joining("|"));
|
|
|
+ //todo:推送到企业微信
|
|
|
+ StringBuilder stringBuilder=new StringBuilder();
|
|
|
+ stringBuilder.append("工序 ");
|
|
|
+ stringBuilder.append("工序名称:"+prodProcedure.getName()+"\n"
|
|
|
+ +"产品名称:"+product.getName()+"\n"
|
|
|
+ +"排产工单号:"+plan.getProductSchedulingNum());
|
|
|
+ wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,userIds,stringBuilder.toString(),"todayPlan",null);
|
|
|
+ }
|
|
|
}
|
|
|
if(!prodProcedureTeamService.saveOrUpdateBatch(list)){
|
|
|
msg.setError("验证失败");
|