Browse Source

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Lijy 1 year ago
parent
commit
1cdffab123

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/PermissionServiceImpl.java

@@ -219,6 +219,9 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
         }
         queryWrapper.orderByAsc("orderitem");
         List<SysModule> moduleList = sysModuleMapper.selectList(queryWrapper);
+        if(companyId!=3092){
+            moduleList=moduleList.stream().filter(m->!m.getName().equals("预估工时审核")).collect(Collectors.toList());
+        }
         //组装层级关系,默认只有两级
         List<SysModule> menuList = new ArrayList<>();
         QueryWrapper<SysFunction> functionQueryWrapper = new QueryWrapper<SysFunction>().and(wrapper->{
@@ -283,6 +286,9 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
             if(timeType.getPushReportData()!=1&&fun.getName().equals("手动推送工时")){
                 resultFunList.remove(fun);
             }
+            if(company.getId()!=3092&&fun.getName().equals("审核预估工时")){
+                resultFunList.remove(fun);
+            }
         }
         for (SysModule module : moduleList) {
             if(timeType.getProjectCustom()==0){

+ 5 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java

@@ -1629,5 +1629,10 @@ public class ReportController {
     public HttpRespMsg getPlanDataWithUserId(String userId,String startDate,String endDate){
         return reportService.getPlanDataWithUserId(userId,startDate,endDate);
     }
+
+    @RequestMapping("/getUserCommentPlanResult")
+    public HttpRespMsg getUserCommentPlanResult(String pptIds){
+        return reportService.getUserCommentPlanResult(pptIds);
+    }
 }
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java

@@ -154,4 +154,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, Integer stationId, String startDate, String endDate);
 
     HttpRespMsg getPlanDataWithUserId(String userId, String startDate, String endDate);
+
+    HttpRespMsg getUserCommentPlanResult(String pptIds);
 }

+ 61 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -5279,28 +5279,42 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 BigDecimal arrangeTotalNowCost=new BigDecimal(0);
                 BigDecimal arrangeTotalPlanHour=new BigDecimal(0);
                 BigDecimal arrangeTotalNowHour=new BigDecimal(0);
+                Set set=new HashSet();
                 for (String userId : userIdList) {
                     Map<String,Object> item=new HashMap<>();
                     item.put("startDate",date.replaceAll("-",""));
                     List<Map<String, Object>> list = listMapGroupByUser.get(userId);
                     item.put("userId",userId);
+                    boolean hasMoreUser = list.stream().anyMatch(l -> Integer.valueOf(String.valueOf(l.get("hasMoreUser"))).equals(1));
+                    item.put("hasMoreUser",hasMoreUser);
                     BigDecimal planCost=new BigDecimal(0);
                     BigDecimal nowCost=new BigDecimal(0);
                     BigDecimal planHour=new BigDecimal(0);
                     BigDecimal nowHour=new BigDecimal(0);
+                    List<String> pptIds=new ArrayList<>();
                     for (Map<String, Object> map : list) {
                         planCost=planCost.add(new BigDecimal((String.valueOf(map.get("planCost")))));
                         nowCost=nowCost.add(new BigDecimal((String.valueOf(map.get("nowCost")))));
                         planHour=planHour.add(new BigDecimal((String.valueOf(map.get("planHour")))));
                         nowHour=nowHour.add(new BigDecimal((String.valueOf(map.get("nowHour")))));
+                        if(!pptIds.contains(String.valueOf(map.get("pptId")))){
+                            pptIds.add(String.valueOf(map.get("pptId")));
+                        }
+                        if(set.contains(String.valueOf(map.get("pptId")))){
+                            continue;
+                        }
+                        set.add(String.valueOf(map.get("pptId")));
+                        arrangeTotalPlanCost=arrangeTotalPlanCost.add(new BigDecimal((String.valueOf(map.get("planCost"))))).setScale(2,BigDecimal.ROUND_HALF_UP);
+                        arrangeTotalPlanHour=arrangeTotalPlanHour.add(new BigDecimal((String.valueOf(map.get("planHour"))))).setScale(2,BigDecimal.ROUND_HALF_UP);
+
                     }
+                    String s = pptIds.stream().collect(Collectors.joining(","));
+                    item.put("pptIds",s);
                     planCost=planCost.setScale(2,BigDecimal.ROUND_HALF_UP);
                     nowCost=nowCost.setScale(2,BigDecimal.ROUND_HALF_UP);
                     planHour=planHour.setScale(2,BigDecimal.ROUND_HALF_UP);
                     nowHour=nowHour.setScale(2,BigDecimal.ROUND_HALF_UP);
-                    arrangeTotalPlanCost=arrangeTotalPlanCost.add(planCost).setScale(2,BigDecimal.ROUND_HALF_UP);
                     arrangeTotalNowCost=arrangeTotalNowCost.add(nowCost).setScale(2,BigDecimal.ROUND_HALF_UP);
-                    arrangeTotalPlanHour=arrangeTotalPlanHour.add(planHour).setScale(2,BigDecimal.ROUND_HALF_UP);
                     arrangeTotalNowHour=arrangeTotalNowHour.add(nowHour).setScale(2,BigDecimal.ROUND_HALF_UP);
                     item.put("planCost",planCost.doubleValue());
                     item.put("nowCost",nowCost.doubleValue());
@@ -5597,4 +5611,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return msg;
     }
 
+    @Override
+    public HttpRespMsg getUserCommentPlanResult(String pptIds) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        if(StringUtils.isEmpty(pptIds)){
+            httpRespMsg.setData("无");
+            return httpRespMsg;
+        }
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        String[] split = pptIds.split(",");
+        List<String> list = Arrays.asList(split);
+        List<Integer> pptIdList = list.stream().map(l -> Integer.valueOf(l)).collect(Collectors.toList());
+        List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getId, pptIdList));
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
+        List<ProdProcedureTeam> procedureTeamList = prodProcedureTeamMapper.selectList(new LambdaQueryWrapper<ProdProcedureTeam>().in(ProdProcedureTeam::getPlanProcedureId, pptIdList));
+        StringBuilder sb=new StringBuilder();
+        for (int j = 0; j < planProcedureTotalList.size(); j++) {
+            PlanProcedureTotal planProcedureTotal=planProcedureTotalList.get(j);
+            List<ProdProcedureTeam> targetList = procedureTeamList.stream().filter(p -> p.getPlanProcedureId().equals(planProcedureTotal.getId())).collect(Collectors.toList());
+            if(targetList.size()>1){
+                StringBuilder sb1=new StringBuilder();
+                sb1.append("[");
+                for (int i = 0; i < targetList.size(); i++) {
+                    int finalI = i;
+                    if(i<targetList.size()-1){
+                        Optional<User> first = userList.stream().filter(u -> u.getId().equals(targetList.get(finalI).getUserId())).findFirst();
+                        if(first.isPresent()){
+                            sb1.append(first.get().getName()+",");
+                        }
+                    }else {
+                        Optional<User> first = userList.stream().filter(u -> u.getId().equals(targetList.get(finalI).getUserId())).findFirst();
+                        if(first.isPresent()){
+                            sb1.append(first.get().getName()+"]有共同计划"+planProcedureTotal.getTotalWorkingHours()+"分钟"+planProcedureTotal.getTotalWages()+"元");
+                        }
+                    }
+                }
+                if(j<planProcedureTotalList.size()-1){
+                    sb.append(sb1.toString()+",");
+                }else {
+                    sb.append(sb1.toString());
+                }
+            }
+        }
+        httpRespMsg.setData(sb.toString());
+        return httpRespMsg;
+    }
 }

