Prechádzať zdrojové kódy

个贷流程优化3

wucl 1 rok pred
rodič
commit
1e88f39a7a

+ 5 - 0
domain/src/main/java/com/dayou/entity/PersonalProduction.java

@@ -83,4 +83,9 @@ public class PersonalProduction extends BaseEntity {
      */
     private Long userId;
 
+    /**
+     * 是否线上产品
+     */
+    private Boolean isOnline;
+
 }

+ 6 - 0
domain/src/main/java/com/dayou/entity/PersonalTarget.java

@@ -1,6 +1,7 @@
 package com.dayou.entity;
 import java.math.BigDecimal;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.dayou.annotation.LuceneResource;
 import com.dayou.common.BaseEntity;
 import com.dayou.enums.MainBusinessEnum;
@@ -115,4 +116,9 @@ public class PersonalTarget extends BaseEntity {
      */
     private String validateCode;
 
+    @TableField(exist = false)
+    private String bailorA;
+    @TableField(exist = false)
+    private String bailorB;
+
 }

+ 40 - 9
service/src/main/java/com/dayou/service/impl/PersonalProductionServiceImpl.java

@@ -44,7 +44,7 @@ import java.util.stream.Collectors;
 
 import static com.dayou.common.Constants.*;
 import static com.dayou.enums.CertificateEnum.*;
-import static com.dayou.enums.ProductionEnum.STATEMENT;
+import static com.dayou.enums.ProductionEnum.*;
 
 /**
  * <p>
@@ -152,15 +152,15 @@ public class PersonalProductionServiceImpl extends ServiceImpl<PersonalProductio
         textMap.put("rightsType",calculate.getRightsType());
         if (tag == 1){
             NameUrlDTO statementPath = genStatement(orderId,target,textMap,certificateEnum);
-            return createPro(target.getId(),statementPath,tag);
+            return createPro(target.getId(),statementPath,tag,true);
         }
         if (tag == 2){
             NameUrlDTO technicPath = genTechnic(orderId,target,textMap,calculate,certificateEnum);
-            return createPro(target.getId(),technicPath,tag);
+            return createPro(target.getId(),technicPath,tag,true);
         }
         if (tag == 3){
             NameUrlDTO finalPath = genFinal(orderId,target,textMap,certificateEnum);
-            return createPro(target.getId(),finalPath,tag);
+            return createPro(target.getId(),finalPath,tag,true);
         }
 
         return Boolean.FALSE;
@@ -352,7 +352,7 @@ public class PersonalProductionServiceImpl extends ServiceImpl<PersonalProductio
             String url = dfsConfig.getDomain() + upload;
             nameUrlDTO.setName(originalFilename);
             nameUrlDTO.setUrl(url);
-            return createPro(targetId,nameUrlDTO,tag);
+            return createPro(targetId,nameUrlDTO,tag,false);
         } catch (InvalidExtensionException e) {
             throw new RuntimeException(e);
         } catch (IOException e) {
@@ -371,9 +371,35 @@ public class PersonalProductionServiceImpl extends ServiceImpl<PersonalProductio
         Long targetId = production.getTargetId();
         String type = production.getProduction();
         if (STATEMENT.name().equals(type)){
+            PersonalProduction pp = this.getOne(new LambdaQueryWrapper<PersonalProduction>().eq(PersonalProduction::getProduction, type)
+                    .eq(PersonalProduction::getTargetId, targetId).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            if (pp==null){
+                    createPro(targetId,null,1,false);
+            }
+            return this.update(new LambdaUpdateWrapper<PersonalProduction>().eq(PersonalProduction::getProduction,type)
+                        .eq(PersonalProduction::getTargetId,targetId).set(PersonalProduction::getCheckState, ReportStatus.已审核));
+
+        }
+        else if(LETTER.name().equals(type)){
+            PersonalProduction pp = this.getOne(new LambdaQueryWrapper<PersonalProduction>().eq(PersonalProduction::getProduction, type)
+                    .eq(PersonalProduction::getTargetId, targetId).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            if (pp==null){
+                createPro(targetId,null,4,false);
+            }
             return this.update(new LambdaUpdateWrapper<PersonalProduction>().eq(PersonalProduction::getProduction,type)
                     .eq(PersonalProduction::getTargetId,targetId).set(PersonalProduction::getCheckState, ReportStatus.已审核));
-        }else{
+        }
+        else{
+            PersonalProduction pp1 = this.getOne(new LambdaQueryWrapper<PersonalProduction>().eq(PersonalProduction::getProduction, FINAL.name())
+                    .eq(PersonalProduction::getTargetId, targetId).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            PersonalProduction pp2 = this.getOne(new LambdaQueryWrapper<PersonalProduction>().eq(PersonalProduction::getProduction, TECHNIC.name())
+                    .eq(PersonalProduction::getTargetId, targetId).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            if (pp1==null){
+                createPro(targetId,null,3,false);
+            }
+            if (pp2==null){
+                createPro(targetId,null,2,false);
+            }
             return this.update(new LambdaUpdateWrapper<PersonalProduction>().ne(PersonalProduction::getProduction,STATEMENT.name())
                     .eq(PersonalProduction::getTargetId,targetId).set(PersonalProduction::getCheckState, ReportStatus.已审核));
         }
@@ -485,7 +511,7 @@ public class PersonalProductionServiceImpl extends ServiceImpl<PersonalProductio
      * @param tag
      * @return
      */
