瀏覽代碼

fix: 考勤打卡表新增字段打卡年份

caozixuan 1 年之前
父節點
當前提交
75a59f20a5

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBDing.java

@@ -56,6 +56,9 @@ public class TBDing extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long taskId;
 
+    @ApiModelProperty(value = "签到年份")
+    private String signYear;
+
     @ApiModelProperty(value = "签到日期")
     private String signDate;
 
@@ -182,6 +185,14 @@ public class TBDing extends BaseEntity implements Serializable {
         this.taskId = taskId;
     }
 
+    public String getSignYear() {
+        return signYear;
+    }
+
+    public void setSignYear(String signYear) {
+        this.signYear = signYear;
+    }
+
     public String getSignDate() {
         return signDate;
     }

+ 2 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBDingService.java

@@ -96,4 +96,6 @@ public interface TBDingService extends IService<TBDing> {
      * @return 剩余补卡天数
      */
     int findRemainCount(Long userId, String sopNo);
+
+    void autoAddDingRecord();
 }

+ 4 - 3
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -267,21 +267,22 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
                 tbDingService.updateById(tbDing);
             } else {
                 TBCrm tbCrm = tbCrmService.getOne(new QueryWrapper<TBCrm>().lambda().eq(TBCrm::getCrmNo, tbDingApply.getCrmNo()));
-                Optional.ofNullable(tbCrm).orElseThrow(() -> ExceptionResultEnum.CRM_NO_NO_DATA.exception());
+                Optional.ofNullable(tbCrm).orElseThrow(ExceptionResultEnum.CRM_NO_NO_DATA::exception);
 
                 SysUser sysUser = sysUserService.getById(tbDingApply.getCreateId());
-                Optional.ofNullable(sysUser).orElseThrow(() -> ExceptionResultEnum.USER_NO_EXISTS.exception());
+                Optional.ofNullable(sysUser).orElseThrow(ExceptionResultEnum.USER_NO_EXISTS::exception);
 
                 List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserId(sysUser.getId());
                 if (CollectionUtils.isEmpty(sysRoleList)) {
                     throw ExceptionResultEnum.ERROR.exception("用户角色不存在");
                 }
                 TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.getOne(new QueryWrapper<TFCustomFlowEntity>().lambda().eq(TFCustomFlowEntity::getCode, tbDingApply.getSopNo()));
-                Optional.ofNullable(tfCustomFlowEntity).orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
+                Optional.ofNullable(tfCustomFlowEntity).orElseThrow(ExceptionResultEnum.FLOW_ENTITY_NO_DATA::exception);
 
                 TBUserArchives tbUserArchives = tbUserArchivesService.getOne(new QueryWrapper<TBUserArchives>().lambda().eq(TBUserArchives::getMobileNumber, sysUser.getMobileNumber()));
                 tbDing = new TBDing(tbDingApply.getSopNo(), tbDingApply.getCrmNo(), tbCrm.getServiceId(), tbUserArchives.getId(), sysRoleList.get(0).getType(), sysUser.getId(), tfCustomFlowEntity.getFlowId());
                 tbDing.setSignDate(DateFormatUtils.format(tbDingApply.getApplyTime(), SystemConstant.DEFAULT_DATE_DAY_PATTERN));
+                tbDing.setSignYear(DateFormatUtils.format(tbDingApply.getApplyTime(), SystemConstant.DEFAULT_DATE_YEAR_PATTERN));
                 if (tbDingApply.getType() == InOutTypeEnum.IN) {
                     tbDing.setSignInTime(tbDingApply.getApplyTime());
                     tbDing.setSignInAddress("(补卡)");

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

@@ -50,8 +50,6 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
     @Resource
     private SysDingDateService sysDingDateService;
     @Resource
-    private TBSopInfoService tbSopInfoService;
-    @Resource
     private FileStoreUtil fileStoreUtil;
     @Resource
     private FaceApiUtils faceApiUtils;
@@ -132,6 +130,8 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
             List<DingFormResult> formDingList = new ArrayList<>();
             for (TBDing tbDing : tbDingList) {
                 String signDate = tbDing.getSignDate();
+                String signYear = tbDing.getSignYear();
+
                 Long signInTime = tbDing.getSignInTime();
                 String signInAddress = tbDing.getSignInAddress();
                 String axisInX = tbDing.getAxisInX();
@@ -177,6 +177,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 DingFormResult formResult = new DingFormResult();
                 formResult.setDingId(tbDing.getId());
                 formResult.setSignDate(signDate);
+                formResult.setYear(signYear);
                 formResult.setSignInInfo(signInInfo);
                 formResult.setSignOutInfo(signOutInfo);
                 formDingList.add(formResult);
@@ -198,7 +199,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 String signDate = date.substring(dayStart);
 
                 List<DingFormResult> dingFormResultList = formDingList.stream()
-                        .filter(e -> signDate.equals(e.getSignDate()))
+                        .filter(e -> year.equals(e.getYear()) && signDate.equals(e.getSignDate()))
                         .collect(Collectors.toList());
 
                 DingFormResult dingFormResult = new DingFormResult();
@@ -261,8 +262,6 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
                 if (CollectionUtils.isNotEmpty(applyOutRecord)) {
                     dingFormResult.getSignOutInfo().setStatus(DingStatusEnum.RE_SIGN_ING);
                 }
-
-                dingFormResult.setYear(year);
                 formList.add(dingFormResult);
             }
         }
@@ -333,6 +332,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         Long flowId = sopCrmInfo.getFlowId();
         RoleTypeEnum roleType = sysRoleService.findRoleTypeByUserCrm(userId, crmNo);
         String signDate = DateFormatUtils.format(signTime, SystemConstant.DEFAULT_DATE_DAY_PATTERN);
+        String signYear = DateFormatUtils.format(signTime, SystemConstant.DEFAULT_DATE_YEAR_PATTERN);
         String currentDayStr = DateFormatUtils.format(System.currentTimeMillis(), SystemConstant.DEFAULT_DATE_DAY_PATTERN);
         if (!currentDayStr.equals(signDate)) {
             throw ExceptionResultEnum.ERROR.exception("打卡失败,时间异常");
@@ -375,6 +375,7 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
             tbDing.setUserId(userId);
             tbDing.setFlowId(flowId);
             tbDing.setSignDate(signDate);
+            tbDing.setSignYear(signYear);
             tbDing.setDateType(dateType);
             switch (signType) {
                 case IN: // 签到打卡
@@ -539,4 +540,9 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         int applyCount = this.baseMapper.findDingExceptionApplyCount(userId, sopNo);
         return reissueCardCount != 0 ? reissueCardCount - applyCount : 0;
     }
+
+    @Override
+    public void autoAddDingRecord() {
+
+    }
 }

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

@@ -375,3 +375,7 @@ ALTER TABLE t_b_crm
 
 DELETE FROM sys_privilege WHERE (id = '1033');
 UPDATE sys_privilege SET related = '1032,1035,1036,1037,1038' WHERE (id = '51');
+
+-- 2023-11-18
+ALTER TABLE t_b_ding
+    ADD COLUMN sign_year VARCHAR(20) NOT NULL COMMENT '签到年份' AFTER task_id;

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

@@ -82,6 +82,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_YEAR_PATTERN = "YYYY年";
     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";

+ 5 - 3
sop-common/src/main/java/com/qmth/sop/common/util/DateDisposeUtils.java

@@ -217,8 +217,10 @@ public class DateDisposeUtils extends DateUtils {
 //        System.out.println(parseDate(d6).getTime());
         long l1 = 1699613541562L;
         long l2 = 1699863530000L;
-        System.out.println(DateFormatUtils.format(l1, SystemConstant.DEFAULT_DATE_PATTERN));
-        System.out.println(DateFormatUtils.format(l2, SystemConstant.DEFAULT_DATE_PATTERN));
-        System.out.println(getDaysBetween(l1, l2, SystemConstant.DEFAULT_DATE_YMD_S_PATTERN));
+//        System.out.println(DateFormatUtils.format(l1, SystemConstant.DEFAULT_DATE_PATTERN));
+//        System.out.println(DateFormatUtils.format(l2, SystemConstant.DEFAULT_DATE_PATTERN));
+//        System.out.println(getDaysBetween(l1, l2, SystemConstant.DEFAULT_DATE_YMD_S_PATTERN));
+        String signDate = DateFormatUtils.format(l1, SystemConstant.DEFAULT_DATE_YEAR_PATTERN);
+        System.out.println(signDate);
     }
 }