Browse Source

1.监审项目集体审议 新增修改
2.文号生成规则优化
3.cbjstqzldjb文书生成优化

赵越越 4 tuần trước cách đây
mục cha
commit
bbbb374e2c

+ 0 - 4
assembly/src/main/resources/application.yml

@@ -1,4 +0,0 @@
-#spring
-spring:
-  profiles:
-    active: dev

+ 1 - 1
assistMg/src/main/java/com/hotent/baseInfo/manager/impl/CostDocumentWhManagerImpl.java

@@ -106,7 +106,7 @@ public class CostDocumentWhManagerImpl extends BaseManagerImpl<CostDocumentWhDao
             costDocumentWh.setCreateTime(LocalDateTime.now());
             costDocumentWh.setCreateBy(user.getAccount());
         }
-
+        costDocumentWh.setLastGenerateDate(LocalDate.now());
         //新建或更新
         this.saveOrUpdate(costDocumentWh);
     }

+ 71 - 0
assistMg/src/main/java/com/hotent/project/controller/CostProjectDeliberateController.java

@@ -4,8 +4,18 @@ package com.hotent.project.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.hotent.base.annotation.ApiGroup;
 import com.hotent.base.constants.ApiGroupConsts;
+import com.hotent.base.exception.BaseException;
+import com.hotent.base.util.UniqueIdUtil;
+import com.hotent.project.manager.CostProjectApprovalManager;
+import com.hotent.project.manager.CostProjectTaskManager;
+import com.hotent.project.model.CostProjectApproval;
+import com.hotent.project.model.CostProjectTask;
 import com.hotent.project.req.CostProjectBasePageReq;
+import com.hotent.project.req.CostProjectDocumentReq;
+import com.hotent.uc.api.model.IUser;
+import com.hotent.uc.util.ContextUtil;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -20,6 +30,8 @@ import com.hotent.base.controller.BaseController;
 import com.hotent.project.model.CostProjectDeliberate;
 import com.hotent.project.manager.CostProjectDeliberateManager;
 
+import java.time.LocalDateTime;
+
 /**
  * 监审项目集体审议表 前端控制器
  *
@@ -33,6 +45,11 @@ import com.hotent.project.manager.CostProjectDeliberateManager;
 @ApiGroup(group = {ApiGroupConsts.GROUP_COST})
 public class CostProjectDeliberateController extends BaseController<CostProjectDeliberateManager, CostProjectDeliberate> {
 
+	@Autowired
+	private CostProjectApprovalManager costProjectApprovalManager;
+
+	@Autowired
+	private CostProjectTaskManager costProjectTaskManager;
 	/**
 	 * 根据id获取监审项目集体审议表数据详情
 	 * @param id
@@ -45,8 +62,62 @@ public class CostProjectDeliberateController extends BaseController<CostProjectD
 	public CommonResult<CostProjectDeliberate> getDetail(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam(required=true) String id) throws Exception{
 		return CommonResult.<CostProjectDeliberate>ok().value(baseService.getDetail(id));
 	}
+	//新增
+	@PostMapping(value="/save")
+	@ApiOperation(value="新增save",httpMethod = "POST",notes = "新增save")
+	public CommonResult<String> save(@RequestBody CostProjectDeliberate req) throws Exception {
+		if (req.getProjectId()==null) {
+			throw new BaseException("项目id不能为空");
+		}
+		if (req.getTaskId()==null) {
+			throw new BaseException("任务id不能为空");
+		}
+		CostProjectApproval approval = costProjectApprovalManager.getById(req.getProjectId());
+		if (approval==null) {
+			throw new BaseException("根据id:【"+req.getProjectId()+"】未查询到项目信息");
+		}
+		CostProjectTask task = costProjectTaskManager.getById(req.getTaskId());
+		if (task==null) {
+			throw new BaseException("根据id:【"+req.getTaskId()+"】未查询到任务信息");
+		}
+		IUser iUser = ContextUtil.getCurrentUser();
+		req.setCreateBy(iUser.getAccount());
+		req.setCreateTime(LocalDateTime.now());
+		req.setId(UniqueIdUtil.getSuid());
+		baseService.create(req);
+		return CommonResult.<String>ok().message("保存成功");
+	}
 
 
+	//新增
+	@PostMapping(value="/update")
+	@ApiOperation(value="update",httpMethod = "POST",notes = "新增save")
+	public CommonResult<String> update(@RequestBody CostProjectDeliberate req) throws Exception {
+		if (req.getProjectId()==null) {
+			throw new BaseException("项目id不能为空");
+		}
+		if (req.getTaskId()==null) {
+			throw new BaseException("任务id不能为空");
+		}
+		CostProjectDeliberate deliberate = this.getById(req.getId());
+		if (deliberate==null) {
+			throw new BaseException("根据id:【"+req.getId()+"】未查询到实体信息");
+		}
+		CostProjectApproval approval = costProjectApprovalManager.getById(req.getProjectId());
+		if (approval==null) {
+			throw new BaseException("根据id:【"+req.getProjectId()+"】未查询到项目信息");
+		}
+		CostProjectTask task = costProjectTaskManager.getById(req.getTaskId());
+		if (task==null) {
+			throw new BaseException("根据id:【"+req.getTaskId()+"】未查询到任务信息");
+		}
+		IUser iUser = ContextUtil.getCurrentUser();
+		req.setUpdateBy(iUser.getAccount());
+		req.setUpdateTime(LocalDateTime.now());
+		baseService.updateById(req);
+		return CommonResult.<String>ok().message("保存成功");
+	}
+
 	/**
 	 * 分页查询
 	 */

