浏览代码

1.AssetsNodeHandler流程分叉(开发中)
2.修复根据节点查询订单无效的BUG
3.评估对象列表SQL修改
4.新增查询产品信息接口

GouGengquan 1 年之前
父节点
当前提交
9fd6a4d9cc

+ 17 - 1
biz-base/src/main/java/com/dayou/controller/AssetsProductionController.java

@@ -1,5 +1,7 @@
 package com.dayou.controller;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.dayou.dto.AProListSelectDTO;
 import com.dayou.dto.AssetsProductionDetailDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.workflow.annotation.FinishTask;
@@ -120,7 +122,11 @@ public class AssetsProductionController extends BaseController {
     @FinishTask
     @PostMapping("/writeAssetsProduction")
     public RestResponse<Boolean> writeAssetsProduction(@RequestBody TaskRecordDTO<AssetsProduction> taskRecordDTO) {
-        return RestResponse.data(assetsProductionService.writeAssetsProduction(taskRecordDTO.getTaskData()));
+        Boolean flag = assetsProductionService.writeAssetsProduction(taskRecordDTO.getTaskData());
+        if (ObjectUtil.isNull(flag)){
+            return RestResponse.success(flag,"该产品以出具!");
+        }
+        return RestResponse.data(flag);
     }
 
     /**
@@ -133,5 +139,15 @@ public class AssetsProductionController extends BaseController {
         return RestResponse.data(assetsProductionService.getAssetsProductionDetail(dto));
     }
 
+    /**
+     * 根据业务id与产品号查询产品信息
+     * @param aProListSelectDTO 查询dto
+     * @return List<AssetsProduction>
+     */
+    @GetMapping("/getProductionList")
+    public RestResponse<List<AssetsProduction>> getProductionList(AProListSelectDTO aProListSelectDTO) {
+        return RestResponse.data(assetsProductionService.getProductionList(aProListSelectDTO));
+    }
+
 }
 

+ 8 - 0
dao/src/main/java/com/dayou/mapper/AssetsProductionMapper.java

@@ -1,5 +1,6 @@
 package com.dayou.mapper;
 
+import com.dayou.dto.AProListSelectDTO;
 import com.dayou.entity.AssetsProduction;
 import com.dayou.dao.CustomBaseMapper;
 import org.apache.ibatis.annotations.Param;
@@ -61,4 +62,11 @@ public interface AssetsProductionMapper extends CustomBaseMapper<AssetsProductio
      * @return Boolean
      */
     Boolean writeAssetsProduction(AssetsProduction assetsProduction);
+
+    /**
+     * 根据业务id与产品号查询产品信息
+     * @param aProListSelectDTO 查询dto
+     * @return List<AssetsProduction>
+     */
+    List<AssetsProduction> getProductionList(AProListSelectDTO aProListSelectDTO);
 }

+ 8 - 3
dao/src/main/resources/mapper/AssetsEvaluationTargetMapper.xml

@@ -46,20 +46,25 @@
         check_value,
         purpose_name,
         type_name,
-        valuation_basis_date,
+        target.valuation_basis_date,
         (SELECT assets_evaluation_target_type.type_name FROM assets_evaluation_target_type WHERE
         assets_evaluation_target_type.id = target.evaluation_type_id) AS targetTypename,
         (SELECT assets_evaluation_target_type.type_name FROM assets_evaluation_target_type WHERE
         assets_evaluation_target_type.id = target.evaluation_type_sec_id) AS secTargetTypaName,
         value_type.type_name AS valueTypeName,
-        production_no
+        target.production_no,
+        production.create_production_date
         FROM assets_evaluation_target AS target
         LEFT JOIN assets_evaluation_target_purpose AS purpose ON purpose.id = target.evaluation_purpose_id
         LEFT JOIN assets_value_type AS value_type ON value_type.id = target.assets_value_id
+        LEFT JOIN assets_production AS production ON production.production_no = target.production_no
         WHERE target.assets_id = #{id}
         <if test="productionNo != null and productionNo != '' ">
-            AND production_no = #{productionNo}
+            AND target.production_no = #{productionNo}
         </if>
+<!--        <if test="productionNo == null or productionNo == '' ">-->
+<!--            AND create_production_date IS NULL-->
+<!--        </if>-->
         AND target.deleted = 0
     </select>
 

