瀏覽代碼

考勤说明条H5支持

chenjun 1 年之前
父節點
當前提交
c7fc61a81e

+ 3 - 0
zjugis-business/src/main/java/com/zjugis/business/converter/attendancenote/AttendanceNoteConvert.java

@@ -1,6 +1,7 @@
 package com.zjugis.business.converter.attendancenote;
 
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteCreateReqVO;
+import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteRespVO;
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteUpdateReqVO;
 import com.zjugis.business.flow.attendancenote.entity.AttendanceNoteDO;
 import org.mapstruct.Mapper;
@@ -22,4 +23,6 @@ public interface AttendanceNoteConvert {
     AttendanceNoteDO convert(AttendanceNoteUpdateReqVO reqVO);
 
     AttendanceNoteUpdateReqVO convert(AttendanceNoteDO entity);
+
+    AttendanceNoteRespVO convert01(AttendanceNoteDO reqVO);
 }

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/converter/attendancenote/AttendanceNoteTimeConvert.java

@@ -23,4 +23,6 @@ public interface AttendanceNoteTimeConvert {
     List<AttendanceNoteTimeDO> convertList(List<AttendanceNoteTimeCreateReqVO> list);
 
     List<AttendanceNoteTimeDO> convertList01(List<AttendanceNoteTimeUpdateReqVO> list);
+
+    List<AttendanceNoteTimeCreateReqVO> convertList02(List<AttendanceNoteTimeDO> list);
 }

+ 15 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/attendancenote/controller/AttendanceNoteController.java

@@ -1,8 +1,10 @@
 package com.zjugis.business.flow.attendancenote.controller;
 
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteCreateReqVO;
+import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteRespVO;
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteUpdateReqVO;
 import com.zjugis.business.flow.attendancenote.service.AttendanceNoteService;
+import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.workflow.model.BaseController;
 import com.zjugis.framework.workflow.workflow.WorkFlow;
 import io.swagger.v3.oas.annotations.Operation;
@@ -13,7 +15,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -38,6 +39,19 @@ public class AttendanceNoteController extends BaseController {
         return resultPage(map);
     }
 
