瀏覽代碼

1.修复入库统计查询报错,新增根据日期筛选
2.新增导出资产入库信息
3.测试资产流程并修复测试出来的相关bug
4.产品应收款查询

GouGengquan 1 年之前
父節點
當前提交
273c674149

+ 25 - 1
biz-base/src/main/java/com/dayou/controller/AssetsController.java

@@ -1,6 +1,8 @@
 package com.dayou.controller;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.dayou.dto.*;
+import com.dayou.exception.ErrorCode;
 import com.dayou.vo.AssetsBusinessMember;
 import com.dayou.vo.AssetsOrderFundInvoiceVO;
 import com.dayou.vo.AssetsRepertoryVo;
@@ -19,9 +21,14 @@ import org.springframework.web.bind.annotation.*;
 import com.dayou.common.PullDownModel;
 import com.dayou.utils.ConvertUtil;
 
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * 资产业务订单表
  *
@@ -80,7 +87,7 @@ public class AssetsController extends BaseController {
     }
 
     /**
-     * 条件查询资产已终止列表
+     * 条件查询资产入库列表
      * @param page 分页条件
      * @param assetsSelectDTO 查询条件
      * @return Page<AssetsVO>
@@ -91,6 +98,23 @@ public class AssetsController extends BaseController {
     }
 
     /**
+     * 资产入库数据导出
+     * @param assetsSelectDTO 查询dto
+     * @param response response
+     * @throws IOException io异常
+     */
+    @GetMapping("/repertoryExport")
+    public void repertoryExport(AssetsSelectDTO assetsSelectDTO, HttpServletResponse response ) throws IOException {
+        List<AssetsRepertoryVo> list = assetsService.selectRepertoryList(assetsSelectDTO);
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        if (ObjectUtil.isNotNull(list) && !list.isEmpty()){
+            exportPlus(response,"资产入库统计数据_" + dateFormat.format(new Date()),list,AssetsRepertoryVo.class);
+        }else {
+            ErrorCode.throwBusinessException("条件筛选结果数量为0,不可导出!", "500");
+        }
+    }
+
+    /**
      * 资产业务订单表详情
      */
     @GetMapping("getAssetsDetailById/{id}")

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/AssetsProductionController.java

