ソースを参照

add:考勤统计

caozixuan 1 年間 前
コミット
f8654a1524

+ 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());

+ 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

+ 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";