+ 2 - 2
assistMg/src/main/java/com/hotent/project/controller/CostProjectDocumentController.java

@@ -89,8 +89,8 @@ public class CostProjectDocumentController extends BaseController<CostProjectDoc
 	@PostMapping(value="/save")
 	@ApiOperation(value="新增save",httpMethod = "POST",notes = "新增save")
 	public CommonResult<String> save(@RequestBody CostProjectDocumentReq req) throws Exception {
-		costProjectDocumentManager.create(req);
-		return CommonResult.<String>ok().message("保存成功");
+		String id= costProjectDocumentManager.create(req);
+		return CommonResult.<String>ok().value(id).message("保存成功");
 
 	}
 

+ 1 - 1
assistMg/src/main/java/com/hotent/project/manager/CostProjectDocumentManager.java

@@ -45,7 +45,7 @@ public interface CostProjectDocumentManager extends BaseManager<CostProjectDocum
 
 	List<CostProjectDocument> getListByProjectId(String projectId);
 
-	void create(CostProjectDocumentReq req) throws Exception;
+	String create(CostProjectDocumentReq req) throws Exception;
 
 	List<CostProjectDocumentFile> getDocumentFileList(String id);
 

+ 43 - 26
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectDocumentManagerImpl.java

@@ -50,7 +50,9 @@ import org.springframework.transaction.annotation.Transactional;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.YearMonth;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -95,8 +97,6 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
 
     @Autowired
     private CostDocumentTemplateFileManager costTemplateFileManager;
-    
-    private static final HashMap<String, Boolean> whMap = new HashMap<>();
 
     @Override
     public CostProjectDocument getDetail(String id) {
@@ -201,7 +201,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
 
     @Override
     @Transactional
-    public void create(CostProjectDocumentReq req) throws Exception {
+    public String create(CostProjectDocumentReq req) throws Exception {
         if (ObjectUtil.isEmpty(req.getDocumentId())) {
             throw new BaseException("请选择文书模板");
         }
@@ -231,9 +231,10 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
         if (auditedUnit == null || BaseConstant.DELETE_FLAG.equals(auditedUnit.getIsDeleted())) {
             throw new BaseException("被监审单位不存在");
         }
-        CostDocumentWh costDocumentWh=null;
+        CostDocumentWh costDocumentWh;
         //返回文号
         String whNo;
+
         if (!costDocumentTemplate.getAlias().equals("cbjsgzdg")
                 &&!costDocumentTemplate.getAlias().equals("cbjsjtsyjl")
                 &&!costDocumentTemplate.getAlias().equals("cbshcbyjb1")
@@ -245,6 +246,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
             //返回文号
             whNo = this.getWH(costDocumentWh);
         } else {
+            costDocumentWh = null;
             whNo = "";
         }
         LambdaQueryWrapper<CostProjectDocument> qw = new LambdaQueryWrapper<>();
@@ -315,7 +317,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
             projectDocument.setId(UniqueIdUtil.getSuid());
             projectDocument.setCreateBy(user.getAccount());
             projectDocument.setCreateTime(LocalDateTime.now());
-            QueryWrapper<CostDocumentWh> wrapper = new QueryWrapper<>();
+            /*QueryWrapper<CostDocumentWh> wrapper = new QueryWrapper<>();
             wrapper.eq("wh_type","187");
             List<CostDocumentWh> list = costDocumentWhManager.list(wrapper);
 
@@ -325,17 +327,13 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
 
             CostDocumentWh costDocument = list.get(0);
             //返回文号
-            String whno = this.getWH(costDocument);
-            //校验文号唯一性
-            /*Boolean bwhno = whMap.get(whNo);
-            if (bwhno==null || !bwhno) {
-                whMap.put(whno,true);
-            }else {
-                throw new BaseException("【"+whNo+"】文号已存在请重新添加");
-            }*/
-            projectDocument.setDocumentNumber(whno);
+            String whno = this.getWH(costDocument);*/
+
+            projectDocument.setDocumentNumber(whNo);
             projectDocument.setElectronicDocumentUrl(templateManagerById.getFileUrl());
-            projectDocument.setDocumentWhId(costDocument.getId());
+            if(costDocumentWh!=null){
+                projectDocument.setDocumentWhId(costDocumentWh.getId());
+            }
             projectDocument.setDocumentId(String.valueOf(templateManagerById.getId()));
             projectDocument.setDocumentName(costProjectDocument.getDocumentName()+"-"+templateManagerById.getDocumentName());
             projectDocument.setDocumentType(templateManagerById.getType());
@@ -359,7 +357,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
                         costProjectDocumentFile.setDataValue(costProjectApproval.getOrgName());
                         break;
                     case "SongDaWenShuMingCheng":
-                        costProjectDocumentFile.setDataValue(costDocument.getWhName());
+                        costProjectDocumentFile.setDataValue(costDocumentWh.getWhName());
                         break;
                     case "SongDaWenShuWenHao":
                         costProjectDocumentFile.setDataValue(projectDocument.getDocumentNumber());
@@ -395,23 +393,42 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
                 arrayList.add(costProjectDocumentFile);
             });
             costProjectDocumentFileManager.saveBatch(arrayList);
-            whMap.remove(whNo);
         }
 
         //保存解析出的文件内容
         costProjectDocumentFileManager.saveBatch(req.getCostProjectDocumentFiles());
