Quellcode durchsuchen

财务-报告修改

wangqiang vor 2 Jahren
Ursprung
Commit
f6f6dda9f1

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReview.java

@@ -1,5 +1,6 @@
 package com.jeeplus.test.cw.projectReport.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
@@ -35,6 +36,12 @@ public class CwProjectReview extends BaseEntity {
     private String processDefinitionId;
 
     /**
+     * 报告类型
+     */
+    @TableField(exist = false)
+    private String reportType;
+
+    /**
      * 状态
      */
     private String reviewStatus;

+ 8 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectInfoMapper.java

@@ -69,4 +69,12 @@ public interface CwProjectInfoMapper extends BaseMapper<CwProjectInfoData> {
      * @return
      */
     CwProjectInfoData getByReportId(String id);
+
+    /**
+     * 根据报告id修改报告文号与报告流水号
+     * @param
+     */
+    void updateByReportId(@Param("reportId")String reportId,
+                          @Param("reportNumber")String reportNumber,
+                          @Param("reportNo")String reportNo);
 }

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectInfoMapper.xml

@@ -4,6 +4,10 @@
     <update id="updateSignById">
         update cw_project_report_new_line set delete_sign = #{sign} where id = #{id}
     </update>
+    <update id="updateByReportId">
+        update cw_project_report_new_line set report_no = #{reportNo} report_number = #{reportNumber}
+        where report_id = #{reportId}
+    </update>
     <delete id="deleteByReportId">
         update cw_project_report_new_line set del_flag = '1' where report_id = #{id}
     </delete>

+ 85 - 17
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportReviewService.java

@@ -3,16 +3,15 @@ package com.jeeplus.test.cw.projectReport.service;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReview;
-import com.jeeplus.test.cw.projectReport.domain.CwProofreadDetail;
+import com.jeeplus.test.cw.projectReport.domain.*;
+import com.jeeplus.test.cw.projectReport.mapper.CwProjectInfoMapper;
 import com.jeeplus.test.cw.projectReport.mapper.CwProjectReportReviewMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jeeplus.test.cw.projectReport.mapper.CwProofreadDetailMapper;
 import com.jeeplus.flowable.service.FlowTaskService;
 import com.jeeplus.test.cw.projectReportArchive.domain.CwProjectReportArchive;
 import com.jeeplus.test.cw.projectReportArchive.mapper.CwProjectReportArchiveMapper;
+import com.jeeplus.test.mould.service.SerialnumTplService;
 import org.flowable.bpmn.model.FlowNode;
 import org.flowable.engine.TaskService;
 import org.apache.commons.beanutils.PropertyUtils;
@@ -46,12 +45,18 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
     private CwProofreadDetailMapper detailMapper;
 
     @Resource
+    private SerialnumTplService serialnumTplService;
+
+    @Resource
     private FlowTaskService flowTaskService;
 
     @Resource
     private CwProjectReportArchiveMapper cwProjectReportArchiveMapper;
 
     @Resource
+    private CwProjectInfoMapper infoMapper;
+
+    @Resource
     private TaskService taskService;
 
     public CwProjectReportData queryByReportId(String id) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
@@ -83,13 +88,13 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
             CwProjectReview detail = mapper.selectById(reportData.getId());
             if (detail != null){
                 reportData.setCreateBy(reportData.getCreateBy());
-                return update(reportData,detail.getId(),detail.getProcInsId());
+                return update(reportData,detail);
             } else {
                 //传过来的是报告表id
                 detail = mapper.selectByReportId(reportData.getId());
                 if (detail != null){
                     reportData.setCreateBy(reportData.getCreateBy());
-                    return update(reportData,detail.getId(),detail.getProcInsId());
+                    return update(reportData,detail);
                 }
             }
         }
@@ -100,19 +105,56 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
      * 合同登记修改
      */
     @Transactional(rollbackFor = Exception.class)
