Просмотр исходного кода

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

Lijy 11 месяцев назад
Родитель
Сommit
cd5f2673f0

Разница между файлами не показана из-за своего большого размера
+ 10821 - 37852
fhKeeper/formulahousekeeper/management-crm/crm.log


+ 1 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -122,6 +122,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                 deptIds=deptIds.stream().distinct().collect(Collectors.toList());
                 List<Integer> finalDeptIds2 = deptIds;
                 List<String> userIds = userList.stream().filter(u -> finalDeptIds2.contains(u.getDepartmentId())).map(User::getId).collect(Collectors.toList());
+                userIds.add("-1");
                 queryWrapper.in(Product::getCreatorId,userIds);
             }
         }

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/SalesOrderServiceImpl.java

@@ -794,7 +794,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         double businessOpportunityPrice = businessOpportunityList.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b ->Double.valueOf(b.getAmountOfMoney())).sum();
         Integer salesOrderCount = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper);
         List<SalesOrder> salesOrders = salesOrderMapper.selectList(salesOrderLambdaQueryWrapper);
-        double salesOrdersPrice = salesOrders.stream().mapToDouble(s -> s.getPrice().doubleValue()).sum();
+        double salesOrdersPrice = salesOrders.stream().filter(i->i.getPrice()!=null).mapToDouble(s -> s.getPrice().doubleValue()).sum();
         Integer clueCount = clueMapper.selectCount(clueLambdaQueryWrapper);
 
         int customCount1 = customService.count(customLambdaQueryWrapper1);

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusinessOpportunityMapper.xml

@@ -245,7 +245,7 @@
     <select id="getDataSummary" resultType="java.util.Map">
         SELECT COUNT(*) newNum,SUM(bo.amount_of_money) AS allAmountOfMoney,SUM(s.name='赢单') winning,SUM(s.name='输单') losting  FROM business_opportunity bo
         LEFT JOIN stage s ON bo.stage_id=s.id
-        WHERE company_id=#{companyId} and is_delete=0
+        WHERE bo.company_id=#{companyId} and is_delete=0
         <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
             and DATE_FORMAT(bo.create_time,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
         </if>

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

@@ -131,6 +131,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     private ProductMapper productMapper;
     @Resource
     private ProdProcedureMapper prodProcedureMapper;
+    @Resource
+    private LeaveSheetService leaveSheetService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -4114,6 +4116,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         personWorkHoursWagesList.addAll(totalList);
         //日期范围内所有分配数据
         List<ProdProcedureTeam> allProcedureTeamList = prodProcedureTeamMapper.selectList(new LambdaQueryWrapper<ProdProcedureTeam>().between(ProdProcedureTeam::getDistributeDate, startDate, endDate));
+        //日期范围内所有请假数据
+        List<LeaveSheet> leaveSheetList = leaveSheetService.list(new LambdaQueryWrapper<LeaveSheet>().le(LeaveSheet::getStartDate, endDate).ge(LeaveSheet::getEndDate, startDate));
         //日期范围内所有派工数据
         List<Integer> ids = allProcedureTeamList.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
         List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getId, ids));
