Explorar el Código

fix. 联调修改

caozixuan hace 7 meses
padre
commit
7f5c1962cf

+ 2 - 2
sop-api/src/main/java/com/qmth/sop/server/api/TBDingAddController.java

@@ -34,8 +34,8 @@ public class TBDingAddController {
     @ApiOperation(value = "增加工时-查询可选sop")
     @RequestMapping(value = "/find_sop_list", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "返回信息", response = CanChooseSopResult.class) })
-    public Result findSopList(@ApiParam(value = "服务单元id", required = true) @RequestParam Long serviceId) {
-        return ResultUtil.ok(tbDingAddService.findCanChooseSopResultList(serviceId));
+    public Result findSopList(@ApiParam(value = "服务单元id", required = true) @RequestParam Long serviceId, @ApiParam(value = "待追加用户id", required = true) @RequestParam Long userId) {
+        return ResultUtil.ok(tbDingAddService.findCanChooseSopResultList(serviceId, userId));
     }
 
     @ApiOperation(value = "增加工时-提交")

+ 26 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/dto/DingStatisticByPersonDto.java

@@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.HeadFontStyle;
 import com.alibaba.excel.annotation.write.style.HeadStyle;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
@@ -22,6 +24,14 @@ public class DingStatisticByPersonDto {
     @ApiModelProperty(value = "服务单元")
     private String serviceName;
 
+    @ApiModelProperty(value = "服务单元id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long serviceId;
+
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
     @ExcelProperty(value = "姓名(人员档案号)")
     @ApiModelProperty(value = "姓名(人员档案号)")
     private String userInfo;
@@ -74,6 +84,22 @@ public class DingStatisticByPersonDto {
         this.serviceName = serviceName;
     }
 
+    public Long getServiceId() {
+        return serviceId;
+    }
+
+    public void setServiceId(Long serviceId) {
+        this.serviceId = serviceId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
     public String getUserInfo() {
         return userInfo;
     }

+ 12 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBDingStatisticByPerson.java

@@ -28,6 +28,10 @@ public class TBDingStatisticByPerson extends BaseEntity {
     @ApiModelProperty(value = "服务单元名称")
     private String serviceName;
 
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
     @ApiModelProperty(value = "姓名(人员档案号)")
     private String userInfo;
 
@@ -77,6 +81,14 @@ public class TBDingStatisticByPerson extends BaseEntity {
         this.serviceName = serviceName;
     }
 
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
     public String getUserInfo() {
         return userInfo;
     }

+ 2 - 1
sop-business/src/main/java/com/qmth/sop/business/service/TBDingAddService.java

@@ -19,9 +19,10 @@ public interface TBDingAddService extends IService<TBDingAdd> {
      * 查询可选的sop列表
      *
      * @param serviceId 服务单元id
+     * @param userId    追加工时人的id
      * @return 可选sop列表
      */
-    CanChooseSopResult findCanChooseSopResultList(Long serviceId);
+    CanChooseSopResult findCanChooseSopResultList(Long serviceId, Long userId);
 
     /**
      * 工时增加提交

+ 3 - 6
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingAddServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.sop.business.bean.params.DingAddParam;
 import com.qmth.sop.business.bean.result.CanChooseSopResult;
-import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBCrmDetail;
 import com.qmth.sop.business.entity.TBDingAdd;
 import com.qmth.sop.business.entity.TBUserArchivesAllocation;
@@ -15,7 +14,6 @@ import com.qmth.sop.business.service.TBUserArchivesAllocationService;
 import com.qmth.sop.business.service.TBUserArchivesService;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.SopRoleTypeEnum;
-import com.qmth.sop.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -47,10 +45,9 @@ public class TBDingAddServiceImpl extends ServiceImpl<TBDingAddMapper, TBDingAdd
     private TBCrmDetailService tbCrmDetailService;
 
     @Override
-    public CanChooseSopResult findCanChooseSopResultList(Long serviceId) {
+    public CanChooseSopResult findCanChooseSopResultList(Long serviceId, Long userId) {
         CanChooseSopResult result = new CanChooseSopResult();
-        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        boolean containsRegionCoordinator = tbUserArchivesService.containsRegionCoordinator(requestUser.getId());
+        boolean containsRegionCoordinator = tbUserArchivesService.containsRegionCoordinator(userId);
         if (containsRegionCoordinator) {
             result.setNeedChoose(false);
         } else {
@@ -58,7 +55,7 @@ public class TBDingAddServiceImpl extends ServiceImpl<TBDingAddMapper, TBDingAdd
             List<Long> crmDetailIdList = tbUserArchivesAllocationService.list(
                             new QueryWrapper<TBUserArchivesAllocation>().lambda().select(TBUserArchivesAllocation::getCrmDetailId)
                                     .eq(TBUserArchivesAllocation::getServiceId, serviceId)
-                                    .eq(TBUserArchivesAllocation::getUserId, requestUser.getId()).ne(TBUserArchivesAllocation::getSopRoleType, SopRoleTypeEnum.REGION_COORDINATOR)).stream()
+                                    .eq(TBUserArchivesAllocation::getUserId, userId).ne(TBUserArchivesAllocation::getSopRoleType, SopRoleTypeEnum.REGION_COORDINATOR)).stream()
                     .map(TBUserArchivesAllocation::getCrmDetailId).distinct().collect(Collectors.toList());
 
             if (CollectionUtils.isNotEmpty(crmDetailIdList)) {

+ 6 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticByCrmServiceImpl.java

@@ -113,8 +113,12 @@ public class TBDingStatisticByCrmServiceImpl extends ServiceImpl<TBDingStatistic
             List<TBDingAdd> dingAddList = dingAddDatasource.stream().filter(e -> sopNoList.contains(e.getSopNo())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(dingAddList)) {
                 for (TBDingAdd tbDingAdd : dingAddList) {
-                    addDays = addDays.add(tbDingAdd.getAddDays());
-                    addHours = addHours.add(tbDingAdd.getAddHours());
+                    if (Objects.nonNull(tbDingAdd.getAddDays())){
+                        addDays = addDays.add(tbDingAdd.getAddDays());
+                    }
+                    if (Objects.nonNull(tbDingAdd.getAddHours())){
+                        addHours = addHours.add(tbDingAdd.getAddHours());
+                    }
                 }
                 tbDingStatisticByCrm.setAddDays(addDays);
                 tbDingStatisticByCrm.setAddHours(addHours);

+ 7 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticByCustomServiceImpl.java

@@ -18,6 +18,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -105,8 +106,12 @@ public class TBDingStatisticByCustomServiceImpl extends ServiceImpl<TBDingStatis
                     List<TBDingAdd> dingAddList = dingAddDatasource.stream().filter(e -> sopNoList.contains(e.getSopNo())).collect(Collectors.toList());
                     if (CollectionUtils.isNotEmpty(dingAddList)) {
                         for (TBDingAdd tbDingAdd : dingAddList) {
-                            addDays = addDays.add(tbDingAdd.getAddDays());
-                            addHours = addHours.add(tbDingAdd.getAddHours());
+                            if (Objects.nonNull(tbDingAdd.getAddDays())){
+                                addDays = addDays.add(tbDingAdd.getAddDays());
+                            }
+                            if (Objects.nonNull(tbDingAdd.getAddHours())){
+                                addHours = addHours.add(tbDingAdd.getAddHours());
+                            }
                         }
                         tbDingStatisticByCustom.setAddDays(addDays);
                         tbDingStatisticByCustom.setAddHours(addHours);

+ 18 - 9
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticByPersonServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +47,8 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
                 int weekends = 0;
                 int legalHolidays = 0;
                 BigDecimal workHours = new BigDecimal(0);
+                BigDecimal addDays = new BigDecimal(0);
+                BigDecimal addHours = new BigDecimal(0);
                 BigDecimal workDays;
                 int violationDays = 0;
 
@@ -58,9 +61,9 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
                     workHours = workHours.add(tbDingStatistic.getWorkHours());
                     violationDays = violationDays + tbDingStatistic.getViolationDays();
                 }
-                workDays = BigDecimal.valueOf(actualDays);
                 TBDingStatisticByPerson tbDingStatisticByPerson = new TBDingStatisticByPerson();
                 tbDingStatisticByPerson.setServiceId(serviceId);
+                tbDingStatisticByPerson.setUserId(tbDingStatisticList.get(0).getUserId());
                 tbDingStatisticByPerson.setServiceName(serviceName);
                 tbDingStatisticByPerson.setSupplierName(tbDingStatisticList.get(0).getSupplierName());
                 tbDingStatisticByPerson.setUserInfo(
@@ -69,21 +72,27 @@ public class TBDingStatisticByPersonServiceImpl extends ServiceImpl<TBDingStatis
                 tbDingStatisticByPerson.setWeekdays(weekdays);
                 tbDingStatisticByPerson.setWeekends(weekends);
                 tbDingStatisticByPerson.setLegalHolidays(legalHolidays);
-
+                tbDingStatisticByPerson.setWorkDays(BigDecimal.valueOf(actualDays));
+                tbDingStatisticByPerson.setWorkHours(workHours);
                 tbDingStatisticByPerson.setViolationDays(violationDays);
 
                 // 处理工时增加
                 List<TBDingAdd> dingAddList = dingAddDatasource.stream().filter(e -> serviceId.equals(e.getServiceId()) && userId.equals(e.getUserId())).limit(1)
                         .collect(Collectors.toList());
                 if (CollectionUtils.isNotEmpty(dingAddList)) {
-                    TBDingAdd dingAdd = dingAddList.get(0);
-                    tbDingStatisticByPerson.setAddDays(dingAdd.getAddDays());
-                    tbDingStatisticByPerson.setAddHours(dingAdd.getAddHours());
-                    workDays = workDays.add(dingAdd.getAddDays());
-                    workHours = workHours.add(dingAdd.getAddHours());
+                    for (TBDingAdd tbDingAdd : dingAddList) {
+                        if (Objects.nonNull(tbDingAdd.getAddDays())){
+                            addDays = addDays.add(tbDingAdd.getAddDays());
+                        }
+                        if (Objects.nonNull(tbDingAdd.getAddHours())){
+                            addHours = addHours.add(tbDingAdd.getAddHours());
+                        }
+                    }
+                    tbDingStatisticByPerson.setAddDays(addDays);
+                    tbDingStatisticByPerson.setAddHours(addHours);
+                    tbDingStatisticByPerson.setWorkDays(tbDingStatisticByPerson.getWorkDays().add(addDays));
+                    tbDingStatisticByPerson.setWorkHours(workHours.add(addHours));
                 }
-                tbDingStatisticByPerson.setWorkDays(workDays);
-                tbDingStatisticByPerson.setWorkHours(workHours);
                 result.add(tbDingStatisticByPerson);
             }
         }

+ 7 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticBySopServiceImpl.java

@@ -22,6 +22,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -93,8 +94,12 @@ public class TBDingStatisticBySopServiceImpl extends ServiceImpl<TBDingStatistic
             List<TBDingAdd> dingAddList = datasourceAdd.stream().filter(e -> sopNo.equals(e.getSopNo())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(dingAddList)) {
                 for (TBDingAdd tbDingAdd : dingAddList) {
-                    addDays = addDays.add(tbDingAdd.getAddDays());
-                    addHours = addHours.add(tbDingAdd.getAddHours());
+                    if (Objects.nonNull(tbDingAdd.getAddDays())){
+                        addDays = addDays.add(tbDingAdd.getAddDays());
+                    }
+                    if (Objects.nonNull(tbDingAdd.getAddHours())){
+                        addHours = addHours.add(tbDingAdd.getAddHours());
+                    }
                 }
                 tbDingStatisticBySop.setAddDays(addDays);
                 tbDingStatisticBySop.setAddHours(addHours);

+ 7 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticBySupplierServiceImpl.java

@@ -22,6 +22,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -95,8 +96,12 @@ public class TBDingStatisticBySupplierServiceImpl extends ServiceImpl<TBDingStat
                         .collect(Collectors.toList());
                 if (CollectionUtils.isNotEmpty(dingAddList)) {
                     for (TBDingAdd tbDingAdd : dingAddList) {
-                        addDays = addDays.add(tbDingAdd.getAddDays());
-                        addHours = addHours.add(tbDingAdd.getAddHours());
+                        if (Objects.nonNull(tbDingAdd.getAddDays())){
+                            addDays = addDays.add(tbDingAdd.getAddDays());
+                        }
+                        if (Objects.nonNull(tbDingAdd.getAddHours())){
+                            addHours = addHours.add(tbDingAdd.getAddHours());
+                        }
                     }
                     tbDingStatisticBySupplier.setAddDays(addDays);
                     tbDingStatisticBySupplier.setAddHours(addHours);

+ 3 - 0
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -61,3 +61,6 @@ INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, e
 INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('2121', '增加工时-提交', '/api/admin/tb/ding/add/submit', 'URL', '29', '4', 'AUTH', '1', '1', '0');
 INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, related, enable, default_auth, front_display) VALUES ('2122', '添加工时', 'AddDing', 'LINK', '29', '3', 'AUTH', '2120,2121', '1', '0', '1');
 
+-- 2024-11-07
+ALTER TABLE t_b_ding_statistic_by_person
+    ADD COLUMN user_id BIGINT NULL COMMENT '用户id' AFTER service_name;

+ 9 - 5
sop-business/src/main/resources/mapper/TBDingStatisticByPersonMapper.xml

@@ -9,6 +9,8 @@
             resultType="com.qmth.sop.business.bean.dto.DingStatisticByPersonDto">
         SELECT
             service_name AS serviceName,
+            service_id AS serviceId,
+            user_id AS userId,
             user_info AS userInfo,
             supplier_name AS supplierName,
             actual_days AS actualDays,
@@ -31,13 +33,15 @@
     <select id="findStatisticByPersonPage"
             resultType="com.qmth.sop.business.bean.dto.DingStatisticByPersonDto">
         SELECT
-            service_name as serviceName,
-            user_info as userInfo,
-            supplier_name as supplierName,
-            actual_days as actualDays,
+            service_name AS serviceName,
+            service_id AS serviceId,
+            user_id AS userId,
+            user_info AS userInfo,
+            supplier_name AS supplierName,
+            actual_days AS actualDays,
             weekdays,
             weekends,
-            legal_holidays as legalHolidays,
+            legal_holidays AS legalHolidays,
             add_days AS addDays,
             add_hours AS addHours,
             work_days AS workDays,

+ 2 - 2
sop-task/src/main/java/com/qmth/sop/task/start/StartRunning.java

@@ -90,8 +90,8 @@ public class StartRunning implements CommandLineRunner {
         Map<Object,Object> dingStatisticMap = new HashMap<>();
         dingStatisticMap.put(SystemConstant.NAME, DingStatisticJob.class.getName());
         quartzService.deleteJob(JobEnum.DING_STATISTIC.name(), JobEnum.DING_STATISTIC_GROUP.name());
-        quartzService.addJob(DingStatisticJob.class, JobEnum.DING_STATISTIC.name(), JobEnum.DING_STATISTIC_GROUP.name(), "0 0 2 * * ?", dingStatisticMap);
-//        quartzService.addJob(DingStatisticJob.class, JobEnum.DING_STATISTIC.name(), JobEnum.DING_STATISTIC_GROUP.name(), "0 0/1 * * * ?", dingStatisticMap);
+//        quartzService.addJob(DingStatisticJob.class, JobEnum.DING_STATISTIC.name(), JobEnum.DING_STATISTIC_GROUP.name(), "0 0 2 * * ?", dingStatisticMap);
+        quartzService.addJob(DingStatisticJob.class, JobEnum.DING_STATISTIC.name(), JobEnum.DING_STATISTIC_GROUP.name(), "0 0/1 * * * ?", dingStatisticMap);
         log.info("考勤统计定时任务 end");
 
         log.info("服务器启动时执行 end");