-    public String update(CwProjectReportData reportData,String id,String procInsId) throws Exception{
+    public String update(CwProjectReportData reportData,CwProjectReview detail) throws Exception{
         //获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         CwProjectReview review = new CwProjectReview();
         BeanUtils.copyProperties(reportData, review);
+        review.setCreateBy(detail.getCreateBy());
+        review.setCreateDate(detail.getCreateDate());
         review.setUpdateBy(userDTO.getId());
         review.setUpdateDate(new Date());
-        review.setId(id);
-        if (StringUtils.isNotEmpty(procInsId)) {
-            FlowNode currentTask = flowTaskService.getCurrentTask(procInsId);
+        review.setId(detail.getId());
+        if (StringUtils.isNotEmpty(detail.getProcInsId())) {
+            FlowNode currentTask = flowTaskService.getCurrentTask(detail.getProcInsId());
             if(null != currentTask && StringUtils.isNotBlank(currentTask.getName())) {
                 if ("三级复核".equals(currentTask.getName())) {
                     review.setReviewStatus("5");
+                    //设置报告文号、报告流水号
+                    CwProjectInfoData infoData = new CwProjectInfoData();
+                    //报告文号生成
+                    String documentNo = "";
+                    try {
+                        documentNo = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectInfoData.BIZ_CODE);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    infoData.setReportId(review.getReportId());
+                    infoData.setReportNo(documentNo);
+                    //报告流水号生成  根据项目编号去new_line表查询
+                    String reportNumber = infoMapper.selectReportNumberByProjectNo(reportData.getProjectNumber());
+                    int stress = 0;
+                    if (null != reportNumber){
+                        if (reportNumber.contains(reportData.getProjectNumber() + "-0")){
+                            stress = reportNumber.indexOf("-0");//分隔符位置
+                        }else {
+                            stress = reportNumber.indexOf("-");//分隔符位置
+                        }
+                        String substring = reportNumber.substring(stress + 1, reportNumber.length());
+                        int integer = Integer.parseInt(substring);
+
+                        String newReportNumber = "";
+                        if (integer>=9){
+                            newReportNumber = reportData.getProjectNumber() + "-" + (integer + 1);
+                        }else {
+                            newReportNumber = reportData.getProjectNumber() + "-0" + (integer + 1);
+                        }
+
+                        infoData.setReportNumber(newReportNumber);
+                    }else {
+                        infoData.setReportNumber(reportData.getProjectNumber() + "-0" + "1");
+                    }
+                    infoMapper.updateByReportId(infoData.getReportId(),infoData.getReportNumber(),infoData.getReportNo());
                 }
             }
         }
@@ -129,13 +171,26 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
         mapper.updateById(review);
         //对复核数据进行持久化操作
         if (CollectionUtils.isNotEmpty(reportData.getDetails())) {
-            for (CwProofreadDetail detail:reportData.getDetails()) {
-                CwProofreadDetail detail1 = detailMapper.getByTypeIdAndInfoId(detail.getTypeId(),review.getId());
-                detail.setId(detail1.getId());
-                detail.setInfoId(review.getId());
-                detail.setUpdateBy(userDTO.getId());
-                detail.setUpdateDate(new Date());
-                detailMapper.updateById(detail);
+            for (CwProofreadDetail detail1:reportData.getDetails()) {
+                CwProofreadDetail detail2 = detailMapper.getByTypeIdAndInfoId(detail1.getTypeId(),review.getId());
+                if (null == detail2) {
+                    String detailId = UUID.randomUUID().toString().replace("-", "");
+                    detail1.setId(detailId);
+                    detail1.setInfoId(detail.getId());
+                    detail1.setCreateBy(userDTO.getId());
+                    detail1.setCreateDate(new Date());
+                    detail1.setUpdateBy(userDTO.getId());
+                    detail1.setUpdateDate(new Date());
+                    detailMapper.insert(detail1);
+                } else {
+                    detail1.setCreateDate(detail2.getCreateDate());
+                    detail1.setCreateBy(detail2.getCreateBy());
+                    detail1.setId(detail2.getId());
+                    detail1.setInfoId(review.getId());
+                    detail1.setUpdateBy(userDTO.getId());
+                    detail1.setUpdateDate(new Date());
+                    detailMapper.updateById(detail1);
+                }
             }
         }
         return review.getId();
@@ -150,7 +205,20 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
         CwProjectReview info = new CwProjectReview();
         BeanUtils.copyProperties(dto, info);
         //报告编号生成
+        String documentNo = "";
+        if (info.getReportType().equals("1")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE1);
+        } else if (info.getReportType().equals("2")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE2);
+        } else if (info.getReportType().equals("3")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE3);
+        } else if (info.getReportType().equals("4")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE4);
+        } else if (info.getReportType().equals("5")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE5);
+        }
         info.setId(id);
+        info.setReportReviewNo(documentNo);
         info.setCreateBy(userDTO.getId());
         info.setCreateDate(new Date());
         info.setUpdateBy(userDTO.getId());