-    private Boolean createPro(Long targetId,NameUrlDTO nameUrlDTO,Integer tag){
+    private Boolean createPro(Long targetId,NameUrlDTO nameUrlDTO,Integer tag,Boolean isOnline){
         PersonalProduction pp = null;
         String productionType = null;
         if (tag ==1){
@@ -506,12 +532,17 @@ public class PersonalProductionServiceImpl extends ServiceImpl<PersonalProductio
         if (pp==null){
             PersonalProduction personalProduction = new PersonalProduction();
             personalProduction.setTargetId(targetId);
-            personalProduction.setFilePath(JSON.toJSONString(nameUrlDTO));
+            if (nameUrlDTO!=null){
+                personalProduction.setFilePath(JSON.toJSONString(nameUrlDTO));
+            }
             personalProduction.setProduction(productionType);
             personalProduction.setUserId(LoginContext.getCurrentUserId());
+            personalProduction.setIsOnline(isOnline);
             return this.add(personalProduction);
         }else {
-            pp.setFilePath(JSON.toJSONString(nameUrlDTO));
+            if (nameUrlDTO!=null){
+                pp.setFilePath(JSON.toJSONString(nameUrlDTO));
+            }
             pp.setModified(DateUtils.getNowDate());
             return this.update(pp);
         }

+ 8 - 0
service/src/main/java/com/dayou/service/impl/PersonalTargetServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.dayou.common.BaseEntity;
 import com.dayou.dto.TaskRecordDTO;
+import com.dayou.entity.Personal;
 import com.dayou.entity.PersonalTarget;
 import com.dayou.enums.CertificateEnum;
 import com.dayou.mapper.PersonalTargetMapper;
@@ -88,10 +89,17 @@ public class PersonalTargetServiceImpl extends ServiceImpl<PersonalTargetMapper,
         return this.removeById(id);
     }
 
+
+    @Transactional
     @Override
     public Boolean updatePrice(TaskRecordDTO<PersonalTarget> taskRecordDTO) {
         PersonalTarget taskData = taskRecordDTO.getTaskData();
         if (taskData.getId()!=null){
+            //把订单表的委托人更新一下
+            personalService.update(new LambdaUpdateWrapper<Personal>()
+                    .eq(BaseEntity::getId,taskData.getPersonalId()).set(Personal::getLocation,taskData.getLocation())
+                    .set(Personal::getBailorA,taskData.getBailorA()).set(Personal::getBailorB,taskData.getBailorB()));
+
             return this.update(new LambdaUpdateWrapper<PersonalTarget>().eq(BaseEntity::getId,taskData.getId())
                     .set(PersonalTarget::getAcreage,taskData.getAcreage()).set(PersonalTarget::getPrice,taskData.getPrice()).set(PersonalTarget::getAmount,taskData.getAmount()));
         }

+ 2 - 2
service/src/main/java/com/dayou/service/workflow/WorkNodeServiceImpl.java

@@ -234,12 +234,12 @@ public class WorkNodeServiceImpl extends ServiceImpl<WorkNodeMapper, WorkNode> i
                 }
             }
         }
-        //价值意见书送达反馈 后有可能报告、复评函、归档审核
+        //价值意见书送达反馈 后有可能报告、复评函、不再出具(进入提交资料归档)
         if (WorkflowNodeEnum.STATEMENT_FEEDBACK.name().equals(nodeCode)) {
             necessaryNodes.remove(ProductionEnum.STATEMENT.name());
             if (necessaryNodes.size() == 0) {
                 //归档审核
-                return flowNodes.stream().filter(x -> x.getCode().equals(WorkflowNodeEnum.CHECK_ARCHIVING.name())).findFirst().get();
+                return flowNodes.stream().filter(x -> x.getCode().equals(WorkflowNodeEnum.COMMIT_FILE.name())).findFirst().get();
             }
             for (Map.Entry<String, List<WorkflowNodeEnum>> map : necessaryNodes.entrySet()) {
                 List<String> codes = map.getValue().stream().map(WorkflowNodeEnum::getCode).collect(Collectors.toList());

+ 1 - 1
service/src/main/java/com/dayou/workflow/handler/PersonalNodeHandler.java

@@ -150,7 +150,7 @@ public class PersonalNodeHandler extends WorkNodeProcessable {
         Long instanceNodeId = commit.getInstanceNodeId();
         WorkFlowNodeInstance currentNode = workFlowNodeInstanceMapper.getInstanceNodeInfoById(instanceNodeId);
         //如果是撰写节点(意见书,报告,复评函)退回。需删除产品业务信息
-        List<String> needToCleanFeedbackNodes = Arrays.asList(new String[]{QUOTATION_FEEDBACK.name(), GENERATE_STATEMENT.name(),WRITE_REPORT.name(), WRITE_LETTER.name()});
+        List<String> needToCleanFeedbackNodes = Arrays.asList(new String[]{QUOTATION_FEEDBACK.name(), GENERATE_STATEMENT.name(),WRITE_REPORT.name(), WRITE_LETTER.name(),COMMIT_FILE.name()});
         if (needToCleanFeedbackNodes.contains(currentNode.getNodeCode())){
             //如果是在撰写意见书退回,清空反馈
             PersonalTarget target = personalTargetService.getOne(new LambdaQueryWrapper<PersonalTarget>().select(PersonalTarget::getFeedback, BaseEntity::getId)

+ 8 - 1
sql/update_sql.sql

@@ -558,4 +558,11 @@ ALTER TABLE assets_evaluation_target MODIFY choice_evaluation_method_id JSON NOT
   修改人:苟耕铨
  */
 # major_target表修改
-ALTER TABLE `major_target` ADD defined_evaluation_method VARCHAR(128) NULL COMMENT '自定义其他评估方法';
+ALTER TABLE `major_target` ADD defined_evaluation_method VARCHAR(128) NULL COMMENT '自定义其他评估方法';
+
+/**
+    日期:2024-07-12
+    修改人:吴长林
+    已更新到test-env
+ */
+ALTER TABLE `personal_production` ADD is_online bit(1) NULL COMMENT '是否是线上产品';