fengzhenzhong 1 mesiac pred
rodič
commit
4d70d22726

+ 1 - 1
assembly/src/main/resources/application-dev.yml

@@ -198,4 +198,4 @@ third:
 
 assistmg:
   profile: /home/eip/uploadPath
-  imgUrl: http://116.204.117.33:9056
+  imgUrl: http://116.204.117.33:9506

+ 5 - 2
assistMg/src/main/java/com/hotent/baseInfo/manager/impl/CostDocumentTemplateFileManagerImpl.java

@@ -2,6 +2,7 @@ package com.hotent.baseInfo.manager.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hotent.base.util.StringUtil;
 import com.hotent.baseInfo.model.CostDocumentTemplateFile;
 import com.hotent.baseInfo.dao.CostDocumentTemplateFileDao;
 import com.hotent.baseInfo.manager.CostDocumentTemplateFileManager;
@@ -54,8 +55,10 @@ public class CostDocumentTemplateFileManagerImpl extends BaseManagerImpl<CostDoc
         QueryWrapper<CostDocumentTemplateFile> eq = new QueryWrapper<CostDocumentTemplateFile>().eq("document_id", documentId);
         for (CostDocumentTemplateFile costProjectDocumentFile : documentFileList) {
             try {
-                //获取whereValue字段值
-                costProjectDocumentFile.setDataValue(this.baseMapper.getColValue(costProjectDocumentFile.getTableName(), costProjectDocumentFile.getColName(), costProjectDocumentFile.getWhereValue(),whereValue));
+                if (StringUtil.isNotEmpty(costProjectDocumentFile.getTableName())){
+                    //获取whereValue字段值
+                    costProjectDocumentFile.setDataValue(this.baseMapper.getColValue(costProjectDocumentFile.getTableName(), costProjectDocumentFile.getColName(), costProjectDocumentFile.getWhereValue(),whereValue));
+                }
             } catch (Exception e) {
                 throw new BaseException("获取字段失败:" + costProjectDocumentFile.getColName());
             }

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

@@ -1,10 +1,15 @@
 package com.hotent.project.controller;
 
 
+import com.aliyun.tea.utils.StringUtils;
 import com.hotent.base.annotation.ApiGroup;
 import com.hotent.base.constants.ApiGroupConsts;
 import com.hotent.common.CrudService;
+import com.hotent.config.EipConfig;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.manager.CostProjectDocumentFileManager;
 import com.hotent.project.model.CostProjectApproval;
+import com.hotent.project.model.CostProjectDocumentFile;
 import com.hotent.project.req.CostProjectApprovalPageReq;
 import com.hotent.project.req.CostProjectBasePageReq;
 import com.hotent.project.req.CostProjectDocumentPageReq;
@@ -13,6 +18,8 @@ import com.hotent.project.resp.CostProjectDocumentResp;
 import com.hotent.req.IdReq;
 import com.hotent.req.PageReq;
 import com.hotent.resp.PageResp;
+import com.hotent.util.FileUploadUtil;
+import com.hotent.util.wordexcelutils.DocumentProcessor;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -24,7 +31,10 @@ import com.hotent.base.controller.BaseController;
 import com.hotent.project.model.CostProjectDocument;
 import com.hotent.project.manager.CostProjectDocumentManager;
 
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 监审项目文书表 前端控制器
@@ -44,6 +54,9 @@ public class CostProjectDocumentController extends BaseController<CostProjectDoc
 
 	@Autowired
 	private CostProjectDocumentManager costProjectDocumentManager;
+
+	@Autowired
+	private CostProjectDocumentFileManager costProjectDocumentFileManager;
 	/**
 	 * 根据id获取监审项目文书表数据详情
 	 * @param id
@@ -96,4 +109,29 @@ public class CostProjectDocumentController extends BaseController<CostProjectDoc
 		return CommonResult.<CostProjectDocumentResp>ok().value(costProjectDocumentManager.getByProjectId(projectId));
 	}
 
+	/**
+	 * 根据id生成文书并且下载
+	 * @param id
+	 * @return
+	 * @throws Exception
+	 * ModelAndView
+	 */
+	@GetMapping(value="/downDocument")
+	@ApiOperation(value="根据id生成文书并且下载",httpMethod = "GET",notes = "根据id生成文书并且下载")
+	public CommonResult<String> downDocument(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam(required=true) String id) throws Exception{
+		return CommonResult.<String>ok().value(costProjectDocumentManager.createDocument(id));
+	}
+
+
+	//上传扫描
+	@PostMapping(value="/updateScan")
+	@ApiOperation(value="",httpMethod = "POST",notes = "修改update")
+	public CommonResult<String> updateScan(@RequestBody CostProjectDocument req) {
+		CostProjectDocument entity = costProjectDocumentManager.get(req.getId());
+		entity.setScanDocumentUrl(req.getScanDocumentUrl());
+		costProjectDocumentManager.updateById(entity);
+		return CommonResult.<String>ok().message("修改成功");
+
+	}
+
 }

