Min 1 год назад
Родитель
Сommit
c36745ab92

+ 3 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java

@@ -2,6 +2,7 @@ package com.management.platform.controller;
 
 
 import com.management.platform.entity.Plan;
+import com.management.platform.entity.PlanProcedureTotal;
 import com.management.platform.service.PlanService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.ibatis.annotations.Param;
@@ -79,8 +80,8 @@ public class PlanController {
     }
     /*计划下产品工序组员分配*/
     @RequestMapping("/teamAllocation")
-    public HttpRespMsg teamAllocation(Integer procedureId,String teamIds){
-        return planService.teamAllocation(procedureId,teamIds);
+    public HttpRespMsg teamAllocation(PlanProcedureTotal planProcedureTotal, String teamIds){
+        return planService.teamAllocation(planProcedureTotal,teamIds);
     }
 
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java

@@ -192,6 +192,9 @@ public class Plan extends Model<Plan> {
     @TableField("version_number")
     private String versionNumber;
 
+    @TableField(exist = false)
+    private Product product;
+
 
     @Override
     protected Serializable pkVal() {

+ 16 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProdProcedureTeam.java

@@ -1,5 +1,6 @@
 package com.management.platform.entity;
 
+import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -36,6 +37,21 @@ public class ProdProcedureTeam extends Model<ProdProcedureTeam> {
     @TableField("prod_procedure_id")
     private Integer prodProcedureId;
 
+    @TableField("plan_id")
+    private Integer planId;
+
+    /**
+     * 工时
+     */
+    @TableField("work_time")
+    private Double workTime;
+
+    /**
+     * 工价
+     */
+    @TableField("job_of_money")
+    private BigDecimal jobOfMoney;
+
 
     @Override
     protected Serializable pkVal() {

+ 2 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/PlanService.java

@@ -2,6 +2,7 @@ package com.management.platform.service;
 
 import com.management.platform.entity.Plan;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.PlanProcedureTotal;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -33,5 +34,5 @@ public interface PlanService extends IService<Plan> {
 
     HttpRespMsg hasSetDeptDetail();
 
-    HttpRespMsg teamAllocation(Integer procedureId,String teamIds);
+    HttpRespMsg teamAllocation(PlanProcedureTotal planProcedureTotal, String teamIds);
 }

+ 40 - 5
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -88,7 +88,8 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
     @Override
     public HttpRespMsg getList(String date, String steelStampNumber, Integer planType,Integer deptId,Integer pageIndex,Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
-        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        User user = userMapper.selectById(request.getHeader("token"));
+        Integer companyId = user.getCompanyId();
         QueryWrapper<Plan> queryWrapper=new QueryWrapper();
         DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
         queryWrapper.eq("company_id",companyId);
@@ -98,7 +99,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
             queryWrapper.eq("plan_type",1);
         }
         if(planType!=2){
-            queryWrapper.eq("station_id",deptId);
+            if(deptId!=null){
+                queryWrapper.eq("station_id",deptId);
+            }
         }
         if(!StringUtils.isEmpty(date)){
             LocalDate parse = LocalDate.parse(date,df);
@@ -109,13 +112,38 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                 queryWrapper.eq("start_date",planType==0?now:now.plusDays(1));
             }
         }
+        /*作为工长看到的数据*/
+        if(count(new QueryWrapper<Plan>().eq("foreman_id",user.getId()))>0){
+            queryWrapper.eq("foreman_id",user.getId());
+        }else {
+            /*作为组员可以查看的数据*/
+            List<ProdProcedureTeam> prodProcedureTeams = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("company_id", companyId).eq("user_id", user.getId()));
+            List<Integer> collect=new ArrayList<>();
+            if(prodProcedureTeams!=null&&prodProcedureTeams.size()>0){
+                List<Integer> ids = prodProcedureTeams.stream().map(ProdProcedureTeam::getProdProcedureId).collect(Collectors.toList());
+                List<PlanProcedureTotal> list = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().in("prod_procedure_id", ids));
+                collect = list.stream().map(PlanProcedureTotal::getPlanId).distinct().collect(Collectors.toList());
+            }
+            collect.add(-1);
+            queryWrapper.in("id",collect);
+        }
         if(!StringUtils.isEmpty(steelStampNumber)){
             queryWrapper.apply("'"+steelStampNumber+"'"+" between steel_stamp_number_start AND steel_stamp_number_end");
         }
         IPage<Plan> planIPage = planMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
+        List<Plan> records = planIPage.getRecords();
+        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));
+        records.forEach(rs->{
+            Optional<Product> first = productList.stream().filter(pl -> pl.getId().equals(rs.getProductId())).findFirst();
+            if(first.isPresent()){
+                rs.setProduct(first.get());
+            }
+        });
         Map map=new HashMap();
         map.put("total",planIPage.getTotal());
-        map.put("records",planIPage.getRecords());
+        map.put("records",records);
         msg.setData(map);
         return msg;
     }
@@ -599,17 +627,24 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
     }
 
     @Override
-    public HttpRespMsg teamAllocation(Integer procedureId,String teamIds) {
+    public HttpRespMsg teamAllocation(PlanProcedureTotal planProcedureTotal,String teamIds) {
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        BigDecimal totalWages=new BigDecimal(planProcedureTotal.getTotalWages());
+        BigDecimal totalWorkingHours=new BigDecimal(planProcedureTotal.getTotalWorkingHours());
         List<ProdProcedureTeam> list=new ArrayList<>();
         if(StringUtils.isEmpty(teamIds)){
             String[] team = teamIds.split(",");
+            totalWages=totalWages.divide(new BigDecimal(team.length));
+            totalWorkingHours=totalWorkingHours.divide(new BigDecimal(team.length));
             for (String s : team) {
                 ProdProcedureTeam prodProcedureTeam=new ProdProcedureTeam();
                 prodProcedureTeam.setCompanyId(companyId);
-                prodProcedureTeam.setProdProcedureId(procedureId);
+                prodProcedureTeam.setProdProcedureId(planProcedureTotal.getProdProcedureId());
                 prodProcedureTeam.setUserId(s);
+                prodProcedureTeam.setPlanId(planProcedureTotal.getPlanId());
+                prodProcedureTeam.setWorkTime(totalWorkingHours.doubleValue());
+                prodProcedureTeam.setJobOfMoney(totalWages);
                 list.add(prodProcedureTeam);
             }
         }

+ 4 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureTeamMapper.xml

@@ -8,11 +8,14 @@
         <result column="company_id" property="companyId" />
         <result column="user_id" property="userId" />
         <result column="prod_procedure_id" property="prodProcedureId" />
+        <result column="plan_id" property="planId" />
+        <result column="work_time" property="workTime" />
+        <result column="job_of_money" property="jobOfMoney" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, user_id, prod_procedure_id
+        id, company_id, user_id, prod_procedure_id, plan_id, work_time, job_of_money
     </sql>
 
 </mapper>