Prechádzať zdrojové kódy

撰写节点添加估价对象时合并到已有产品号,评估总价和审核状态更新

wucl 10 mesiacov pred
rodič
commit
2dba585c6a

+ 3 - 0
dao/src/main/java/com/dayou/mapper/MajorProductionMapper.java

@@ -6,6 +6,7 @@ import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.*;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Set;
 
@@ -60,4 +61,6 @@ public interface MajorProductionMapper extends CustomBaseMapper<MajorProduction>
     void saveSecondCheckId(@Param("secondCheckId")Long secondCheckId, @Param("businessId")Long businessId, @Param("businessMinId")String businessMinId);
 
     Long getSecondCheckId( @Param("businessId")Long businessId, @Param("businessMinId")String businessMinId);
+
+    MajorProduction getEvaluateAmountByProductionNo(@Param("toMergeNumber") String toMergeNumber);
 }

+ 3 - 0
dao/src/main/java/com/dayou/mapper/MajorTargetMapper.java

@@ -5,6 +5,7 @@ import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.IdNameVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Set;
 
@@ -39,4 +40,6 @@ public interface MajorTargetMapper extends CustomBaseMapper<MajorTarget> {
     void cleanSubLetterNo(@Param("set") Set<String> letterNos);
 
     List<MajorTarget> getList(@Param("vo") MajorTarget majorTarget);
+
+    BigDecimal getEvaluateAmountByTargetId(@Param("targetIds") List<Long> targetIds);
 }

+ 12 - 0
dao/src/main/resources/mapper/MajorProductionMapper.xml

@@ -746,4 +746,16 @@
     <select id="getSecondCheckId" resultType="java.lang.Long">
         select second_check_id from major_production where major_id =#{businessId} and report_no = #{businessMinId} and deleted = 0
     </select>
+
+    <select id="getEvaluateAmountByProductionNo" parameterType="java.lang.String" resultType="com.dayou.entity.MajorProduction">
+        SELECT
+            mp.id,
+            m.evaluate_aim,
+            mp.evaluate_amount
+        FROM
+            major_production mp
+                LEFT JOIN major m ON m.id = mp.major_id
+        WHERE
+            mp.report_no =  #{toMergeNumber} and mp.deleted = 0
+    </select>
 </mapper>

+ 8 - 0
dao/src/main/resources/mapper/MajorTargetMapper.xml

@@ -91,4 +91,12 @@
         major_id = #{vo.majorId} and statement_no is null and report_no is null and letter_no is null
         )
     </select>
+
+    <select id="getEvaluateAmountByTargetId" parameterType="java.util.List" resultType="java.math.BigDecimal">
+        select sum(evaluate_value) from major_target where evaluate_value is not null and deleted = 0 and id in (
+            <foreach collection="targetIds" item="item" separator="," index="index">
+                #{item}
+            </foreach>
+            )
+    </select>
 </mapper>

+ 2 - 0
domain/src/main/java/com/dayou/entity/MajorProduction.java

@@ -326,5 +326,7 @@ public class MajorProduction extends BaseEntity {
     private Long businessId;
     @TableField(exist = false)
     private Long orderFundId;
+    @TableField(exist = false)
+    private String evaluateAim;
 
 }

+ 4 - 0
service/src/main/java/com/dayou/service/IMajorProductionService.java

@@ -4,8 +4,10 @@ import com.dayou.entity.BusinessFile;
 import com.dayou.entity.MajorProduction;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.enums.ReportStatus;
 import com.dayou.vo.*;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -89,4 +91,6 @@ public interface IMajorProductionService extends IService<MajorProduction> {
     Boolean noTaskConfirmDelivery(Long id);
 
     List<MajorProduction> getPendingList(MajorProduction majorProduction);
+
+    void updateEvaluateAmountAndCheckState(MajorProduction majorProduction);
 }

+ 23 - 0
service/src/main/java/com/dayou/service/impl/MajorProductionServiceImpl.java

@@ -492,6 +492,29 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
     }
 
     @Override