+ 11 - 11
dao/src/main/resources/mapper/AssetsMapper.xml

@@ -90,10 +90,6 @@
         AND record.handler_id = user.id
         AND nodeInstance.deleted = 0
         AND record.instance_id = nodeInstance.id
-        # 根据处理节点查询(节点code)
-        <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
-            AND node.`code` = #{assetsSelectDTO.nodeCode}
-        </if>
         ) AS nodeInfo ON nodeInfo.businessId = assets.id
         WHERE assets.deleted = 0
         #评估业务类别(业务类型)查询
@@ -117,6 +113,10 @@
             customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
             )
         </if>
+        # 根据处理节点查询(节点code)
+        <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
+            AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
+        </if>
         ORDER BY assets.created DESC
     </select>
 
@@ -266,9 +266,9 @@
                bank_address,
                bank_tel
         FROM order_fund
-        LEFT JOIN finance_invoice ON finance_invoice.order_fund_id = order_fund.id
+                 LEFT JOIN finance_invoice ON finance_invoice.order_fund_id = order_fund.id
         WHERE order_fund.business_id = #{id}
-        AND order_fund.deleted = 0
+          AND order_fund.deleted = 0
     </select>
 
     <!--根据业务类型与取号类型获取业务取号信息-->
@@ -276,15 +276,15 @@
         SELECT id, year, month, next_no
         FROM business_number
         WHERE take_type = #{takeType}
-        AND business_type = #{businessType}
-        AND year = #{year}
-        AND deleted = 0
+          AND business_type = #{businessType}
+          AND year = #{year}
+          AND deleted = 0
     </select>
 
     <!--新增取号信息-->
     <insert id="addBusinessNum">
         INSERT INTO business_number(id, take_type, business_type, year, month, next_no)
-        VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo})
+            VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo})
     </insert>
 
     <!--更新取号信息-->
@@ -296,4 +296,4 @@
     </update>
 
 
-</mapper>
+</mapper>

+ 15 - 0
dao/src/main/resources/mapper/AssetsProductionMapper.xml

@@ -101,5 +101,20 @@
         AND business_id = #{businessId}
     </update>
 
+    <!--根据业务id与产品号查询产品信息-->
+    <select id="getProductionList" resultType="com.dayou.entity.AssetsProduction">
+        SELECT id, business_id, production_no, production_type, signatory, client_name, client_tel, valuation_basis_date, evaluate_acreage, evaluate_amount, evaluate_price, owner, print_count, create_production_date, comment, repertory_state, repertory_in_time, repertory_out_time, file_path, save_file_date, delivery, qr_code
+        FROM assets_production
+        WHERE business_id = #{businessId}
+        <if test="production_no != null and production_no != '' ">
+            AND production_no = #{productionNo}
+        </if>
+        <if test="production_no == null or production_no == '' ">
+            AND create_production_date IS NOT NULL
+        </if>
+        AND deleted = 0
+    </select>
+
+
 
 </mapper>

+ 16 - 0
domain/src/main/java/com/dayou/dto/AProListSelectDTO.java

@@ -0,0 +1,16 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class AProListSelectDTO {
+    /**
+     * 资产业务id
+     */
+    private Long businessId;
+
+    /**
+     * 资产业务产品号
+     */
+    private String productionNo;
+}

+ 7 - 0
domain/src/main/java/com/dayou/vo/AssetsEvaluationTargetVO.java

