Browse Source

add. 区协补卡申请

caozixuan 9 tháng trước cách đây
mục cha
commit
22e632583c

+ 9 - 6
sop-api/src/main/java/com/qmth/sop/server/api/TBDingController.java

@@ -206,12 +206,8 @@ public class TBDingController {
     @ApiOperation(value = "考勤结果统计")
     @RequestMapping(value = "/ding_statistic", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = DingStatisticResult.class) })
-    public Result findDingStatistic(@ApiParam(value = "服务单元id", required = false) @RequestParam(required = false) Long serviceId, @ApiParam(value = "sop单号") @RequestParam(required = false) String sopNo,
+    public Result findDingStatistic(@ApiParam(value = "服务单元id", required = true) @RequestParam Long serviceId, @ApiParam(value = "sop单号") @RequestParam(required = false) String sopNo,
             @ApiParam(value = "打卡人id", required = true) @RequestParam String userId) {
-        // TODO: 2024/9/5 测试用
-        if (!SystemConstant.longNotNull(serviceId)){
-            serviceId = 1830811198218076162L;
-        }
         return ResultUtil.ok(tBDingService.findDingStatistic(serviceId, sopNo, SystemConstant.convertIdToLong(userId)));
     }
 
@@ -249,6 +245,10 @@ public class TBDingController {
                 if (Objects.isNull(service)) {
                     throw ExceptionResultEnum.ERROR.exception("未找到服务单元");
                 }
+                if (ServiceStatusEnum.FINISH.equals(service.getStatus()) || ServiceStatusEnum.CANCEL.equals(service.getStatus())){
+                    // 已关闭和已作废的服务单元不显示打卡信息
+                    continue;
+                }
                 cell.setServiceUnitId(serviceUnitId);
                 cell.setServiceUnitName(service.getName());
 
@@ -310,7 +310,10 @@ public class TBDingController {
             if (Objects.isNull(service)) {
                 throw ExceptionResultEnum.ERROR.exception("未找到服务单元");
             }
-
+            if (ServiceStatusEnum.FINISH.equals(service.getStatus()) || ServiceStatusEnum.CANCEL.equals(service.getStatus())){
+                // 已关闭和已作废的服务单元不显示打卡信息
+                continue;
+            }
             cell.setServiceUnitId(serviceUnitId);
             cell.setServiceUnitName(service.getName());
             if (isCoordinator) {

+ 3 - 0
sop-business/src/main/java/com/qmth/sop/business/activiti/service/impl/ActivitiServiceImpl.java

@@ -1349,6 +1349,9 @@ public class ActivitiServiceImpl implements ActivitiService {
             flowTaskSmsResult = tfCustomFlowEntityService.getFlowTaskRemindSmsInfo(tfCustomFlowEntity.getCrmNo(),
                     userId);
         }
+        if (Objects.isNull(flowTaskSmsResult)){
+            return;
+        }
         Optional.ofNullable(flowTaskSmsResult).orElseThrow(() -> ExceptionResultEnum.USER_NO_EXISTS.exception());
 
         Map<String, Object> templateParam = new HashMap<>();

+ 1 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBDingStatisticService.java

@@ -36,6 +36,7 @@ public interface TBDingStatisticService extends IService<TBDingStatistic> {
      * @param sopNo          sopNo
      * @param userArchivesId 用户档案id
      */
+    @Deprecated
     void buildDingStatistic(String sopNo, Long userArchivesId);
 
     /**

+ 7 - 11
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -110,7 +110,14 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         TBDing tbDing = tbDingService.getById(tbDingApply.getDingId());
         String sopNo = Objects.nonNull(tbDing) ? tbDing.getSopNo() : tbDingApply.getSopNo();
+        if (sopNo.equals("undefined")){
+            // TODO: 2024/9/11 前端改
+            sopNo = null;
+        }
         String crmNo = Objects.nonNull(tbDing) ? tbDing.getCrmNo() : tbDingApply.getCrmNo();
+        if (!SystemConstant.strNotNull(crmNo)){
+            crmNo = "-1";
+        }
         Long serviceId = Objects.nonNull(tbDing) ? tbDing.getServiceId() : tbDingApply.getServiceId();
 
         int count = tbDingService.findRemainCount(sysUser.getId(), serviceId, sopNo);
@@ -147,8 +154,6 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
         if (!tbDingSubmitService.canUpdateDingSetting(serviceId, sopNo, sysUser.getId())) {
             throw ExceptionResultEnum.ERROR.exception("考勤已提交,不能申请补卡");
         }
-        TBUserArchives tbUserArchives = tbUserArchivesService.findByUserId(sysUser.getId());
-        tbDingStatisticService.buildDingStatistic(sopNo, tbUserArchives.getId());
         return tbDingApplyService.save(tbDingApply);
     }
 
@@ -384,15 +389,6 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
                 tbDingService.save(tbDing);
                 tbDingApply.setDingId(tbDing.getId());
             }
-
-            TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.findByCode(
-                    tbDingApply.getDingExceptionNo());
-            List<Task> taskList = taskService.createTaskQuery()
-                    .processInstanceId(String.valueOf(tfCustomFlowEntity.getFlowId())).list();
-            if (CollectionUtils.isEmpty(taskList)) {
-                TBUserArchives tbUserArchives = tbUserArchivesService.findByUserId(tbDingApply.getCreateId());
-                tbDingStatisticService.buildDingStatistic(tbDingApply.getSopNo(), tbUserArchives.getId());
-            }
         } else {
             TBUserArchives tbUserArchives = tbUserArchivesService.findByUserId(tbDingApply.getCreateId());
             tbDingStatisticService.buildDingStatistic(tbDingApply.getSopNo(), tbUserArchives.getId());

+ 5 - 6
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingServiceImpl.java

@@ -171,7 +171,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 if (signInTime == null || signInTime == 0) {
                     signInInfo.setStatus(DingStatusEnum.NO_SIGN);
                 } else {
-                    if (Objects.equals(sopNo, dingSopNo)) {
+                    if (isCoordinator || Objects.equals(sopNo, dingSopNo)) {
                         signInInfo.setStatus(DingStatusEnum.SIGN);
                     } else {
                         signInInfo.setStatus(DingStatusEnum.OTHER);
@@ -192,7 +192,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 if (signOutTime == null || signOutTime == 0) {
                     signOutInfo.setStatus(DingStatusEnum.NO_SIGN);
                 } else {
-                    if (Objects.equals(sopNo, dingSopNo)) {
+                    if (isCoordinator || Objects.equals(sopNo, dingSopNo)) {
                         signOutInfo.setStatus(DingStatusEnum.SIGN);
                     } else {
                         signOutInfo.setStatus(DingStatusEnum.OTHER);
@@ -598,7 +598,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
     @Override
     public DateFormDto buildSignDateFormBySop(String sopNo) {
         DateFormDto result = new DateFormDto();
-        List<String> dateList = new ArrayList<>();
+        List<String> dateList;
         long currentTime = System.currentTimeMillis();
         if (sopNo != null && sopNo.length() > 0) {
             TFFlowApprove tfFlowApprove = this.findFlowApproveBySopNo(sopNo);
@@ -618,8 +618,6 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 dateList = DateDisposeUtils.getDaysBetween(createTime, currentTime, SystemConstant.DEFAULT_DATE_YMD_S_PATTERN);
                 result.setSopIsEnd(false);
             }
-            dateList.sort(Collections.reverseOrder());
-            result.setDateFormList(dateList);
         } else {
             // 区协固定打卡时间
             RegionCoordinatorDingTimeDto dingTimeDto = this.findRegionCoordinatorDingTime();
@@ -630,8 +628,9 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
             Long endTime = dingTimeDto.getEndTime();
             dateList = DateDisposeUtils.getDaysBetween(startTime, Math.min(currentTime, endTime),
                     SystemConstant.DEFAULT_DATE_YMD_S_PATTERN);
-            result.setDateFormList(dateList);
         }
+        dateList.sort(Collections.reverseOrder());
+        result.setDateFormList(dateList);
         if (CollectionUtils.isNotEmpty(dateList)) {
             result.setEndDate(dateList.get(0));
         }

+ 4 - 2
sop-business/src/main/resources/mapper/TBCrmMapper.xml

@@ -216,7 +216,8 @@
         LEFT JOIN t_b_service tbs ON a.service_id = tbs.id
         LEFT JOIN sys_custom sc ON sc.id = a.custom_id
         <where>
-            and a.enable=1
+            AND a.enable=1
+            AND tbs.status != 'FINISH'
             <if test="serviceId != null and serviceId != ''">
                 and a.service_id = #{serviceId}
             </if>
@@ -416,7 +417,8 @@
         LEFT JOIN t_b_service tbs ON a.service_id = tbs.id
         LEFT JOIN sys_custom sc ON sc.id = a.custom_id
         <where>
-            and a.enable=1
+            AND a.enable=1
+            AND tbs.status != 'FINISH'
             <if test="serviceId != null and serviceId != ''">
                 and a.service_id = #{serviceId}
             </if>