|
@@ -8,14 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.security.utils.SecurityUtils;
|
|
|
-import com.usky.oa.domain.OaDocument;
|
|
|
-import com.usky.oa.domain.OaFormDefinition;
|
|
|
-import com.usky.oa.domain.OaJbdDocument;
|
|
|
-import com.usky.oa.domain.OaQjdDocument;
|
|
|
-import com.usky.oa.mapper.OaDocumentMapper;
|
|
|
-import com.usky.oa.mapper.OaFormDefinitionMapper;
|
|
|
-import com.usky.oa.mapper.OaJbdDocumentMapper;
|
|
|
-import com.usky.oa.mapper.OaQjdDocumentMapper;
|
|
|
+import com.usky.oa.domain.*;
|
|
|
+import com.usky.oa.mapper.*;
|
|
|
import com.usky.oa.service.OaDocumentService;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.oa.service.OaJbdDocumentService;
|
|
@@ -23,6 +17,7 @@ import com.usky.oa.service.OaQjdDocumentService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
@@ -61,6 +56,9 @@ public class OaDocumentServiceImpl extends AbstractCrudService<OaDocumentMapper,
|
|
|
@Autowired
|
|
|
private OaFormDefinitionMapper oaFormDefinitionMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OaApprovalMapper oaApprovalMapper;
|
|
|
+
|
|
|
private static final String TABLE_HEAD = "oa_";
|
|
|
private static final String TABLE_SUFFIX = "_document";
|
|
|
|
|
@@ -118,6 +116,8 @@ 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);
|
|
@@ -128,9 +128,38 @@ public class OaDocumentServiceImpl extends AbstractCrudService<OaDocumentMapper,
|
|
|
oaQjdDocumentService.addQjDocument(JSON.parseObject(oaDocument.toJSONString(), OaQjdDocument.class));
|
|
|
break;
|
|
|
case "JBD":
|
|
|
- oaJbdDocumentService.add(oaDocument.toJavaObject(OaJbdDocument.class));
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 更新单据
|
|
@@ -169,37 +198,74 @@ public class OaDocumentServiceImpl extends AbstractCrudService<OaDocumentMapper,
|
|
|
}
|
|
|
|
|
|
// 提交单据
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
- public void submit(String docNo, Integer status) {
|
|
|
- if (status != 1) {
|
|
|
+ public void submit(String docNo, Integer docStatus) {
|
|
|
+ if (docStatus != 1) {
|
|
|
throw new RuntimeException("单据提交异常,请联系管理员!");
|
|
|
+ } else {
|
|
|
+ LambdaQueryWrapper<OaDocument> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(OaDocument::getDocNo, docNo);
|
|
|
+ OaDocument oaDocument = oaDocumentMapper.selectOne(queryWrapper);
|
|
|
+ if (oaDocument.getDocStatus() == 1) {
|
|
|
+ throw new RuntimeException("单据已提交,请勿重复提交!");
|
|
|
+ }
|
|
|
}
|
|
|
- String formSign = getFormSign(docNo);
|
|
|
|
|
|
+ Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
String username = SecurityUtils.getUsername();
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
|
+ String formSign = getFormSign(docNo);
|
|
|
+
|
|
|
switch (formSign) {
|
|
|
case "QJD":
|
|
|
oaQjdDocumentMapper.update(null, Wrappers.lambdaUpdate(OaQjdDocument.class)
|
|
|
- .set(OaQjdDocument::getDocStatus, status)
|
|
|
+ .set(OaQjdDocument::getDocStatus, docStatus)
|
|
|
.set(OaQjdDocument::getUpdateBy, username)
|
|
|
.set(OaQjdDocument::getUpdateTime, now)
|
|
|
.eq(OaQjdDocument::getDocNo, docNo));
|
|
|
break;
|
|
|
case "JBD":
|
|
|
oaJbdDocumentMapper.update(null, Wrappers.lambdaUpdate(OaJbdDocument.class)
|
|
|
- .set(OaJbdDocument::getDocStatus, status)
|
|
|
+ .set(OaJbdDocument::getDocStatus, docStatus)
|
|
|
.set(OaJbdDocument::getUpdateBy, username)
|
|
|
.set(OaJbdDocument::getUpdateTime, now)
|
|
|
.eq(OaJbdDocument::getDocNo, docNo));
|
|
|
break;
|
|
|
}
|
|
|
oaDocumentMapper.update(null, Wrappers.lambdaUpdate(OaDocument.class)
|
|
|
- .set(OaDocument::getDocStatus, status)
|
|
|
+ .set(OaDocument::getDocStatus, docStatus)
|
|
|
.set(OaDocument::getUpdateBy, username)
|
|
|
.set(OaDocument::getUpdateTime, now)
|
|
|
.eq(OaDocument::getDocNo, docNo));
|
|
|
+
|
|
|
+ // 生成两条审批记录数据
|
|
|
+ OaApproval oaApproval = new OaApproval();
|
|
|
+ oaApproval.setDocNo(docNo);
|
|
|
+ oaApproval.setType(0);
|
|
|
+ oaApproval.setApprovalStatus(1);
|
|
|
+ oaApproval.setApprovalUid(226L);
|
|
|
+ oaApproval.setCreateBy(username);
|
|
|
+ oaApproval.setCreateTime(now);
|
|
|
+ oaApproval.setSubmitDate(now);
|
|
|
+ oaApproval.setDeptId(deptId);
|
|
|
+ oaApproval.setTenantId(tenantId);
|
|
|
+ oaApprovalMapper.insert(oaApproval);
|
|
|
+
|
|
|
+ OaApproval oaApproval1 = new OaApproval();
|
|
|
+ oaApproval1.setDocNo(docNo);
|
|
|
+ oaApproval1.setType(1);
|
|
|
+ oaApproval1.setApprovalStatus(1);
|
|
|
+ oaApproval1.setApprovalUid(157L);
|
|
|
+ oaApproval1.setCreateBy(username);
|
|
|
+ oaApproval1.setCreateTime(now);
|
|
|
+ oaApproval1.setSubmitDate(now);
|
|
|
+ oaApproval1.setDeptId(deptId);
|
|
|
+ oaApproval1.setTenantId(tenantId);
|
|
|
+ oaApprovalMapper.insert(oaApproval1);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 获取单据类型
|