+    public void updateEvaluateAmountAndCheckState(MajorProduction majorProduction) {
+        BigDecimal evaluateAmount = majorProduction.getEvaluateAmount();
+        if (majorProduction.getEvaluateAim().equals(PLEDGE)) {
+            //抵押类是否需要复审和三审逻辑 ?
+            if (evaluateAmount.compareTo(EVALUATE_MIN) <= 0) {
+                majorProduction.setSecondCheck(ReportStatus.不审.name());
+                majorProduction.setThirdCheck(ReportStatus.不审.name());
+            }
+            if (evaluateAmount.compareTo(EVALUATE_MIN) > 0 && evaluateAmount.compareTo(EVALUATE_MAX) <= 0) {
+                majorProduction.setSecondCheck(ReportStatus.待审核.name());
+                majorProduction.setThirdCheck(ReportStatus.不审.name());
+            }
+            if (evaluateAmount.compareTo(EVALUATE_MAX) > 0) {
+                majorProduction.setSecondCheck(ReportStatus.待审核.name());
+                majorProduction.setThirdCheck(ReportStatus.待审核.name());
+            }
+        }
+        this.update(new LambdaUpdateWrapper<MajorProduction>().set(MajorProduction::getEvaluateAmount,evaluateAmount)
+                .set(MajorProduction::getSecondCheck,majorProduction.getSecondCheck())
+                .set(MajorProduction::getThirdCheck,majorProduction.getThirdCheck()).eq(BaseEntity::getId,majorProduction.getId()));
+    }
+
+    @Override
     public Page<TaskTodoVO> todoSaveFilePage(Page page, TaskTodoVO todoVO,String keyword) {
         todoVO.setHandlerId(LoginContext.getCurrentUserId());
         Page<TaskTodoVO> ret = majorProductionMapper.todoSaveFilePage(page,todoVO,keyword);

+ 20 - 3
service/src/main/java/com/dayou/service/impl/MajorTargetServiceImpl.java

@@ -9,13 +9,15 @@ import com.dayou.common.BaseEntity;
 import com.dayou.dto.MajorTargetMergeNumberDTO;
 import com.dayou.dto.TakeNumberDTO;
 import com.dayou.dto.TaskRecordDTO;
+import com.dayou.entity.MajorProduction;
 import com.dayou.entity.MajorTarget;
 import com.dayou.enums.ProductionEnum;
 import com.dayou.enums.TakeNumberEnum;
-import com.dayou.exception.ErrorCode;
+import com.dayou.mapper.MajorProductionMapper;
 import com.dayou.mapper.MajorTargetMapper;
 import com.dayou.service.IBusinessNumberService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.service.IMajorProductionService;
 import com.dayou.service.IMajorTargetService;
 import com.dayou.vo.IdNameVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,9 +25,8 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
+import java.math.BigDecimal;
 import java.util.List;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 import static com.dayou.enums.ProductionEnum.*;
@@ -50,6 +51,11 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
 
     @Autowired
     private IMajorTargetService majorTargetService;
+    @Autowired
+    private MajorProductionMapper majorProductionMapper;
+
+    @Autowired
+    private IMajorProductionService majorProductionService;
 
     @Override
     public List<MajorTarget> getList(MajorTarget majorTarget){
@@ -253,11 +259,21 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
         return null;
     }
 
+    @Transactional
     @Override
     public Boolean mergeNumber(MajorTargetMergeNumberDTO mergeDTO) {
         String mergeType = mergeDTO.getMergeType();
         String toMergeNumber = mergeDTO.getToMergeNumber();
         List<Long> targetIds = mergeDTO.getTargetIds();
+        MajorProduction majorProduction = majorProductionMapper.getEvaluateAmountByProductionNo(toMergeNumber);
+
+        //更新产品评估价格和是否二三审状态
+        BigDecimal evaluateValue = majorTargetMapper.getEvaluateAmountByTargetId(targetIds).multiply(BigDecimal.valueOf(10000L));
+
+        majorProduction.setEvaluateAmount(majorProduction.getEvaluateAmount().add(evaluateValue));
+
+        majorProductionService.updateEvaluateAmountAndCheckState(majorProduction);
+
         if (mergeType.equals(STATEMENT.name())){
             return this.update(new LambdaUpdateWrapper<MajorTarget>().set(MajorTarget::getStatementNo,toMergeNumber)
                     .in(BaseEntity::getId,targetIds));
@@ -267,6 +283,7 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
             return this.update(new LambdaUpdateWrapper<MajorTarget>().set(MajorTarget::getStatementNo,one.getStatementNo())
                             .set(MajorTarget::getReportNo,toMergeNumber)
                     .in(BaseEntity::getId,targetIds));
+
         }
         if (mergeType.equals(LETTER.name())){
             MajorTarget one = this.list(new LambdaQueryWrapper<MajorTarget>().eq(MajorTarget::getLetterNo, toMergeNumber)).get(0);