fuyuchuan 1 месяц назад
Родитель
Сommit
1d278f8604

+ 2 - 0
service-oa/service-oa-biz/src/main/java/com/usky/oa/domain/OaJbdDocument.java

@@ -90,6 +90,7 @@ public class OaJbdDocument implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     /**
@@ -100,6 +101,7 @@ public class OaJbdDocument implements Serializable {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     /**

+ 1 - 3
service-oa/service-oa-biz/src/main/java/com/usky/oa/service/impl/OaApprovalServiceImpl.java

@@ -178,9 +178,7 @@ public class OaApprovalServiceImpl extends AbstractCrudService<OaApprovalMapper,
         List<OaDocument> oaDocuments = oaDocumentMapper.selectList(new QueryWrapper<OaDocument>().lambda()
                 .select(OaDocument::getDocNo)
                 .eq(OaDocument::getTenantId, tenantId)
-                .eq(OaDocument::getCreateBy, username)
-                // 已发起只计算 审批中、审通过、审批不通过
-                .in(OaDocument::getDocStatus, 1, 2, 3));
+                .eq(OaDocument::getCreateBy, username));
         return oaDocuments == null ? Collections.emptyList() : oaDocuments;
     }
 

+ 11 - 60
service-oa/service-oa-biz/src/main/java/com/usky/oa/service/impl/OaDocumentServiceImpl.java

@@ -115,9 +115,6 @@ public class OaDocumentServiceImpl extends AbstractCrudService<OaDocumentMapper,
     // 新增单据
     @Override
     public void addDoc(JSONObject oaDocument) {
-
-        LocalDateTime now = LocalDateTime.now();
-
         LambdaQueryWrapper<OaFormDefinition> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(OaFormDefinition::getFieldInfo).eq(OaFormDefinition::getId, oaDocument.get("formId"));
         OaFormDefinition oaFormDefinition = oaFormDefinitionMapper.selectOne(queryWrapper);
@@ -131,70 +128,24 @@ public class OaDocumentServiceImpl extends AbstractCrudService<OaDocumentMapper,
                 oaJbdDocumentService.add(JSON.parseObject(oaDocument.toJSONString(), OaJbdDocument.class));
                 break;
         }
-
-        // 如果直接提交则生成两条单据记录
-        String docStatus = oaDocument.get("docStatus").toString();
-        if (docStatus.equals("1")) {
-            // 生成两条审批记录数据
-            OaApproval oaApproval = new OaApproval();
-            oaApproval.setDocNo(oaDocument.get("docNo").toString());
-            oaApproval.setType(0);
-            oaApproval.setApprovalStatus(1);
-            oaApproval.setApprovalUid(226L);
-            oaApproval.setCreateBy(oaDocument.get("username").toString());
-            oaApproval.setCreateTime(now);
-            oaApproval.setSubmitDate(now);
-            oaApproval.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
-            oaApproval.setTenantId(SecurityUtils.getTenantId());
-            oaApprovalMapper.insert(oaApproval);
-
-            OaApproval oaApproval1 = new OaApproval();
-            oaApproval1.setDocNo(oaDocument.get("docNo").toString());
-            oaApproval1.setType(1);
-            oaApproval1.setApprovalStatus(1);
-            oaApproval1.setApprovalUid(155L);
-            oaApproval1.setCreateBy(oaDocument.get("username").toString());
-            oaApproval1.setCreateTime(now);
-            oaApproval1.setSubmitDate(now);
-            oaApproval1.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
-            oaApproval1.setTenantId(SecurityUtils.getTenantId());
-            oaApprovalMapper.insert(oaApproval1);
-        }
     }
 
     // 更新单据
     @Override
     public void updateDoc(JSONObject jsonDocument) {
+        LambdaQueryWrapper<OaFormDefinition> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(OaFormDefinition::getFieldInfo).eq(OaFormDefinition::getId, jsonDocument.get("formId"));
+        OaFormDefinition oaFormDefinition = oaFormDefinitionMapper.selectOne(queryWrapper);
+        String sign = oaFormDefinition.getFieldInfo();
 
-        String username = SecurityUtils.getUsername();
-        LocalDateTime now = LocalDateTime.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        String formattedNow = now.format(formatter);
-
-        Map<String, Object> updateMap = jsonDocument.getInnerMap();
-        String docNo = jsonDocument.get("docNo").toString();
-        HashMap<String, Object> updateHashMap = new HashMap<>(updateMap);
-        String tableName = (TABLE_HEAD + getFormSign(docNo) + TABLE_SUFFIX).toLowerCase();
-        updateHashMap.put("tableName", tableName);
-        updateHashMap.put("updateBy", username);
-        updateHashMap.put("updateTime", formattedNow);
-
-        if (StringUtils.isBlank(updateMap.get("docStatus").toString())) {
-            throw new BusinessException("单据状态不能为空!");
-        }
-
-        // 更新具体单据表
-        if (!updateMap.containsKey("id")) {
-            throw new BusinessException("更新单据id不能为空!");
+        switch (sign) {
+            case "QJD":
+                oaQjdDocumentService.updateQjDocument(JSON.parseObject(jsonDocument.toJSONString(), OaQjdDocument.class));
+                break;
+            case "JBD":
+                oaJbdDocumentService.update(JSON.parseObject(jsonDocument.toJSONString(), OaJbdDocument.class));
+                break;
         }
-        documentMapper.updateData(updateHashMap);
-
-        // 更新单据总表
-        oaDocumentMapper.update(null, Wrappers.lambdaUpdate(OaDocument.class)
-                .set(OaDocument::getDocStatus, updateMap.get("docStatus"))
-                .set(OaDocument::getUpdateBy, username)
-                .set(OaDocument::getUpdateTime, now)
-                .eq(OaDocument::getDocNo, docNo));
     }
 
     // 提交单据

+ 5 - 15
service-oa/service-oa-biz/src/main/java/com/usky/oa/service/impl/OaJbdDocumentServiceImpl.java

@@ -13,6 +13,7 @@ import com.usky.oa.mapper.OaJbdDocumentMapper;
 import com.usky.oa.service.OaJbdDocumentService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.oa.service.enums.OaBuiltInDocument;
+import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -77,33 +78,22 @@ public class OaJbdDocumentServiceImpl extends AbstractCrudService<OaJbdDocumentM
         oaDocument.setTenantId(tenantId);
         oaDocumentMapper.insert(oaDocument);
 
-// 如果直接提交则生成两条单据记录
+        // 如果直接提交则生成一条单据记录
         Integer docStatus = oaJbdDocument.getDocStatus();
         if (docStatus.equals(1)) {
-            // 生成条审批记录数据
+            // 生成条审批记录数据
             OaApproval oaApproval = new OaApproval();
             oaApproval.setDocNo(oaJbdDocument.getDocNo());
             oaApproval.setType(0);
             oaApproval.setApprovalStatus(1);
-            oaApproval.setApprovalUid(226L);
+            long approvalUid = RandomUtils.nextBoolean() ? 226L : 157L;
+            oaApproval.setApprovalUid(approvalUid);
             oaApproval.setCreateBy(oaJbdDocument.getCreateBy());
             oaApproval.setCreateTime(now);
             oaApproval.setSubmitDate(now);
             oaApproval.setDeptId(oaJbdDocument.getDeptId());
             oaApproval.setTenantId(oaJbdDocument.getTenantId());
             oaApprovalMapper.insert(oaApproval);
-
-            OaApproval oaApproval1 = new OaApproval();
-            oaApproval.setDocNo(oaJbdDocument.getDocNo());
-            oaApproval1.setType(1);
-            oaApproval1.setApprovalStatus(1);
-            oaApproval1.setApprovalUid(155L);
-            oaApproval1.setCreateBy(oaJbdDocument.getCreateBy());
-            oaApproval1.setCreateTime(now);
-            oaApproval1.setSubmitDate(now);
-            oaApproval1.setDeptId(oaJbdDocument.getDeptId());
-            oaApproval1.setTenantId(oaJbdDocument.getTenantId());
-            oaApprovalMapper.insert(oaApproval1);
         }
     }
 

+ 44 - 1
service-oa/service-oa-biz/src/main/java/com/usky/oa/service/impl/OaQjdDocumentServiceImpl.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.log.annotation.Log;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.oa.domain.OaApproval;
 import com.usky.oa.domain.OaDocument;
 import com.usky.oa.domain.OaFormDefinition;
 import com.usky.oa.domain.OaQjdDocument;
+import com.usky.oa.mapper.OaApprovalMapper;
 import com.usky.oa.mapper.OaDocumentMapper;
 import com.usky.oa.mapper.OaFormDefinitionMapper;
 import com.usky.oa.mapper.OaQjdDocumentMapper;
@@ -15,6 +17,7 @@ import com.usky.oa.service.OaQjdDocumentService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.oa.service.enums.OaBuiltInDocument;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -44,6 +47,9 @@ public class OaQjdDocumentServiceImpl extends AbstractCrudService<OaQjdDocumentM
     @Autowired
     private OaDocumentMapper oaDocumentMapper;
 
+    @Autowired
+    private OaApprovalMapper oaApprovalMapper;
+
     @Override
     public void addQjDocument(OaQjdDocument oaQjdDocument) {
 
@@ -86,18 +92,38 @@ public class OaQjdDocumentServiceImpl extends AbstractCrudService<OaQjdDocumentM
         oaDocument.setDeptId(deptId);
         oaDocument.setTenantId(tenantId);
         oaDocumentMapper.insert(oaDocument);
+
+        if (oaQjdDocument.getDocStatus().equals(1)) {
+            // 生成一条审批记录数据
+            OaApproval oaApproval = new OaApproval();
+            oaApproval.setDocNo(docNo);
+            oaApproval.setType(0);
+            oaApproval.setApprovalStatus(1);
+            // 随机选择一个审批人
+            long approvalUid = RandomUtils.nextBoolean() ? 226L : 157L;
+            oaApproval.setApprovalUid(approvalUid);
+            oaApproval.setCreateBy(username);
+            oaApproval.setCreateTime(now);
+            oaApproval.setSubmitDate(now);
+            oaApproval.setDeptId(deptId);
+            oaApproval.setTenantId(tenantId);
+            oaApprovalMapper.insert(oaApproval);
+        }
     }
 
     @Override
     public void updateQjDocument(OaQjdDocument oaQjdDocument) {
 
         if (StringUtils.isBlank(oaQjdDocument.getDocNo())) {
-            throw new BusinessException("请假单据ID为空或异常");
+            throw new BusinessException("更新请假单据ID异常");
         }
 
         validateOaQjDocument(oaQjdDocument);
         String username = SecurityUtils.getUsername();
         LocalDateTime now = LocalDateTime.now();
+        Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
+        Integer tenantId = SecurityUtils.getTenantId();
+
         oaQjdDocument.setUpdateBy(username);
         oaQjdDocument.setUpdateTime(now);
         oaQjdDocumentMapper.updateById(oaQjdDocument);
@@ -107,6 +133,23 @@ public class OaQjdDocumentServiceImpl extends AbstractCrudService<OaQjdDocumentM
                 .set(OaDocument::getUpdateBy, username)
                 .set(OaDocument::getUpdateTime, oaQjdDocument.getUpdateTime())
         );
+
+        if (oaQjdDocument.getDocStatus().equals(1)) {
+            // 生成一条审批记录数据
+            OaApproval oaApproval = new OaApproval();
+            oaApproval.setDocNo(oaQjdDocument.getDocNo());
+            oaApproval.setType(0);
+            oaApproval.setApprovalStatus(1);
+            // 随机选择一个审批人
+            long approvalUid = RandomUtils.nextBoolean() ? 226L : 157L;
+            oaApproval.setApprovalUid(approvalUid);
+            oaApproval.setCreateBy(username);
+            oaApproval.setCreateTime(now);
+            oaApproval.setSubmitDate(now);
+            oaApproval.setDeptId(deptId);
+            oaApproval.setTenantId(tenantId);
+            oaApprovalMapper.insert(oaApproval);
+        }
     }
 
     /**