+ 5 - 0
assistMg/src/main/java/com/hotent/project/manager/CostProjectDocumentFileManager.java

@@ -26,5 +26,10 @@ public interface CostProjectDocumentFileManager extends BaseManager<CostProjectD
 	 */
 	void createOrUpdate(CostProjectDocumentFile costProjectDocumentFile);
 
+	/**
+	 * 根据文书id和项目id查询文书具体项目
+	 */
+	List<CostProjectDocumentFile> getCostProjectDocumentFiles(String projectId, String documentId);
+
 
 }

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

@@ -54,4 +54,6 @@ public interface CostProjectDocumentManager extends BaseManager<CostProjectDocum
 	void deleteByIds(List<String> ids);
 
 	CostProjectDocumentResp getByProjectId(String projectId);
+
+	String createDocument(String id);
 }

+ 17 - 5
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectApprovalManagerImpl.java

@@ -1,6 +1,7 @@
 package com.hotent.project.manager.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -29,6 +30,7 @@ import com.hotent.uc.manager.UserManager;
 import com.hotent.uc.util.ContextUtil;
 import com.hotent.util.AreaCodeUtil;
 import com.hotent.util.CopyUtil;
+import dm.jdbc.convert.J2DB;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -357,11 +359,11 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
         if (ObjectUtil.isNotEmpty(req.getSendType())) {
             if (req.getSendType().contains(",")) {
                 //站内通知
-                this.costNoticeManager.sendNotice(req.getProjectId(), "1", costProjectApproval.getProjectName(), req.getContent());
+                this.costNoticeManager.sendNotice(req.getProjectId(), "1", costProjectApproval.getProjectName(), req.getContent(), costProjectApproval.getAuditedUnitId().split(",")[0],"","");
                 //短信发送
             } else if (req.getSendType().equals("1")) {
                 //站内通知
-                this.costNoticeManager.sendNotice(req.getProjectId(), "1", costProjectApproval.getProjectName(), req.getContent());
+                this.costNoticeManager.sendNotice(req.getProjectId(), "1", costProjectApproval.getProjectName(), req.getContent(),costProjectApproval.getAuditedUnitId().split(",")[0],"","");
             } else if (req.getSendType().equals("2")) {
                 //短信发送
             } else {
@@ -493,23 +495,33 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
 
             // 关联文书
             List<CostProjectTaskDocument> documents = CopyUtil.copyList(documentList, CostProjectTaskDocument.class);
-            documents.forEach(doc -> doc.setTaskId(childTask.getId()));
+            documents.forEach(doc ->{
+                doc.setTaskId(childTask.getId());
+                doc.setId(null);
+            } );
             taskDocumentList.addAll(documents);
 
             // 关联资料
             List<CostProjectTaskMaterial> materials = CopyUtil.copyList(materialList, CostProjectTaskMaterial.class);
-            materials.forEach(mat -> mat.setTaskId(childTask.getId()));
+            materials.forEach(mat ->{
+                mat.setTaskId(childTask.getId());
+                mat.setId(null);
+            } );
             taskMaterialList.addAll(materials);
 
             // 工作流程
             CostProjectTaskProccess process = CopyUtil.copy(projectProccess, CostProjectTaskProccess.class);
             process.setTaskId(childTask.getId());
+            process.setProcessId(null);
             taskProccessList.add(process);
 
 
             // 流程节点
             List<CostProjectTaskNode> nodes = CopyUtil.copyList(proccessNodeList, CostProjectTaskNode.class);
-            nodes.forEach(node -> node.setTaskId(childTask.getId()));
+            nodes.forEach(node -> {
+                node.setTaskId(childTask.getId());
+                node.setId(null);
+            });
             taskNodeList.addAll(nodes);
 
         }

+ 8 - 7
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectDocumentFileManagerImpl.java

@@ -1,18 +1,14 @@
 package com.hotent.project.manager.impl;
 
-import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.hotent.project.model.CostProjectDocumentFile;
 import com.hotent.project.dao.CostProjectDocumentFileDao;
 import com.hotent.project.manager.CostProjectDocumentFileManager;
 import com.hotent.base.manager.impl.BaseManagerImpl;
-import com.hotent.uc.exception.BaseException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
 import java.util.List;
-import javax.annotation.Resource;
-import com.hotent.base.util.BeanUtils;
 
 
 /**
@@ -42,6 +38,11 @@ public class CostProjectDocumentFileManagerImpl extends BaseManagerImpl<CostProj
 	}
 
 
-
-
+	@Override
+	public List<CostProjectDocumentFile> getCostProjectDocumentFiles(String projectId, String documentId) {
+		LambdaQueryWrapper<CostProjectDocumentFile> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(CostProjectDocumentFile::getProjectId,projectId);
+		wrapper.eq(CostProjectDocumentFile::getDocumentId,documentId);
+		return  this.list(wrapper);
+	}
 }

+ 52 - 7
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectDocumentManagerImpl.java

@@ -19,23 +19,22 @@ import com.hotent.project.dao.CostProjectDocumentDao;
 import com.hotent.project.manager.CostProjectDocumentManager;
 import com.hotent.base.manager.impl.BaseManagerImpl;
 import com.hotent.project.model.CostProjectDocumentFile;
-import com.hotent.project.req.CostProjectBasePageReq;
 import com.hotent.project.req.CostProjectDocumentPageReq;
 import com.hotent.project.req.CostProjectDocumentReq;
 import com.hotent.project.resp.CostProjectDocumentResp;
-import com.hotent.req.PageReq;
 import com.hotent.uc.exception.BaseException;
+import com.hotent.util.wordexcelutils.DocumentProcessor;
+import org.apache.commons.lang.StringUtils;
+import org.apache.tools.ant.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
-import com.hotent.base.util.BeanUtils;
+import com.hotent.util.FileUploadUtil;
 
 
 /**
@@ -60,6 +59,8 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
     @Autowired
     private CostDocumentWhManager costDocumentWhManager;
 
+
+
     @Override
     public CostProjectDocument getDetail(String id) {
         CostProjectDocument costProjectDocument = this.get(id);
@@ -199,6 +200,28 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
         req.getCostProjectDocumentFiles().forEach(costProjectDocumentFile -> {
             costProjectDocumentFile.setDocumentId(costProjectDocument.getDocumentId());
             costProjectDocumentFile.setProjectId(costProjectDocument.getProjectId());
+            //送达回证特殊处理字段 后期在说
+            if ("送达回证".equals(costProjectDocument.getDocumentName())) {
+                if (costProjectDocumentFile.getPinyin().equals("SongDaWenShuMingCheng")){
+                    costProjectDocumentFile.setDataValue(costDocumentTemplate.getDocumentName());
+                }
+                if (costProjectDocumentFile.getPinyin().equals("SongDaWenShuWenHao")){
+                    costProjectDocumentFile.setDataValue(whNo);
+                }
+                if (costProjectDocumentFile.getPinyin().equals("SongDaWenShuMingCheng")){
+                    costProjectDocumentFile.setDataValue(costDocumentTemplate.getDocumentName());
+                }
+                if (costProjectDocumentFile.getPinyin().equals("TongZhiSongDaShiJian")){
+                    costProjectDocumentFile.setDataValue(DateUtils.format(new Date(),"yyyy-MM-dd"));
+                }
+                if (costProjectDocumentFile.getPinyin().equals("BeiJianShenDanWeiBanGongDiDian")){
+                    costProjectDocumentFile.setDataValue(auditedUnit.getAddress());
+                }
+                if (costProjectDocumentFile.getPinyin().equals("ShouSongDaRen")){
+                    costProjectDocumentFile.setDataValue(auditedUnit.getContactName());
+                }
+            }
+
         });
         //保存解析出的文件内容
         costProjectDocumentFileManager.saveBatch(req.getCostProjectDocumentFiles());
@@ -270,6 +293,7 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
         selectCostProjectDocument.setDocumentWhId(req.getDocumentWhId());
         selectCostProjectDocument.setDocumentId(req.getDocumentId());
         selectCostProjectDocument.setEnterpriseId(req.getEnterpriseId());
+        selectCostProjectDocument.setElectronicDocumentUrl("");
 //        类型转换
          BeanUtil.copyProperties(req,selectCostProjectDocument);
         super.update(selectCostProjectDocument);
@@ -317,4 +341,25 @@ public class CostProjectDocumentManagerImpl extends BaseManagerImpl<CostProjectD
          return costProjectDocumentResp;
 
      }
+
+    @Override
+    public String createDocument(String id) {
+        CostProjectDocument costProjectDocument = this.getDetail(id);
+        List<CostProjectDocumentFile> list = costProjectDocumentFileManager.getCostProjectDocumentFiles(costProjectDocument.getProjectId(),costProjectDocument.getDocumentId());
+        CostDocumentTemplate costDocumentTemplate = this.costDocumentTemplateManager.get(costProjectDocument.getDocumentId());
+        //生成文书
+        Map<String,String> map = new HashMap<>();
+        list.stream().forEach(p->{
+            map.put("{"+p.getOriginalText()+"}",p.getDataValue());
+        });
+        //先处理一种文件
+        String templatePath = costDocumentTemplate.getFileUrl().replace(BaseConstant.RESOURCE_PREFIX,"");
+        templatePath = EipConfig.getProfile()+templatePath;
+
+        String fileExtension = FileUploadUtil.getFileExtension(costDocumentTemplate.getFileUrl());
+        String fileName = FileUploadUtil.generateFileName(costDocumentTemplate.getDocumentName()+"."+fileExtension);
+        String outputPath = FileUploadUtil.generateSavePath(EipConfig.getUploadPath(), fileName, fileExtension);
+        DocumentProcessor.processWordDocument(templatePath,outputPath,map,new LinkedHashMap<>());
+        return EipConfig.getImgUrl()+FileUploadUtil.getPathFileName(outputPath,fileName);
+    }
 }

+ 4 - 4
assistMg/src/main/java/com/hotent/util/FileUploadUtil.java

@@ -96,7 +96,7 @@ public class FileUploadUtil {
     }
 
 
-    public static final String getPathFileName(String uploadDir, String fileName) throws IOException
+    public static final String getPathFileName(String uploadDir, String fileName)
     {
         int dirLastIndex = EipConfig.getProfile().length() + 1;
         String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
@@ -157,7 +157,7 @@ public class FileUploadUtil {
      * @param fileName 文件名
      * @return 文件扩展名
      */
-    private static String getFileExtension(String fileName) {
+    public static String getFileExtension(String fileName) {
         if (fileName == null || fileName.lastIndexOf(".") == -1) {
             return "";
         }
@@ -169,7 +169,7 @@ public class FileUploadUtil {
      * @param originalFilename 原始文件名
      * @return 新文件名
      */
-    private static String generateFileName(String originalFilename) {
+    public static String generateFileName(String originalFilename) {
         String extension = "";
         String name = originalFilename;
 
@@ -192,7 +192,7 @@ public class FileUploadUtil {
      * @param fileExtension 文件扩展名
      * @return 完整保存路径
      */
-    private static String generateSavePath(String baseUploadPath, String fileName, String fileExtension) {
+    public static String generateSavePath(String baseUploadPath, String fileName, String fileExtension) {
         // 标准化路径分隔符
         String separator ="/";
 

+ 11 - 10
assistMg/src/main/java/com/hotent/util/wordexcelutils/DocumentProcessorExample.java

@@ -1,6 +1,7 @@
 package com.hotent.util.wordexcelutils;
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 public class DocumentProcessorExample {
@@ -9,27 +10,27 @@ public class DocumentProcessorExample {
         processWordExample();
 
         // Excel文档处理示例
-        processExcelExample();
+        //processExcelExample();
     }
 
     private static void processWordExample() {
         // 文本替换映射
         Map<String, String> textReplacements = new HashMap<>();
-        textReplacements.put("{name}", "张三");
-        textReplacements.put("{date}", "2023-10-01");
-        textReplacements.put("{company}", "某某公司");
+        textReplacements.put("{价格主管部门或成本调查机构}", "张三");
+        textReplacements.put("{送达文书名称}", "2023-10-01");
+        textReplacements.put("{送达文书文号}", "某某公司");
 
         // 图片替换映射
-        Map<String, String> imageReplacements = new HashMap<>();
-        imageReplacements.put("{signature}", "path/to/signature.png");
-        imageReplacements.put("{logo}", "path/to/logo.jpg");
+        //Map<String, String> imageReplacements = new HashMap<>();
+        //imageReplacements.put("{signature}", "path/to/signature.png");
+        //imageReplacements.put("{logo}", "path/to/logo.jpg");
 
         // 处理Word文档
         DocumentProcessor.processWordDocument(
-            "template.docx",
-            "output.docx",
+            "C:\\Users\\123\\Desktop\\送  达  回  证_20251105182242_856.docx",
+            "C:\\Users\\123\\Desktop\\output.docx",
             textReplacements,
-            imageReplacements
+            new LinkedHashMap<>()
         );
     }