@@ -82,9 +82,10 @@ public class AssetsProductionController extends BaseController {
     /**
      * 资产产品表更新
      */
+    @FinishTask
     @PutMapping("/update")
-    public RestResponse<Boolean> update(@RequestBody AssetsProduction assetsProduction) {
-        Boolean ret = assetsProductionService.update(assetsProduction);
+    public RestResponse<Boolean> update(@RequestBody TaskRecordDTO<AssetsProduction> taskRecordDTO) {
+        Boolean ret = assetsProductionService.update(taskRecordDTO.getTaskData());
         return RestResponse.data(ret);
     }
 

+ 1 - 1
biz-base/src/main/resources/application-local.yml

@@ -22,7 +22,7 @@ dfs:
   path: E:\upload
   domain: E:\upload
   domainName: https://kps.scdayou.com/dfs
-  code: E:\code
+  code: \code
   domainRoot: localhost
   luceneDir: E:\luceneIndex
 

+ 8 - 1
dao/src/main/java/com/dayou/mapper/AssetsMapper.java

@@ -58,7 +58,7 @@ public interface AssetsMapper extends CustomBaseMapper<Assets> {
 
 
     /**
-     * 条件查询资产入库统计列表
+     * 条件查询资产入库统计列表(分页查询)
      * @param page 分页条件
      * @param assetsSelectDTO 查询条件
      * @return Page<AssetsVO>
@@ -66,6 +66,13 @@ public interface AssetsMapper extends CustomBaseMapper<Assets> {
     Page<AssetsRepertoryVo> selectRepertoryPage(@Param("page") Page page, @Param("assetsSelectDTO") AssetsSelectDTO assetsSelectDTO);
 
     /**
+     * 条件查询资产入库统计集合(用于导出)
+     * @param assetsSelectDTO 查询条件
+     * @return Page<AssetsVO>
+     */
+    List<AssetsRepertoryVo> selectRepertoryList(@Param("assetsSelectDTO") AssetsSelectDTO assetsSelectDTO);
+
+    /**
      * 根据业务id获取资产业务详情
      * @param id 业务id
      * @return AssetsVO

+ 87 - 10
dao/src/main/resources/mapper/AssetsMapper.xml

@@ -153,7 +153,9 @@
         fund.should_amount,
         fund.real_amount,
         fund.discount,
+        pFund.id AS productionFundId,
         pFund.standard_amount,
+        pFund.production_should_amount,
         invoice.real_amount AS invoiceRealAmount,
         #查询客户经理
         (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
@@ -393,11 +395,11 @@
         ORDER BY assets.created DESC
     </select>
 
-    <!--条件查询资产已终止列表-->
+    <!--条件查询资产入库统计列表(分页查询)-->
     <select id="selectRepertoryPage" resultType="com.dayou.vo.AssetsRepertoryVo">
         SELECT (@i := @i + 1) AS id,
         assets.order_id AS orderId,
-        production_no AS reportNo,
+        production.production_no AS reportNo,
         name AS orderName,
         purpose.purpose_name AS purposeName,
         method.method_name AS methodName,
@@ -420,7 +422,8 @@
         production.evaluate_price AS evaluatePrice,
         assets.bailor,
         assets.bailor_contact_tel AS bailorContactTel,
-        (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS userName,
+        (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS principalName,
+        (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS firstReporter,
         (SELECT user.name FROM user WHERE user.id = assets.client_manager_id) AS managerName,
         (SELECT customer.name
         FROM customer
@@ -446,27 +449,101 @@
         WHERE user.id = user_post.user_id
         AND user_post.post_id = post.id
         AND post.department_id = department.id
-        AND user.id = assets.client_manager_id) AS marketDepartment
+        AND user.id = assets.client_manager_id) AS marketDepartment,
+        fund.real_amount AS productionRealAmount
         FROM (SELECT @i := 0) AS sort,
         assets_production AS production
         LEFT JOIN assets ON assets.id = production.business_id
         LEFT JOIN assets_evaluation_target AS target ON target.report_no = production.production_no
         LEFT JOIN assets_evaluation_target_purpose AS purpose ON purpose.id = target.evaluation_purpose_id
         LEFT JOIN assets_evaluation_method AS method ON method.id = target.choice_evaluation_method_id
+        LEFT JOIN production_fund AS fund ON fund.production_no = production.production_no
         WHERE production.deleted = 0
         AND (production.repertory_state = 0 OR production.repertory_state = 1)
-        AND production_type != 'STATEMENT'
-        <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
-            AND startTime &gt;= #{assetsSelectDTO.startTime}
-            AND endTime &lt;= #{assetsSelectDTO.endTime}
-        </if>
+        AND production.production_type != 'STATEMENT'
         <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
             AND (
             assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
-            production.production_no LIKE CONCAT('%',?,'%')
+            production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
             )
         </if>
+        <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
+            HAVING startTime &gt;= #{assetsSelectDTO.startTime}
+            AND endTime &lt;= #{assetsSelectDTO.endTime}
+        </if>
+    </select>
+
+    <!--条件查询资产入库统计集合(用于导出)-->
+    <select id="selectRepertoryList" resultType="com.dayou.vo.AssetsRepertoryVo">
+        SELECT (@i := @i + 1) AS id,
+        assets.order_id AS orderId,
+        production.production_no AS reportNo,
+        name AS orderName,
+        purpose.purpose_name AS purposeName,
+        method.method_name AS methodName,
+        (SELECT instance.created
+        FROM work_flow_node_instance AS instance,
+        work_node AS node
+        WHERE instance.business_id = assets.id
+        AND instance.node_id = node.id
+        AND instance.deleted = 0
+        AND node.code = 'SPOT_RECONNAISSANCE_DETERMINE_PRICE') AS startTime,
+        (SELECT instance.created
+        FROM work_flow_node_instance AS instance,
+        work_node AS node
+        WHERE business_min_id = reportNo
+        AND instance.node_id = node.id
+        AND instance.deleted = 0
+        AND node.code = 'REPORT_OUT') AS endTime,
+        production.valuation_basis_date AS valuationBasisDate,
+        production.evaluate_amount AS evaluateAmount,
+        production.evaluate_price AS evaluatePrice,
+        assets.bailor,
+        assets.bailor_contact_tel AS bailorContactTel,
+        (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS principalName,
+        (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS firstReporter,
+        (SELECT user.name FROM user WHERE user.id = assets.client_manager_id) AS managerName,
+        (SELECT customer.name
+        FROM customer
+        WHERE customer.id = assets.clientele_id) AS customerName,
+        (SELECT customer_company.name
+        FROM customer_company
+        WHERE customer_company.id = clientele_sub_id) AS customerSubName,
+        production.repertory_in_time AS repertoryInTime,
+        production.repertory_out_time AS repertoryOutTime,
+        (SELECT instance.modified
+        FROM work_flow_node_instance AS instance,
+        work_node AS node
+        WHERE business_min_id = reportNo
+        AND instance.node_id = node.id
+        AND instance.deleted = 0
+        AND node.code = 'BUSINESS_ARCHIVING') AS archivedTime,
+        (SELECT department.name FROM department WHERE department.id = assets.department_id) AS evaluateDepartment,
+        (SELECT department.name
+        FROM department,
+        user,
+        user_post,
+        post
+        WHERE user.id = user_post.user_id
+        AND user_post.post_id = post.id
+        AND post.department_id = department.id
+        AND user.id = assets.client_manager_id) AS marketDepartment,
+        fund.real_amount AS productionRealAmount
+        FROM (SELECT @i := 0) AS sort,
+        assets_production AS production
+        LEFT JOIN assets ON assets.id = production.business_id
+        LEFT JOIN assets_evaluation_target AS target ON target.report_no = production.production_no
+        LEFT JOIN assets_evaluation_target_purpose AS purpose ON purpose.id = target.evaluation_purpose_id
+        LEFT JOIN assets_evaluation_method AS method ON method.id = target.choice_evaluation_method_id
+        LEFT JOIN production_fund AS fund ON fund.production_no = production.production_no
+        WHERE production.deleted = 0
+        AND (production.repertory_state = 0 OR production.repertory_state = 1)
+        AND production.production_type != 'STATEMENT'
+        <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
+            HAVING startTime &gt;= #{assetsSelectDTO.startTime}
+            AND endTime &lt;= #{assetsSelectDTO.endTime}
+        </if>
     </select>
 
     <!--根据业务id获取资产业务详情-->

+ 3 - 0
domain/src/main/java/com/dayou/dto/AssetsSelectDTO.java

@@ -1,5 +1,6 @@
 package com.dayou.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -49,11 +50,13 @@ public class AssetsSelectDTO {
     /**
      * 筛选开始时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
 
     /**
      * 筛选结束时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
     /**

+ 102 - 7
domain/src/main/java/com/dayou/vo/AssetsRepertoryVo.java

@@ -1,69 +1,164 @@
 package com.dayou.vo;
 
+import com.dayou.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.Map;
 
 @Data
 public class AssetsRepertoryVo {
 
     /**
-     * 项目名称
+     * 项目编号
      */
-    private String orderName;
+    @Excel(name = "项目编号")
+    private String orderId;
 
     /**
-     * 项目编号
+     * 项目名称
      */
-    private String orderId;
+    @Excel(name = "项目名称")
+    private String orderName;
 
     /**
      * 报告号
      */
+    @Excel(name = "报告号")
     private String reportNo;
 
     /**
      * 评估目的
      */
+    @Excel(name = "评估目的")
     private String purposeName;
 
     /**
      * 评估方法
      */
+    @Excel(name = "评估方法")
     private String methodName;
 
     /**
      * 评估作业开始日
      */
-    private Date startTime;
+    @Excel(name = "评估作业开始日")
+    private String startTime;
 
     /**
      * 估价作业结束日
      */
-    private Date endTime;
+    @Excel(name = "估价作业结束日")
+    private String endTime;
 
     /**
      * 估价时点
      */
-    private Date valuationBasisDate;
+    @Excel(name = "估价时点")
+    private String valuationBasisDate;
 
     /**
      * 评估总值(万元)
      */
+    @Excel(name = "评估总值(万元)")
     private Double evaluateAmount;
 
     /**
      * 评估单价(元)
      */
+    @Excel(name = "评估单价(元)")
     private Double evaluatePrice;
 
     /**
+     * 委托人
+     */
+    @Excel(name = "委托人")
+    private String bailor;
+
+    /**
+     * 委托人电话
+     */
+    @Excel(name = "委托人电话")
+    private String bailorContactTel;
+
+    /**
+     * 项目负责人
+     */
+    @Excel(name = "项目负责人")
+    private String principalName;
+
+    /**
+     * 第一报告人
+     */
+    @Excel(name = "第一报告人")
+    private String firstReporter;
+
+    /**
+     * 第一报告人注册号
+     */
+    @Excel(name = "第一报告人注册号")
+    private String firstReporterRegistrationNo;
+
+    /**
+     * 参与报告人与参与报告人注册号
+     * memberReporter 参与人
+     * memberReporterRegistrationNo 注册号
+     */
+    private Map<String,String> memberReporter;
+
+    /**
+     * 客户名称
+     */
+    @Excel(name = "客户名称")
+    private String customerName;
+
+    /**
+     * 业务来源
+     */
+    @Excel(name = "业务来源")
+    private String customerSubName;
+
+    /**
+     * 项目经理
+     */
+    @Excel(name = "项目经理")
+    private String managerName;
+
+    /**
+     * 入库时间
+     */
+    @Excel(name = "入库时间")
+    private String repertoryInTime;
+
+    /**
+     * 出库时间
+     */
+    @Excel(name = "出库时间")
+    private String repertoryOutTime;
+
+    /**
+     * 归档时间
+     */
+    @Excel(name = "归档时间")
+    private String archivedTime;
+
+    /**
      * 评估部门
      */
+    @Excel(name = "评估部门")
     private String evaluateDepartment;
 
     /**
      * 市场部门
      */
+    @Excel(name = "市场部门")
     private String marketDepartment;
+
+    /**
+     * 产品实收金额
+     */
+    @Excel(name = "产品实收金额")
+    private Double productionRealAmount;
+
 }

+ 10 - 0
domain/src/main/java/com/dayou/vo/AssetsVO.java

@@ -161,6 +161,16 @@ public class AssetsVO extends Assets {
     private Long warehouseId;
 
     /**
+     * 产品应收款
+     */
+    private Double productionShouldAmount;
+
+    /**
+     * 产品收款信息id
+     */
+    private Long productionFundId;
+
+    /**
      * 审核意见
      */
     private String comment;

+ 7 - 0
service/src/main/java/com/dayou/service/IAssetsService.java

@@ -63,6 +63,13 @@ public interface IAssetsService extends IService<Assets> {
         Page<AssetsRepertoryVo> selectRepertoryPage(Page page, AssetsSelectDTO assetsSelectDTO);
 
         /**
+         * 条件查询资产入库统计集合(用于导出)
+         * @param assetsSelectDTO 查询条件
+         * @return Page<AssetsVO>
+         */
+        List<AssetsRepertoryVo> selectRepertoryList(AssetsSelectDTO assetsSelectDTO);
+
+        /**
          * 根据业务id获取资产业务详情
          * @param id 业务id
          * @return AssetsVO

+ 10 - 0
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -122,6 +122,16 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
     }
 
     /**
+     * 条件查询资产入库统计集合(用于导出)
+     * @param assetsSelectDTO 查询条件
+     * @return Page<AssetsVO>
+     */
+    @Override
+    public List<AssetsRepertoryVo> selectRepertoryList(AssetsSelectDTO assetsSelectDTO) {
+        return assetsMapper.selectRepertoryList(assetsSelectDTO);
+    }
+
+    /**
      * 根据业务id获取资产业务详情
      *
      * @param id 业务id