@@ -4168,6 +4172,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                 } else {
                     Map map = new HashMap();
+                    //不存在报工数据显示请假详情数据
+                    boolean match = leaveSheetList.stream().anyMatch(l ->
+                            (l.getStartDate().isBefore(LocalDate.parse(date, dtf1)) || l.getStartDate().isEqual(LocalDate.parse(date, dtf1)))
+                                    &&
+                                    (l.getEndDate().isAfter(LocalDate.parse(date, dtf1)) || l.getEndDate().isEqual(LocalDate.parse(date, dtf1))) && l.getOwnerId().equals(u.getId()));
+                    if(match){
+                        map.put("leave","当天请假");
+                    }
                     map.put("crateDate", date);
                     map.put("cost", 0);
                     map.put("workTime", 0);
@@ -4285,12 +4297,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         List<Integer> deptIds = departmentList.stream().map(Department::getDepartmentId).distinct().collect(Collectors.toList());
         List<Integer> otherDeptIds = departmentOtherManagers.stream().map(DepartmentOtherManager::getDepartmentId).distinct().collect(Collectors.toList());
         deptIds.addAll(otherDeptIds);
+        //日期范围内所有请假数据
+        List<LeaveSheet> leaveSheetList = leaveSheetService.list(new LambdaQueryWrapper<LeaveSheet>().le(LeaveSheet::getStartDate, endDate).ge(LeaveSheet::getEndDate, startDate).eq(LeaveSheet::getOwnerId,userId));
         List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetail(date,userId,user.getCompanyId(),startDate,endDate,checkStatus,detailStatus);
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         HashMap map=new HashMap();
         map.put("record",mapList);
-        map.put("totalWorkingTime",mapList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
-        map.put("totalCost",mapList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+        map.put("totalWorkingTime",mapList.stream().filter(i->i.get("working_time")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
+        map.put("totalCost",mapList.stream().filter(i->i.get("cost")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
         if(checkStatus!=null && detailStatus==null){
             mapList=reportMapper.getPersonWorkHoursWagesDetail(date,user.getId(),user.getCompanyId(),startDate,endDate,checkStatus,detailStatus);
             DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -4359,13 +4373,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                 }
                 item.put("subDataList",theData);
-                item.put("working_time",list.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
-                item.put("cost",list.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+                item.put("working_time",list.stream().filter(i->i.get("working_time")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
+                item.put("cost",list.stream().filter(i->i.get("cost")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
                 resultList.add(item);
             }
             map.put("record",resultList);
-            map.put("totalWorkingTime",resultList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
-            map.put("totalCost",resultList.stream().mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
+            map.put("totalWorkingTime",resultList.stream().filter(i->i.get("working_time")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
+            map.put("totalCost",resultList.stream().filter(i->i.get("cost")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
         }
         httpRespMsg.setData(map);
         return httpRespMsg;

+ 43 - 12
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -154,20 +154,51 @@
         </if>
         group by b.id, a.create_date
     </select>
+<!--修改前 人员工时工价表详情数据-->
+<!--    <select id="getPersonWorkHoursWagesDetail" resultType="java.util.Map">-->
+<!--        select r.cost,r.working_time,r.finish_num, r.creator_id,ppt.total_progress as progress,DATE_FORMAT(r.create_date,'%Y%m%d') as createDate,pp.name as procedureName,(case  when pp.check_type=0 then '自检' when pp.check_type=1 then '互检' else '专检' end) as checkType,-->
+<!--        p.name as productName,DATE_FORMAT(plan.start_date,'%Y%m%d') as planStartDate,DATE_FORMAT(plan.end_date,'%Y%m%d') as planEndDate ,-->
+<!--        plan.task_change_notice_num as taskName,plan.plan_type as planType,u.name as checkerName,u2.name as creatorName,plan.product_scheduling_num,r.finish_num as finishNum-->
+<!--        from report r-->
+<!--        left join prod_procedure_team ppt2 on r.user_procedure_team_id=ppt2.id-->
+<!--        left join prod_procedure pp on r.prod_procedure_id=pp.id-->
+<!--        left join plan_procedure_total ppt on ppt.id=ppt2.plan_procedure_id-->
+<!--        left join product p on p.id=r.product_id-->
+<!--        left join plan on plan.id=r.plan_id-->
+<!--        left join user u on r.checker_id=u.id-->
+<!--        left join user u2 on r.creator_id=u2.id-->
+<!--        where r.company_id=#{companyId}  and r.finish_num &gt; 0-->
+<!--        <if test="date!=null and date!=''">-->
+<!--            and r.create_date=#{date}-->
+<!--        </if>-->
+<!--        <if test="userId!=null and userId!=''">-->
+<!--            <choose>-->
+<!--                <when test="checkStatus!=null and checkStatus==1 and detailStatus==null">-->
+<!--                    and plan.foreman_id=#{userId}-->
+<!--                </when>-->
+<!--                <otherwise>-->
+<!--                    and r.creator_id=#{userId}-->
+<!--                </otherwise>-->
+<!--            </choose>-->
+<!--        </if>-->
+<!--        <if test="startDate!=null and endDate!=null">-->
+<!--            and r.create_date between #{startDate} and #{endDate}-->
+<!--        </if>-->
+<!--    </select>-->
 
     <select id="getPersonWorkHoursWagesDetail" resultType="java.util.Map">
-        select r.cost,r.working_time,r.finish_num, r.creator_id,ppt.total_progress as progress,DATE_FORMAT(r.create_date,'%Y%m%d') as createDate,pp.name as procedureName,(case  when pp.check_type=0 then '自检' when pp.check_type=1 then '互检' else '专检' end) as checkType,
+        select r.cost,r.working_time,r.finish_num as finish_num, r.creator_id,ppt.total_progress as progress,DATE_FORMAT(r.create_date,'%Y%m%d') as createDate,pp.name as procedureName,(case  when pp.check_type=0 then '自检' when pp.check_type=1 then '互检' else '专检' end) as checkType,
         p.name as productName,DATE_FORMAT(plan.start_date,'%Y%m%d') as planStartDate,DATE_FORMAT(plan.end_date,'%Y%m%d') as planEndDate ,
         plan.task_change_notice_num as taskName,plan.plan_type as planType,u.name as checkerName,u2.name as creatorName,plan.product_scheduling_num,r.finish_num as finishNum
-        from report r
-        left join prod_procedure_team ppt2 on r.user_procedure_team_id=ppt2.id
-        left join prod_procedure pp on r.prod_procedure_id=pp.id
-        left join plan_procedure_total ppt on ppt.id=ppt2.plan_procedure_id
-        left join product p on p.id=r.product_id
-        left join plan on plan.id=r.plan_id
-        left join user u on r.checker_id=u.id
-        left join user u2 on r.creator_id=u2.id
-        where r.company_id=#{companyId}  and r.finish_num &gt; 0
+        FROM prod_procedure_team ppt2
+        LEFT JOIN plan_procedure_total ppt ON ppt.id=ppt2.plan_procedure_id
+        LEFT JOIN plan ON plan.id=ppt.plan_id
+        LEFT JOIN report r ON r.user_procedure_team_id=ppt2.id
+        LEFT JOIN prod_procedure pp ON ppt.prod_procedure_id=pp.id
+        LEFT JOIN product p ON p.id=plan.product_id
+        LEFT JOIN USER u ON r.checker_id=u.id
+        LEFT JOIN USER u2 ON r.creator_id=u2.id
+        WHERE ppt2.company_id=#{companyId}
         <if test="date!=null and date!=''">
             and r.create_date=#{date}
         </if>
@@ -177,12 +208,12 @@
                     and plan.foreman_id=#{userId}
                 </when>
                 <otherwise>
-                    and r.creator_id=#{userId}
+                    and ppt2.user_id=#{userId}
                 </otherwise>
             </choose>
         </if>
         <if test="startDate!=null and endDate!=null">
-            and r.create_date between #{startDate} and #{endDate}
+            and ppt2.distribute_date between #{startDate} and #{endDate}
         </if>
     </select>
 

+ 5 - 4
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -91,8 +91,9 @@
                         <div v-for="(items, indexs) in scope.row.personWorkHoursWages" :key="indexs" @click="showReportDetail(scope.row,item,0)" :class="`${scope.row.departmentCascade== '小计' ? '' : 'colorText'}`">
                             <div v-if="items.crateDate == item">
                               <div  style="color: black;" v-if="items.planWorkTime">平均 {{items.planWorkTime}}分钟  {{items.planCost}}元</div>
-                               <div>已填 {{items.workTime}}分钟  {{items.cost}}元</div> 
-                               <div style="color: red;" v-if="items.surplusTime">剩余 {{items.surplusTime}}分钟  {{items.surplusCost}}元</div>
+                              <div v-if="items.leave">{{items.leave}}</div>
+                              <div v-else>已填 {{items.workTime}}分钟  {{items.cost}}元</div> 
+                              <div style="color: red;" v-if="items.surplusTime">剩余 {{items.surplusTime}}分钟  {{items.surplusCost}}元</div>
                             </div>
                         </div>
                     </template>
@@ -371,14 +372,14 @@
               <el-table-column prop="procedureName" label="工序名称" width="180"></el-table-column>
               <el-table-column prop="finishNum" label="完成件数" width="80">
                 <template slot-scope="scope">
-                  {{scope.row.finishNum?scope.row.finishNum:0}}
+                  {{scope.row.finishNum?scope.row.finishNum:''}}
                 </template>
               </el-table-column>
               <el-table-column prop="cost" label="工钱" width="80"></el-table-column>
               <el-table-column prop="checkType" label="质检方式" width="80"></el-table-column>
               <el-table-column prop="checkerName" label="质检人" width="180"></el-table-column>
               <el-table-column prop="working_time" label="工作时长" width="180">
-                <template slot-scope="scope">
+                <template slot-scope="scope" v-if="scope.row.working_time">
                   {{scope.row.working_time}}分钟
                 </template>
               </el-table-column>