ソースを参照

Merge remote-tracking branch 'origin/dev_v1.0.0' into dev_v1.0.0

wangliang 1 年間 前
コミット
6cbd0b9e29

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingFormResult.java

@@ -17,6 +17,9 @@ public class DingFormResult {
     @ApiModelProperty("签到日期")
     private String signDate;
 
+    @ApiModelProperty("年份")
+    private String year;
+
     @ApiModelProperty("签到信息")
     private DingInfoResult signInInfo;
 
@@ -39,6 +42,14 @@ public class DingFormResult {
         this.signDate = signDate;
     }
 
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
     public DingInfoResult getSignInInfo() {
         return signInInfo;
     }

+ 13 - 11
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingServiceImpl.java

@@ -22,7 +22,6 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.File;
@@ -174,24 +173,26 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
             String endDate = dateFormDto.getEndDate();
 
             for (String date : dateFormList) {
+                String year = date.substring(0, 4);
+                String signDate = date.substring(5);
+
                 List<DingFormResult> dingFormResultList = formDingList.stream()
-                        .filter(e -> date.equals(e.getSignDate()))
+                        .filter(e -> signDate.equals(e.getSignDate()))
                         .collect(Collectors.toList());
 
                 DingFormResult dingFormResult = new DingFormResult();
-                dingFormResult.setSignDate(date);
                 if (CollectionUtils.isNotEmpty(dingFormResultList)) {
                     // 有这一天的打卡记录
                     dingFormResult = dingFormResultList.get(0);
                     // 考勤异常天数增加
                     if (dingFormResult.getSignInInfo().getStatus().equals(DingStatusEnum.NO_SIGN)) {
-                        if (!endDate.equals(date)) {
+                        if (!endDate.equals(signDate)) {
                             exceptionCount++;
                             dingFormResult.getSignInInfo().setStatus(DingStatusEnum.RE_SIGN);
                         }
                     }
                     if (dingFormResult.getSignOutInfo().getStatus().equals(DingStatusEnum.NO_SIGN)) {
-                        if (!endDate.equals(date)) {
+                        if (!endDate.equals(signDate)) {
                             exceptionCount++;
                             dingFormResult.getSignOutInfo().setStatus(DingStatusEnum.RE_SIGN);
                         }
@@ -211,20 +212,21 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                     dingFormResult.setSignOutInfo(out);
                     exceptionCount = exceptionCount + 2;
                 }
+                dingFormResult.setYear(year);
                 formList.add(dingFormResult);
             }
         }
         SopCrmInfo sopCrmInfo = tbCrmService.findSopCrmInfoBySop(sopNo);
         Long serviceUnitId = sopCrmInfo.getServiceUnitId();
         DingElementResult dingElementResult = this.baseMapper.findDingResultByUserId(userId, serviceUnitId);
-        Integer reissueCardCount = dingElementResult!=null?dingElementResult.getReissueCardCount():0;
+        int reissueCardCount = dingElementResult != null ? dingElementResult.getReissueCardCount() : 0;
         int applyCount = this.baseMapper.findDingExceptionApplyCount(userId, sopNo);
 
         DingStatisticResult dingStatisticResult = new DingStatisticResult();
         dingStatisticResult.setDingFormList(formList);
         dingStatisticResult.setWorkDays(workCount);
         dingStatisticResult.setExceptionCount(exceptionCount);
-        dingStatisticResult.setRemainCount(reissueCardCount!=0?reissueCardCount - applyCount:0);
+        dingStatisticResult.setRemainCount(reissueCardCount != 0 ? reissueCardCount - applyCount : 0);
         return dingStatisticResult;
     }
 
@@ -300,7 +302,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         history.setCreateId(userId);
         tbDingHistoryService.save(history);
 
-        if (faceOpen && !facePass){
+        if (faceOpen && !facePass) {
             log.error("人脸识别不通过,score :" + score);
             throw ExceptionResultEnum.ERROR.exception("人脸识别不通过!");
         }
@@ -402,7 +404,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
     public List<TBDingSubmitQueryResult> query(SysUser account, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days) {
         Long userId = account.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
-        return this.baseMapper.query(serviceId, status, createId, userName, supplierId, custom, sopNo, days,dpr);
+        return this.baseMapper.query(serviceId, status, createId, userName, supplierId, custom, sopNo, days, dpr);
     }
 
     @Override
@@ -451,10 +453,10 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 Long currentTime = System.currentTimeMillis();
 
                 if (FlowStatusEnum.FINISH.equals(flowStatusEnum)) {
-                    dateList = DateDisposeUtils.getDaysBetween(createTime, updateTime, SystemConstant.DEFAULT_DATE_DAY_PATTERN);
+                    dateList = DateDisposeUtils.getDaysBetween(createTime, updateTime, SystemConstant.DEFAULT_DATE_YMD_S_PATTERN);
                     result.setSopIsEnd(true);
                 } else {
-                    dateList = DateDisposeUtils.getDaysBetween(createTime, currentTime, SystemConstant.DEFAULT_DATE_DAY_PATTERN);
+                    dateList = DateDisposeUtils.getDaysBetween(createTime, currentTime, SystemConstant.DEFAULT_DATE_YMD_S_PATTERN);
                     result.setSopIsEnd(false);
                 }
                 dateList.sort(Collections.reverseOrder());

+ 9 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBUserArchivesServiceImpl.java

@@ -54,6 +54,8 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
     private TBUserArchivesService tbUserArchivesService;
     @Resource
     private SequenceService sequenceService;
+    @Resource
+    private TBSopInfoService tbSopInfoService;
 
     @Override
     public IPage<UserArchivesResult> findUserArchivesPage(String city, Long supplierId, String archivesName, RoleTypeEnum roleType, Boolean authenticationStatus, Long archivesTimeStart, Long archivesTimeEnd, Integer remainValidDay, Integer pageNumber, Integer pageSize) throws Exception {
@@ -376,7 +378,13 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
                 if (validTime != null && currentTime < validTime) {
                     throw ExceptionResultEnum.ERROR.exception(String.format("[%s]的认证状态为有效,不能作废", userArchivesResult.getName()));
                 }
-                // 作废校验2 - 为空闲状态
+                // 作废校验2 - 没有进行中的SOP
+                List<SopInfoResult> sopInfoResultList = tbSopInfoService.findFlowByServiceId(null,userArchivesResult.getUserId());
+                if (CollectionUtils.isNotEmpty(sopInfoResultList)){
+                    throw ExceptionResultEnum.ERROR.exception("该用户存在正在进行的SOP不能作废");
+                }
+
+                // 作废校验3 - 为空闲状态
                 UserArchivesStatusEnum status = userArchivesResult.getStatus();
                 Long userId = userArchivesResult.getUserId();
                 boolean isCoordinator = sysUserRoleService.userContainsRoles(userId, RoleTypeEnum.REGION_COORDINATOR);

+ 2 - 1
sop-business/src/main/resources/mapper/TBDeviceInOutMapper.xml

@@ -101,7 +101,8 @@
             tbdio.serial_no AS serialNo,
             tbdio.base_photo_path AS basePhotoPath,
             ss.id AS supplierId,
-            ss.name AS supplierName
+            ss.name AS supplierName,
+            sd.scan_count AS scanCount
         FROM
             t_b_device_in_out tbdio
                 LEFT JOIN

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

@@ -185,11 +185,11 @@
 
     <select id="count" resultType="com.qmth.sop.business.bean.result.TBDingCountResult">
         SELECT
-        sum( d.id ) total,
-        SUM( CASE WHEN d.submit_status='AGREE_DING' THEN 1 ELSE 0 END ) submitted,
-        SUM( CASE WHEN d.submit_status!='AGREE_DING' THEN 1 ELSE 0 END ) un_submitted,
-        SUM( CASE WHEN d.submit_status='AGREE_DING' THEN d.actual_days ELSE 0 END ) all_days,
-        SUM( CASE WHEN d.submit_status='AGREE_DING'  THEN d.work_hours ELSE 0 END ) all_hours
+        count( d.id ) total,
+        SUM( CASE WHEN d.submit_status='ALREADY_SUBMIT' THEN 1 ELSE 0 END ) submitted,
+        SUM( CASE WHEN d.submit_status='WILL_SUBMIT' THEN 1 ELSE 0 END ) un_submitted,
+        SUM( CASE WHEN d.submit_status='ALREADY_SUBMIT' THEN d.actual_days ELSE 0 END ) all_days,
+        SUM( CASE WHEN d.submit_status='ALREADY_SUBMIT'  THEN d.work_hours ELSE 0 END ) all_hours
         FROM
         t_b_ding_submit d
         LEFT JOIN t_b_user_archives ua ON d.user_archives_id = ua.id

+ 1 - 0
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -81,6 +81,7 @@ public class SystemConstant {
     public static final String DEFAULT_DATE_CODE_PATTERN = "yyyyMMdd";
     public static final String DEFAULT_DATE_ATTACHMENT_PATTERN = "/yyyy/MM/dd";
     public static final String DEFAULT_DATE_DAY_PATTERN = "MM月dd日";
+    public static final String DEFAULT_DATE_YMD_S_PATTERN = "yyyy年MM月dd日";
     public static final String JSON_PREFIX = ".json";
     public static final String XLSX_PREFIX = ".xlsx";
     public static final String XLS_PREFIX = "xls";