+    @WorkFlow(isReceiveMaterial = true, isReceiveOpinion = true)
+    @ResponseBody
+    @GetMapping("/mobileIndex")
+    public String mobileIndex(String activityTemplateId, String flowInstanceId, String userId) throws Exception {
+        Map<String, Object> map = attendanceNoteService.getFormParams(flowInstanceId, userId);
+        return resultPage(map);
+    }
+
+    @GetMapping("/mobileAdd")
+    public CommonResult<AttendanceNoteRespVO> mobileAdd(String activityTemplateId, String flowInstanceId, String userId) {
+        return CommonResult.success(attendanceNoteService.flowAdd(flowInstanceId, userId));
+    }
+
     @PostMapping("/create")
     @Operation(summary = "创建考勤说明条")
     public String createLeave(@Valid @RequestBody AttendanceNoteCreateReqVO createReqVO) {

+ 34 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/attendancenote/controller/vo/AttendanceNoteRespVO.java

@@ -0,0 +1,34 @@
+package com.zjugis.business.flow.attendancenote.controller.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/5/10 13:58
+ * @Version 1.0
+ */
+@Schema(description = "工作流程 - 考勤说明条流程 respVO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AttendanceNoteRespVO extends AttendanceNoteBaseVO {
+
+    @Schema(description = "主键ID")
+    private String id;
+
+    @Schema(description = "申请时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @Schema(description = "明细数据考勤说明条时间")
+    private List<AttendanceNoteTimeCreateReqVO> attendanceNoteTimeCreateList;
+}

+ 5 - 2
zjugis-business/src/main/java/com/zjugis/business/flow/attendancenote/controller/vo/AttendanceNoteTimeBaseVO.java

@@ -1,5 +1,6 @@
 package com.zjugis.business.flow.attendancenote.controller.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -16,15 +17,17 @@ import static com.zjugis.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_
 @Data
 public class AttendanceNoteTimeBaseVO {
 
-    @Schema(description = "请假表ID", example = "90fdff67-4e6d-4270-aaf7-0359c20272cb")
-    private String leaveId;
+    @Schema(description = "考勤说明条ID", example = "90fdff67-4e6d-4270-aaf7-0359c20272cb")
+    private String attendanceNoteId;
 
     @Schema(description = "起始时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
     private LocalDateTime startTime;
 
     @Schema(description = "结束时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
     private LocalDateTime endTime;
 
     @Schema(description = "备注")

+ 9 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/attendancenote/service/AttendanceNoteService.java

@@ -1,6 +1,7 @@
 package com.zjugis.business.flow.attendancenote.service;
 
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteCreateReqVO;
+import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteRespVO;
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteUpdateReqVO;
 import com.zjugis.business.flow.attendancenote.entity.AttendanceNoteDO;
 
@@ -45,4 +46,12 @@ public interface AttendanceNoteService {
     AttendanceNoteDO findByInstanceId(String flowInstanceId);
 
     Map<String, Object> getFormParams(String flowInstanceId, String userId);
+
+    /**
+     * 添加流程数据
+     * @param flowInstanceId
+     * @param userId
+     * @return
+     */
+    AttendanceNoteRespVO flowAdd(String flowInstanceId, String userId);
 }

+ 33 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/attendancenote/service/AttendanceNoteServiceImpl.java

@@ -9,6 +9,7 @@ import com.zjugis.business.converter.attendancenote.AttendanceNoteTimeConvert;
 import com.zjugis.business.converter.common.SelectConvert;
 import com.zjugis.business.converter.leave.LeaveTimeConvert;
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteCreateReqVO;
+import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteRespVO;
 import com.zjugis.business.flow.attendancenote.controller.vo.AttendanceNoteUpdateReqVO;
 import com.zjugis.business.flow.attendancenote.dao.AttendanceNoteDao;
 import com.zjugis.business.flow.attendancenote.dao.AttendanceNoteTimeDao;
@@ -132,6 +133,38 @@ public class AttendanceNoteServiceImpl implements AttendanceNoteService {
         return createModelMap();
     }
 
+    @Override
+    public AttendanceNoteRespVO flowAdd(String flowInstanceId, String userId) {
+        if(StringUtils.isNotBlank(SecurityFrameworkUtils.getLoginUserId())){
+            userId = SecurityFrameworkUtils.getLoginUserId();
+        }
+        CommonResult<IFlowInstance> flowResult = workflowClient.flowInstance(flowInstanceId);
+        if(flowResult.isSuccess()){
+            IFlowInstance flowInstance = flowResult.getData();
+            AttendanceNoteDO entity = findByInstanceId(flowInstanceId);
+            if(Objects.isNull(entity)){
+                entity = new AttendanceNoteDO();
+                entity.setInstanceId(flowInstanceId);
+                entity.setUserId(userId);
+                entity.setAttendanceNoteNo(flowInstance.getCode());
+                entity.setCreateTime(LocalDateTime.now());
+                entity.setFlowStatus(FlowStatusConstants.FLOW_NOT_START);
+                CommonResult<AdminUserRespDTO> result = adminUserApi.getUser(userId);
+                if(result.isSuccess()){
+                    entity.setUserNickname(result.getData().getNickname());
+                    entity.setDeptId(result.getData().getDeptId());
+                    entity.setDeptName(result.getData().getDeptName());
+                }
+                attendanceNoteDao.insert(entity);
+            }
+            AttendanceNoteRespVO respVO = AttendanceNoteConvert.INSTANCE.convert01(entity);
+            List<AttendanceNoteTimeDO> detailList = attendanceNoteTimeService.getListByAttendanceNoteId(entity.getId());
+            respVO.setAttendanceNoteTimeCreateList(AttendanceNoteTimeConvert.INSTANCE.convertList02(detailList));
+            return respVO;
+        }
+        return null;
+    }
+
     private Map<String, Object> createModelMap() {
         Map<String, Object> map = new HashMap<>();
         map.put("formEntity", new HashMap<>());