+ 6 - 7
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -446,7 +446,7 @@
     </select>
 
     <select id="getPlanDataWithStation" resultType="java.util.Map">
-        SELECT p.id, p.num AS planNum,SUM(ppt.`total_working_hours`) AS  planHour ,IFNULL(SUM(ppt.`total_fill_time`),0) AS nowHour,SUM(ppt.`total_wages`) AS planCost,
+        SELECT p.id, p.num AS planNum,IFNULL(SUM(ppt.`total_working_hours`),0) AS  planHour ,IFNULL(SUM(ppt.`total_fill_time`),0) AS nowHour,IFNULL(SUM(ppt.`total_wages`),0) AS planCost,
         IFNULL(SUM(ppt.`total_wages`*ppt.`total_progress`/100),0) AS nowCost,
         IFNULL(ROUND(IFNULL(ROUND(SUM(ppt.total_fill_time)/SUM(ppt.total_working_hours), 2),0)*p.num,2),0) AS nowNum,d.department_id AS deptId,p.start_date AS startDate,
         IFNULL(d.`superior_id`,d.`department_id`) AS superiorId
@@ -475,13 +475,12 @@
     <select id="getPlanDataWithUser" resultType="java.util.Map">
         select d.department_id as deptId,u.id as userId, u.name as userName,p.start_date as startDate,IFNULL(ppt.total_wages,0) as planCost,IFNULL(ppt.total_working_hours,0) as planHour,
         IFNULL((select SUM(working_time) from report where report.user_procedure_team_id=ppt2.id),0) as nowHour,