-        if (costDocumentWh!=null) {
-            //更新文号值
-            costDocumentWhManager.updateCurrentValue(costDocumentWh.getId());
-        }
-
-        whMap.remove(whNo);
+        return req.getId();
     }
 
     public synchronized String getWH(CostDocumentWh costDocumentWh){
-
+        if("incremental".equals(costDocumentWh.getGenerateType())){
+            costDocumentWh.setCurrentValue(costDocumentWh.getCurrentValue()+1);
+            costDocumentWh.setLastGenerateDate(LocalDate.now());
+        } else if ("daily".equals(costDocumentWh.getGenerateType())) {
+            boolean b = LocalDate.now().isEqual(costDocumentWh.getLastGenerateDate());
+            if (!b) {
+                costDocumentWh.setCurrentValue(costDocumentWh.getCurrentValue()+1);
+                costDocumentWh.setLastGenerateDate(LocalDate.now());
+            }
+        }else if ("monthly".equals(costDocumentWh.getGenerateType())) {
+            LocalDate date = LocalDate.now(); // 获取当前日期
+            YearMonth currentYearMonth = YearMonth.from(date);
+            if (currentYearMonth.equals(YearMonth.from(costDocumentWh.getLastGenerateDate()))) {
+                costDocumentWh.setCurrentValue(costDocumentWh.getCurrentValue()+1);
+                costDocumentWh.setLastGenerateDate(LocalDate.now());
+            }
+        }else if ("yearly".equals(costDocumentWh.getGenerateType())) {
+            LocalDate date = LocalDate.now(); // 获取当前日期
+            // 获取当前年份
+            int currentYear = date.getYear();
+            if (costDocumentWh.getLastGenerateDate().getYear() == currentYear) {
+                costDocumentWh.setCurrentValue(costDocumentWh.getCurrentValue()+1);
+                costDocumentWh.setLastGenerateDate(LocalDate.now());
+            }
+        }
+        costDocumentWhManager.update(costDocumentWh);
         return costDocumentWh.getRulePattern().replace("{prefixText}", costDocumentWh.getPrefixText())
-                .replace("{year}", costDocumentWh.getYear()).replace("{currentValue}", costDocumentWh.getCurrentValue().toString());
+                .replace("{year}","【" +costDocumentWh.getYear()+"】").replace("{currentValue}", costDocumentWh.getCurrentValue().toString());
     }
 
     @Override
@@ -553,7 +570,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
             //SimpleStylePreserver.smartReplaceKeepStyle(document,map);
             //BestPracticeReplacer.replaceTextBestPractice(document,map);
             //BestPracticeReplacer.applySmartStyles(document);
-            if (!costProjectDocument.getDocumentAlias().equals("cbjstqzldjb2")) {
+            if (!costProjectDocument.getDocumentAlias().equals("cbjstqzldjb")) {
                 SmartTemplateWriter.writeToTemplate(document,map);
             }else {
                List<CostProjectTaskEvidence> costProjectTaskEvidences= costProjectTaskEvidenceManager.findEvidenceListByTaskIds(costProjectDocument.getProjectId(),costProjectDocument.getEnterpriseId());