+ 66 - 36
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -127,6 +127,9 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
     @Resource
     private CwProjectReportReviewMapper reviewMapper;
 
+    @Resource
+    private CwProjectReportReviewMapper mapper;
+
     /**
      * 保存项目以及其他相关信息
      * @param reportData
@@ -247,44 +250,44 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         infoData.setOpinionType(report.getOpinionType());
         infoData.setSealType(report.getSealType());
         infoData.setServedUnitId(report.getServedUnitId());
-        //报告文号生成
-        String documentNo = "";
-        try {
-            documentNo = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectInfoData.BIZ_CODE);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+//        //报告文号生成
+//        String documentNo = "";
+//        try {
+//            documentNo = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectInfoData.BIZ_CODE);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
         //在插入报告文号前先去报告文号报废表中根据时间排序查看是否有报告文号,有则使用,delflag改为1
-        List<String> reportNo = infoMapper.getReportNo();
-        if (null!= reportNo & reportNo.size()>0){
-            infoData.setReportNo(reportNo.get(0));
-            cancelMapper.updateFlag("1",reportNo.get(0));
-        }else {
-            infoData.setReportNo(documentNo);
-        }
+//        List<String> reportNo = infoMapper.getReportNo();
+//        if (null!= reportNo & reportNo.size()>0){
+//            infoData.setReportNo(reportNo.get(0));
+//            cancelMapper.updateFlag("1",reportNo.get(0));
+//        }else {
+//            infoData.setReportNo(documentNo);
+//        }
         //报告流水号生成  根据项目编号去new_line表查询
-        String reportNumber = infoMapper.selectReportNumberByProjectNo(report.getProjectNumber());
-        int stress = 0;
-        if (null != reportNumber){
-            if (reportNumber.contains(report.getProjectNumber() + "-0")){
-                stress = reportNumber.indexOf("-0");//分隔符位置
-            }else {
-                stress = reportNumber.indexOf("-");//分隔符位置
-            }
-            String substring = reportNumber.substring(stress + 1, reportNumber.length());
-            int integer = Integer.parseInt(substring);
-
-            String newReportNumber = "";
-            if (integer>=9){
-                newReportNumber = report.getProjectNumber() + "-" + (integer + 1);
-            }else {
-                newReportNumber = report.getProjectNumber() + "-0" + (integer + 1);
-            }
-
-            infoData.setReportNumber(newReportNumber);
-        }else {
-            infoData.setReportNumber(report.getProjectNumber() + "-0" + "1");
-        }
+//        String reportNumber = infoMapper.selectReportNumberByProjectNo(report.getProjectNumber());
+//        int stress = 0;
+//        if (null != reportNumber){
+//            if (reportNumber.contains(report.getProjectNumber() + "-0")){
+//                stress = reportNumber.indexOf("-0");//分隔符位置
+//            }else {
+//                stress = reportNumber.indexOf("-");//分隔符位置
+//            }
+//            String substring = reportNumber.substring(stress + 1, reportNumber.length());
+//            int integer = Integer.parseInt(substring);
+//
+//            String newReportNumber = "";
+//            if (integer>=9){
+//                newReportNumber = report.getProjectNumber() + "-" + (integer + 1);
+//            }else {
+//                newReportNumber = report.getProjectNumber() + "-0" + (integer + 1);
+//            }
+//
+//            infoData.setReportNumber(newReportNumber);
+//        }else {
+//            infoData.setReportNumber(report.getProjectNumber() + "-0" + "1");
+//        }
         infoMapper.insert(infoData);
 
         //对上传的文件数据进行持久化操作
@@ -343,6 +346,32 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         cwProjectReportSignature3.setStatus("0");
         cwProjectReportSignatureMapper.insert(cwProjectReportSignature3);
 
+        //复核数据添加
+        //保存基本信息
+        CwProjectReview info = new CwProjectReview();
+        BeanUtils.copyProperties(reportData, info);
+        //报告编号生成
+        String documentNo = "";
+        if (info.getReportType().equals("1")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE1);
+        } else if (info.getReportType().equals("2")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE2);
+        } else if (info.getReportType().equals("3")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE3);
+        } else if (info.getReportType().equals("4")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE4);
+        } else if (info.getReportType().equals("5")){
+            documentNo = serialnumTplService.genSerialReviewNum(userDTO.getCompanyDTO().getId(), CwProjectReview.BIZ_CODE5);
+        }
+        info.setId(id);
+        info.setReportReviewNo(documentNo);
+        info.setCreateBy(userDTO.getId());
+        info.setCreateDate(new Date());
+        info.setUpdateBy(userDTO.getId());
+        info.setUpdateDate(new Date());
+        info.setReportId(report.getId());
+        mapper.insert(info);
+
         return report.getId();
     }
 
@@ -533,6 +562,7 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 reportData.setRemark2(review.getRemark2());
                 reportData.setRemark3(review.getRemark3());
                 reportData.setComputerNo(review.getComputerNo());
+                reportData.setReportReviewNo(review.getReportReviewNo());
                 //将一级复核等填入数据查出
                 List<CwProofreadDetail> details = detailMapper.findByReportInfoId(review.getId());
                 if (null != details) {

+ 72 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/mould/service/SerialnumTplService.java

@@ -143,6 +143,78 @@ public class SerialnumTplService {
         return "";
     }
 
+    @Transactional(readOnly = false,propagation = Propagation.REQUIRES_NEW)
+    public String genSerialReviewNum(String companyId, String bizCode) throws Exception {
+        //获取当前登录人信息
+        UserDTO dto = UserUtils.getCurrentUserDTO();
+        Office office = officeMapper.selectById(companyId);
+        if (StringUtils.isBlank(bizCode)){
+            throw new Exception("生成编号失败,业务类型不能为空");
+        }
+        if (office != null) {
+            SysSerialnumTpl numTpl = this.querySerialTpl(office, bizCode);
+            if (numTpl == null) {
+                //查询编号模板   {brspnm}DZ-{year}-{serialNum}
+                SysSerialnumTpl serialNumTpl = serialnumTplMapper.queryByComAndBizCode(companyId, bizCode);
+                serialNumTpl.setCompanyId(companyId);
+                serialNumTpl.setSerialNum(0);
+                serialNumTpl.setCreateBy(dto.getId());
+                serialNumTpl.setId(UUID.randomUUID().toString().replace("-", ""));
+                serialnumTplMapper.insert(serialNumTpl);
+                numTpl = serialNumTpl;
+            }
+            if (numTpl == null) {
+                throw new Exception("生成编号失败,请先设置相关业务编号模板");
+            }
+            String year = DateUtils.formatDate(new Date(), "yyyy");
+            if (!year.equals(numTpl.getYearBuilt())) {
+                serialnumTplMapper.resetSerialNum(numTpl.getId(), numTpl.getYearBuilt(), year);
+            }
+            Map<String, String> map = new HashMap<>();
+            String serialTpl = numTpl.getSerialTpl();
+            int i = serialnumTplMapper.updateSerialNum(numTpl);
+            if (i != 1) {
+                throw new Exception("生成编号失败,请稍后重试");
+            }
+            String num = String.valueOf(numTpl.getSerialNum() + 1);
+            StringBuffer sb = new StringBuffer();
+//            for (int x = 0; x < (numTpl.getSerialNumLen() - num.length()); x++) {
+//                sb.append("0");
+//            }
+            sb.append(num);
+            //查询公司简称
+            if (serialTpl.contains("spnm")) {
+                String companyShortname = UserUtils.getSysParam("company_shortname");
+                map.put("spnm", StringUtils.isBlank(companyShortname) ? "" : companyShortname);
+            }
+            //查询分公司简称
+            if (serialTpl.contains("brspnm")) {
+                String branchShortname = UserUtils.getSysParam("branch_shortname");
+                map.put("brspnm", StringUtils.isBlank(branchShortname) ? "" : branchShortname);
+            }
+            //年份
+            if (serialTpl.contains("year")) {
+                map.put("year", year);
+            }
+            //月份
+            if (serialTpl.contains("month")) {
+                int month = new Date().getMonth() + 1;
+                map.put("month", month + "");
+            }
+            //序列号
+            if (serialTpl.contains("serialNum")) {
+                map.put("serialNum", sb.toString());
+            }
+            //日期
+            if (serialTpl.contains("day")) {
+                map.put("day", new Date().getDate() + "");
+            }
+            String serNum = StringUtils.renderString(serialTpl, map);
+            return serNum;
+        }
+        return "";
+    }
+
     private SysSerialnumTpl querySerialTpl(Office company, String bizCode) {
         SysSerialnumTpl numTpl = serialnumTplMapper.queryByComAndBizCode(company.getId(), bizCode);
         if (numTpl==null && company.getParentId()!=null && !"0".equals(company.getParentId())){