Przeglądaj źródła

add:工时管理

caozixuan 1 rok temu
rodzic
commit
350decb800

+ 9 - 0
sop-api/src/main/java/com/qmth/sop/server/api/TBDingSubmitController.java

@@ -122,6 +122,15 @@ public class TBDingSubmitController {
         return ResultUtil.ok();
     }
 
+    @ApiOperation(value = "考勤提交-同意撤回")
+    @RequestMapping(value = "/agree_withdraw", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLog
+    public Result agreeWithdraw(@ApiParam(value = "考勤提交记录id", required = true) @RequestParam() String dingSubmitId) {
+        tbDingSubmitService.agreeWithdraw(SystemConstant.convertIdToLong(dingSubmitId));
+        return ResultUtil.ok();
+    }
+
 
     @ApiOperation(value = "考勤提交-批量导出")
     @RequestMapping(value = "/export", method = RequestMethod.POST)

+ 22 - 10
sop-business/src/main/java/com/qmth/sop/business/bean/result/TBDingSubmitQueryResult.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 com.qmth.sop.common.enums.DingSubmitStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -23,7 +25,9 @@ import java.io.Serializable;
 @HeadStyle(fillForegroundColor = 11)
 @HeadFontStyle(color = 1)
 public class TBDingSubmitQueryResult implements Serializable {
-
+    @ApiModelProperty(value = "考勤提交记录id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
 
     @ApiModelProperty(value = "服务单元")
     @ExcelProperty(value = "服务单元")
@@ -42,10 +46,10 @@ public class TBDingSubmitQueryResult implements Serializable {
     private String city;
     @ApiModelProperty(value = "项目开始时间")
     @ExcelProperty(value = "项目开始时间")
-    private String examStartTime;
+    private Long examStartTime;
     @ApiModelProperty(value = "项目结束时间")
     @ExcelProperty(value = "项目结束时间")
-    private String examEndTime;
+    private Long examEndTime;
     @ApiModelProperty(value = "姓名")
     @ExcelProperty(value = "姓名")
     private String userName;
@@ -81,11 +85,19 @@ public class TBDingSubmitQueryResult implements Serializable {
     private String submitter;
     @ApiModelProperty(value = "提交时间")
     @ExcelProperty(value = "提交时间")
-    private String submissionTime;
+    private Long submissionTime;
     @ApiModelProperty(value = "状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
     @ExcelProperty(value = "提交状态")
     private DingSubmitStatusEnum status;
 
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
     public String getService() {
         return service;
     }
@@ -126,19 +138,19 @@ public class TBDingSubmitQueryResult implements Serializable {
         this.city = city;
     }
 
-    public String getExamStartTime() {
+    public Long getExamStartTime() {
         return examStartTime;
     }
 
-    public void setExamStartTime(String examStartTime) {
+    public void setExamStartTime(Long examStartTime) {
         this.examStartTime = examStartTime;
     }
 
-    public String getExamEndTime() {
+    public Long getExamEndTime() {
         return examEndTime;
     }
 
-    public void setExamEndTime(String examEndTime) {
+    public void setExamEndTime(Long examEndTime) {
         this.examEndTime = examEndTime;
     }
 
@@ -230,11 +242,11 @@ public class TBDingSubmitQueryResult implements Serializable {
         this.submitter = submitter;
     }
 
-    public String getSubmissionTime() {
+    public Long getSubmissionTime() {
         return submissionTime;
     }
 
-    public void setSubmissionTime(String submissionTime) {
+    public void setSubmissionTime(Long submissionTime) {
         this.submissionTime = submissionTime;
     }
 

+ 7 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBDingSubmitService.java

@@ -81,6 +81,13 @@ public interface TBDingSubmitService extends IService<TBDingSubmit> {
      */
     void cancelWithdraw(DingSubmitParam dingSubmitParam);
 
+    /**
+     * 同意考勤撤回
+     *
+     * @param dingSubmitId 考勤提交记录id
+     */
+    void agreeWithdraw(Long dingSubmitId);
+
     /**
      * 查询考勤提交导出集合
      *

+ 16 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingSubmitServiceImpl.java

@@ -25,6 +25,7 @@ import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -258,6 +259,21 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
         this.updateById(tbDingSubmit);
     }
 
+    @Transactional
+    @Override
+    public void agreeWithdraw(Long dingSubmitId) {
+        TBDingSubmit tbDingSubmit = this.getById(dingSubmitId);
+        if (Objects.isNull(tbDingSubmit)){
+            throw ExceptionResultEnum.ERROR.exception("未找到工时统计记录");
+        }
+        DingSubmitStatusEnum status = tbDingSubmit.getSubmitStatus();
+        if (!DingSubmitStatusEnum.APPLY_WITHDRAW.equals(status)){
+            throw ExceptionResultEnum.ERROR.exception("只有[申请撤回]状态的可以同意");
+        }
+        tbDingSubmit.setSubmitStatus(DingSubmitStatusEnum.AGREE_WITHDRAW);
+        this.updateById(tbDingSubmit);
+    }
+
     @Override
     public List<DingSubmitExportDto> findDingSubmitExportList(Long serviceUnitId, String dingSubmitStatusDesc, Long submitUserId, String archivesName, Long supplierId, String customName, String sopNo, Integer violationHoursLimit, Integer dingExceptionLimit, Integer remainLimit, Integer exceptionLimit, Long requestUserId) {
         List<DingSubmitStatusEnum> dingSubmitStatusEnumList = new ArrayList<>();

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

@@ -307,3 +307,7 @@ ALTER TABLE t_b_ding_history
 -- 2023-09-18
 INSERT INTO sys_privilege(id, name, url, type, parent_id, sequence, property, related, enable, default_auth, front_display) VALUES (2048, '考勤打卡-查询进行中的sop', '/api/admin/tb/ding/ding_find_running_sop', 'URL', 26, 4, 'SYS', NULL, 1, 1, 0);
 INSERT INTO sys_privilege(id, name, url, type, parent_id, sequence, property, related, enable, default_auth, front_display) VALUES (2049, '考勤打卡-查询所有sop', '/api/admin/tb/ding/ding_find_all_sop', 'URL', 26, 5, 'SYS', NULL, 1, 1, 0);
+
+-- 2023-09-22
+INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('2050', '考勤提交-同意撤回', '/api/admin/tb/ding/submit/agree_withdraw', 'URL', '28', '7', 'AUTH', '1', '1', '0');
+UPDATE sys_privilege SET related = '2050' WHERE (id = '152');

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

@@ -5,6 +5,7 @@
         <select id="query" resultType="com.qmth.sop.business.bean.result.TBDingSubmitQueryResult">
 
             SELECT
+            d.id,
             bs.NAME service,
             d.sop_no,
             c.NAME custom,
@@ -263,7 +264,7 @@
                 and a.status = #{status}
             </if>
         </where>
-        order by d.sign_date
+        order by a.sign_date
     </select>
 
     <select id="attendanceCount" resultType="com.qmth.sop.business.bean.result.TBDingAttendanceCountResult">