@@ -3,6 +3,8 @@ package com.dayou.vo;
 import com.dayou.entity.AssetsEvaluationTarget;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class AssetsEvaluationTargetVO extends AssetsEvaluationTarget {
 
@@ -25,4 +27,9 @@ public class AssetsEvaluationTargetVO extends AssetsEvaluationTarget {
      * 二级评估对象
      */
     private String secTargetTypaName;
+
+    /**
+     * 产品出具日期
+     */
+    private Date createProductionDate;
 }

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

@@ -1,4 +1,5 @@
 package com.dayou.service;
+import com.dayou.dto.AProListSelectDTO;
 import com.dayou.dto.AssetsProductionDetailDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.AssetsProduction;
@@ -65,4 +66,11 @@ public interface IAssetsProductionService extends IService<AssetsProduction> {
          */
         AssetsProduction getAssetsProductionDetail(AssetsProductionDetailDTO dto);
 
+        /**
+         * 根据业务id与产品号查询产品信息
+         * @param aProListSelectDTO 查询dto
+         * @return List<AssetsProduction>
+         */
+        List<AssetsProduction> getProductionList(AProListSelectDTO aProListSelectDTO);
+
 }

+ 17 - 0
service/src/main/java/com/dayou/service/impl/AssetsProductionServiceImpl.java

@@ -1,5 +1,7 @@
 package com.dayou.service.impl;
 
+import com.dayou.common.BaseEntity;
+import com.dayou.dto.AProListSelectDTO;
 import com.dayou.dto.AssetsProductionDetailDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.AssetsProduction;
@@ -111,6 +113,11 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
      */
     @Override
     public Boolean writeAssetsProduction(AssetsProduction assetsProduction) {
+        int count = this.count(new LambdaQueryWrapper<AssetsProduction>().select(AssetsProduction::getCreateProductionDate).eq(AssetsProduction::getProductionNo, assetsProduction.getProductionNo())
+                .eq(AssetsProduction::getId, assetsProduction.getId()));
+        if (count > 0){
+            return null;
+        }
         return assetsProductionMapper.writeAssetsProduction(assetsProduction);
     }
 
@@ -123,4 +130,14 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     public AssetsProduction getAssetsProductionDetail(AssetsProductionDetailDTO dto) {
         return this.getOne(new LambdaQueryWrapper<AssetsProduction>().eq(AssetsProduction::getBusinessId, dto.getBusinessId()).eq(AssetsProduction::getProductionNo, dto.getProductionNo()));
     }
+
+    /**
+     * 根据业务id与产品号查询产品信息
+     * @param aProListSelectDTO 查询dto
+     * @return List<AssetsProduction>
+     */
+    @Override
+    public List<AssetsProduction> getProductionList(AProListSelectDTO aProListSelectDTO) {
+        return assetsProductionMapper.getProductionList(aProListSelectDTO);
+    }
 }

+ 9 - 8
service/src/main/java/com/dayou/workflow/handler/AssetsNodeHandler.java

@@ -94,15 +94,16 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
                 if (workflowNodeEnum.equals(WorkflowNodeEnum.GENERATE_STATEMENT)){
                     for (String businessSubId :workNodeCommit.getReportNos()){
                         AssetsProduction assetsProduction = assetsProductionService.getOne(new LambdaQueryWrapper<AssetsProduction>().select(AssetsProduction::getCreateProductionDate).eq(AssetsProduction::getProductionNo, businessSubId).eq(BaseEntity::getDeleted, Boolean.FALSE));
-//                        // 产品出具日期是否为null,为null说明还没撰写产品的信息
-//                        if (ObjectUtil.isNotNull(assetsProduction)){
+//                        addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),businessSubId,null);
+                        // 产品出具日期是否为null,为null说明还没撰写产品的信息
+                        if (ObjectUtil.isNotNull(assetsProduction)){
                             addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),businessSubId,null);
-//                        }else {
-//                            workFlowNodeInstanceService.save(currentInstanceNode);
-//                            WorkTaskRecord workTaskRecord = workTaskRecordService.getOne(new LambdaQueryWrapper<WorkTaskRecord>().select(WorkTaskRecord::getHandlerId,WorkTaskRecord::getTaskId).eq(WorkTaskRecord::getInstanceId,workNodeCommit.getInstanceNodeId()));
-//                            workTaskRecord.setInstanceId(currentInstanceNode.getId());
-//                            workTaskRecordService.save(workTaskRecord);
-//                        }
+                        }else {
+                            workFlowNodeInstanceService.save(currentInstanceNode);
+                            WorkTaskRecord workTaskRecord = workTaskRecordService.getOne(new LambdaQueryWrapper<WorkTaskRecord>().select(WorkTaskRecord::getHandlerId,WorkTaskRecord::getTaskId).eq(WorkTaskRecord::getInstanceId,workNodeCommit.getInstanceNodeId()));
+                            workTaskRecord.setInstanceId(currentInstanceNode.getId());
+                            workTaskRecordService.save(workTaskRecord);
+                        }
                     }
                 }
                 else if(workflowNodeEnum.equals(WorkflowNodeEnum.WRITE_REPORT) || workflowNodeEnum.equals(WorkflowNodeEnum.WRITE_LETTER)){