-        IFNULL((select SUM(cost) from report where report.user_procedure_team_id=ppt2.id),0) as nowCost
-        from
-        plan_procedure_total ppt
-        left join prod_procedure_team ppt2 on ppt2.plan_procedure_id=ppt.id
-        left join user u on ppt2.user_id=u.id
-        left join department d on u.department_id=d.department_id
+        IFNULL((select SUM(cost) from report where report.user_procedure_team_id=ppt2.id),0) as nowCost,ppt.id as pptId,IF((select COUNT(1) from prod_procedure_team where plan_procedure_id=ppt.id)>1,true,false) as hasMoreUser
+        from prod_procedure_team ppt2
+        left join plan_procedure_total ppt on ppt2.plan_procedure_id=ppt.id
+        left join user u on u.id=ppt2.user_id
         left join plan p on ppt.plan_id=p.id
+        left join department d on u.department_id=d.department_id
         <where>
          p.status!=2 and
          p.company_id=#{companyId}

+ 38 - 2
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -234,7 +234,16 @@
                           <div  v-for="(items, indexs) in (isViewUser?scope.row.userList:scope.row.deptList)" :key="indexs" >
                               <div v-if="items.startDate == item">
                                   <div>计划数:{{items.planNum}} {{items.planHour}}分钟  {{items.planCost}}元 </div>
-                                  <div>实际数:{{items.nowNum}} {{items.nowHour}}分钟  {{items.nowCost}}元</div>
+                                  <div>实际数:{{items.nowNum}} {{items.nowHour}}分钟  {{items.nowCost}}元    
+                                    <el-popover
+                                    v-if="items.hasMoreUser"
+                                    placement="bottom"
+                                    title="详情"
+                                    width="200"
+                                    trigger="click"
+                                    :content="hasMoreUserResult">
+                                    <i slot="reference" type="primary" class="el-icon-warning-outline" @click="getUserCommon(items)"></i>
+                                  </el-popover></div>
                                   <div v-if="!isViewUser">进度:{{items.progress}}</div>
                                   <div v-if="isViewUser">进度:{{ comSchedule(items.nowHour, items.planHour) }}</div>
                               </div>
@@ -658,7 +667,9 @@ export default {
       personnelFlag: false, // 是否处于最后一集的人员
       rowSpanArr: [], // 需要合并的数据
 
-      sumObject: { english_achievements: 1000, math_achievements: 888 } // 合计数据
+      sumObject: { english_achievements: 1000, math_achievements: 888 }, // 合计数据
+
+      hasMoreUserResult:""
     };
   },
   computed: {},
@@ -780,6 +791,27 @@ export default {
       }
     },
 
+    getUserCommon(target){
+      this.http.post('/report/getUserCommentPlanResult', {
+        pptIds:target.pptIds
+      },
+      res => {
+          if (res.code == "ok") {
+              this.hasMoreUserResult = res.data;
+          } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+          }
+      },
+      error => {
+          this.$message({
+              message: error,
+              type: "error"
+          });
+      });
+    },
     getUserList(e) {
       let param={}
       if(e){
@@ -1417,6 +1449,10 @@ export default {
         //TODO: 获取数据
         this.getProductionQuantityList()
       }
+      if(this.ins == 6){
+        //TODO: 获取数据
+        this.getPlanDataWithStation()
+      }
     },
     // 日期
     getCurrentRangeTime() {

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/routes.js

@@ -296,7 +296,7 @@ export const allRouters = [//组织架构
     {
         path: '/',
         component: Home,
-        name: '预工时审核',
+        name: '预工时审核',
         iconCls: 'iconfont firerock-iconxiangmu',
         leaf: true,
         children: [