Kaynağa Gözat

1.order_fund新增字段客户经理id,相关插入order_fund记录的方法做调整
2.资产实收款统计导出按时间升序
3.大中型我的订单和统计报表中的订单列表优先展示产品名字作为项目名

GouGengquan 4 ay önce
ebeveyn
işleme
074f2c3ba8

+ 6 - 3
dao/src/main/resources/mapper/FinanceClaimMapper.xml

@@ -272,17 +272,18 @@
         <if test="dto != null and dto.payStartTime != null and dto.payEndTime!= null">
             AND (realFund.pay_datetime BETWEEN #{dto.payStartTime} AND #{dto.payEndTime})
         </if>
-        ORDER BY claim.claim_datetime DESC
     </sql>
 
     <!--查询资产实收款统计-->
     <select id="assetsSate" parameterType="com.dayou.dto.RealFundAssetsStatDTO" resultType="com.dayou.vo.RealFundAssetsStatVO">
         <include refid="assetsStatQuery" />
+        ORDER BY claim.claim_datetime DESC
     </select>
 
     <!--资产实收款统计导出-->
     <select id="assetsSateExport" resultType="com.dayou.vo.RealFundAssetsStatVO">
         <include refid="assetsStatQuery" />
+        ORDER BY claim.claim_datetime ASC
     </select>
 
 
@@ -390,13 +391,15 @@
         u1.name as claimUser,
         fc.claim_datetime ,
         ( CASE off.business_type WHEN 'MAJOR_BUSINESS' THEN '大中型业务' WHEN 'PERSONAL_BUSINESS' THEN '个贷业务' WHEN 'ASSET_BUSINESS' THEN '资产业务' WHEN 'ITEM_BUSINESS' THEN '土规业务' ELSE '-' END ) AS businessType,
-        off.order_id
+        off.order_id,
+        u2.name AS clientManager
         FROM
         finance_claim fc
         LEFT JOIN finance_real_fund frf ON frf.id = fc.real_fund_id
         left join user u on u.id = frf.creator_id
         left join user u1 on u1.id = fc.claim_user_id
         left join order_fund off on off.id = fc.order_fund_id
+        LEFT JOIN user u2 ON u2.id = off.client_manager_id
         where frf.deleted = 0 and fc.deleted = 0
         <if test="keyword!=null and keyword!='' ">
             and (
@@ -427,7 +430,7 @@
             and fc.claim_user_id = #{vo.claimUserId}
         </if>
         <if test="vo!=null and vo.userIds!=null and vo.userIds.size!=0">
-            and  fc.claim_user_id in
+            and  off.client_manager_id in
             <foreach collection="vo.userIds" open="(" close=")" separator="," item="userId">
                 #{userId}
             </foreach>

+ 2 - 2
dao/src/main/resources/mapper/MajorProductionMapper.xml

@@ -349,7 +349,7 @@
             mp.id AS id,
             m.id as businessId,
             m.order_id,
-            m.name as orderName,
+            IF(mp.name IS NULL, m.name, mp.name) AS orderName,
             mp.report_no as productionNo,
             mp.production,
             mp.if_save_file,
@@ -375,7 +375,7 @@
             ( SELECT declare_result FROM commission_declare WHERE business_id = m.id AND production_id IS NULL AND business_type = 'COMMISSION_DECLARE_MAJOR_EVALUATE' AND deleted = 0 ) as eDeclareResult
         FROM
             major m
-                left join (select id,major_id,report_no,evaluate_amount,production,if_save_file,delivery from major_production where deleted = 0 ) mp on mp.major_id = m.id
+                left join (select id,name,major_id,report_no,evaluate_amount,production,if_save_file,delivery from major_production where deleted = 0 ) mp on mp.major_id = m.id
                 left join user u on u.id = m.principal_id
                 left join user u1 on u1.id = m.client_manager_id
                 left join customer_company cc on cc.id = m.clientele_id

+ 6 - 0
dao/src/main/resources/mapper/MajorStatisticalStatementMapper.xml

@@ -1161,6 +1161,12 @@
         major.order_id AS orderId,
         financial,
         major.name AS projectName,
+        <if test="dto != null and dto.efficiencyType == 'statement'">
+            statement.name AS projectName,
+        </if>
+        <if test="dto != null and dto.efficiencyType != 'statement'">
+            report.name AS projectName,
+        </if>
         customer.name AS customerName,
         (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
         (SELECT name FROM customer_linkman WHERE id = major.clientele_contact_id) AS linkmanName,

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

@@ -72,6 +72,11 @@ public class OrderFund extends BaseEntity {
     @ExportCell(columnName = "应收款备注")
     private String remark;
 
+    /**
+     * 客户经理id(user_id)
+     */
+    private Long clientManagerId;
+
     @TableField(exist = false)
     private String reportNo;
     @TableField(exist = false)

+ 3 - 0
domain/src/main/java/com/dayou/vo/FinanceClaimsVO.java

@@ -29,6 +29,9 @@ public class FinanceClaimsVO {
     @Excel(name = "认领金额")
     private BigDecimal claimAmount;
 
+    @Excel(name = "客户经理")
+    private String clientManager;
+
     @Excel(name = "认领人")
     private String claimUser;
 

+ 10 - 1
service/src/main/java/com/dayou/dyoa/DyoaHistoryServiceImpl.java

@@ -780,7 +780,7 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
             Long mbsOrderId = record.getMbsId();
             if (StrUtil.isNotEmpty(managerName)){
                 Assets assets = assetsService.getOne(new LambdaQueryWrapper<Assets>().eq(BaseEntity::getId, mbsOrderId).select(BaseEntity::getId, Assets::getPrincipalId));
-                if (assets.getPrincipalId()==null){
+                if (assets != null && assets.getPrincipalId()==null){
                     assetsService.update(new LambdaUpdateWrapper<Assets>().set(Assets::getPrincipalId,getMbsUserId(managerName)).eq(BaseEntity::getId, mbsOrderId));
                     log.info("项目负责人被更新 mbsId: {}",mbsOrderId);
                 }
@@ -835,6 +835,10 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
             orderFund.setOrderId(code);
             orderFund.setOrderName(name);
             orderFund.setShouldAmount(BigDecimal.valueOf(shouldAmount==null?0d:shouldAmount));
+            Assets assets = assetsService.getOne(new LambdaQueryWrapper<Assets>().eq(Assets::getOrderId, orderFund.getOrderId()).eq(Assets::getId,orderFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            if (assets != null) {
+                orderFund.setClientManagerId(assets.getClientManagerId());
+            }
             orderFundService.save(orderFund);
         }
         List<HisAssetsProduction> assetsProductions = dyoaHistoryMapper.queryAssetsProduction(id);
@@ -983,6 +987,7 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
         orderFund.setBusinessType(PERSONAL_BUSINESS.name());
         orderFund.setOrderId(personal.getOrderId());
         orderFund.setOrderName(personal.getLocation());
+        orderFund.setClientManagerId(personal.getClientManagerId());
         orderFundService.save(orderFund);
     }
 
@@ -1105,6 +1110,10 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
             orderFund.setOrderId(code);
             orderFund.setOrderName(name);
             orderFund.setShouldAmount(BigDecimal.valueOf(shouldAmount==null?0d:shouldAmount));
+            Major major = majorServiceImpl.getOne(new LambdaQueryWrapper<Major>().eq(Major::getOrderId, orderFund.getOrderId()).eq(Major::getId,orderFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+            if (major != null) {
+                orderFund.setClientManagerId(major.getClientManagerId());
+            }
             orderFundService.save(orderFund);
         }
 

+ 1 - 1
service/src/main/java/com/dayou/service/IOrderFundService.java

@@ -32,7 +32,7 @@ public interface IOrderFundService extends IService<OrderFund> {
 
         void updateRealAmount(Long orderFundId);
 
-    void createOrderFundWhenOpeningOrder(Long id, String orderId, String name, MainBusinessEnum mainBusinessEnum);
+    void createOrderFundWhenOpeningOrder(Long id, String orderId, String name, MainBusinessEnum mainBusinessEnum, Long clientManagerId);
 
         List<OrderFund> getAllOrderFund();
 }

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

@@ -246,6 +246,7 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
         orderFund.setBusinessId(assets.getId());
         orderFund.setOrderName(assets.getName());
         orderFund.setOrderId(assets.getOrderId());
+        orderFund.setClientManagerId(assets.getClientManagerId());
         orderFundService.save(orderFund);
         //发起流程
         return workFlowService.openingOrder(ASSET_BUSINESS, assets.getId(), null, assets.getRemark());

+ 1 - 0
service/src/main/java/com/dayou/service/impl/FinanceClaimServiceImpl.java

@@ -324,6 +324,7 @@ public class FinanceClaimServiceImpl extends ServiceImpl<FinanceClaimMapper, Fin
                     orderFund.setBusinessType(PERSONAL_BUSINESS.name());
                     orderFund.setBusinessId(personal.getId());
                     orderFund.setOrderName(personal.getLocation());
+                    orderFund.setClientManagerId(personal.getClientManagerId());
                     orderFundService.save(orderFund);
                 }
             }

+ 1 - 1
service/src/main/java/com/dayou/service/impl/MajorServiceImpl.java

@@ -116,7 +116,7 @@ public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements
         //业务下单
         WorkNodeCommit commit = workFlowService.openingOrder(MainBusinessEnum.MAJOR_BUSINESS, major.getId(), null, major.getRemark());
         //下单完成后创建订单应收款记录
-        orderFundService.createOrderFundWhenOpeningOrder(major.getId(),major.getOrderId(),major.getName(),MainBusinessEnum.MAJOR_BUSINESS);
+        orderFundService.createOrderFundWhenOpeningOrder(major.getId(),major.getOrderId(),major.getName(),MainBusinessEnum.MAJOR_BUSINESS, major.getClientManagerId());
         return commit;
 
     }

+ 39 - 3
service/src/main/java/com/dayou/service/impl/OrderFundServiceImpl.java

@@ -1,12 +1,15 @@
 package com.dayou.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.dayou.common.BaseEntity;
+import com.dayou.entity.Assets;
+import com.dayou.entity.Major;
 import com.dayou.entity.OrderFund;
+import com.dayou.entity.Personal;
 import com.dayou.enums.MainBusinessEnum;
 import com.dayou.mapper.OrderFundMapper;
-import com.dayou.service.IFinanceClaimService;
-import com.dayou.service.IOrderFundService;
+import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -18,6 +21,8 @@ import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.List;
 
+import static com.dayou.enums.MainBusinessEnum.ASSET_BUSINESS;
+
 /**
  * <p>
  * 订单应收款 服务实现类
@@ -36,6 +41,15 @@ public class OrderFundServiceImpl extends ServiceImpl<OrderFundMapper, OrderFund
     @Autowired
     private IFinanceClaimService financeClaimService;
 
+    @Autowired
+    private IPersonalService personalService;
+
+    @Autowired
+    private IAssetsService assetsService;
+
+    @Autowired
+    private IMajorService majorService;
+
     @Override
     @SuppressWarnings("unchecked")
     public Page<OrderFund> selectPage(Page page,OrderFund orderFund){
@@ -50,6 +64,27 @@ public class OrderFundServiceImpl extends ServiceImpl<OrderFundMapper, OrderFund
 
     @Override
     public Boolean add(OrderFund orderFund){
+        // 设置客户经理id
+        switch (orderFund.getBusinessType()) {
+            case "ASSET_BUSINESS":
+                Assets assets = assetsService.getOne(new LambdaQueryWrapper<Assets>().eq(Assets::getOrderId, orderFund.getOrderId()).eq(Assets::getId,orderFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                if (assets != null) {
+                    orderFund.setClientManagerId(assets.getClientManagerId());
+                }
+                break;
+            case "PERSONAL_BUSINESS":
+                Personal personal = personalService.getOne(new LambdaQueryWrapper<Personal>().eq(Personal::getOrderId, orderFund.getOrderId()).eq(Personal::getId,orderFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                if (personal != null) {
+                    orderFund.setClientManagerId(personal.getClientManagerId());
+                }
+                break;
+            case "MAJOR_BUSINESS":
+                Major major = majorService.getOne(new LambdaQueryWrapper<Major>().eq(Major::getOrderId, orderFund.getOrderId()).eq(Major::getId,orderFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                if (major != null) {
+                    orderFund.setClientManagerId(major.getClientManagerId());
+                }
+                break;
+        }
         return  this.save(orderFund);
     }
 
@@ -78,12 +113,13 @@ public class OrderFundServiceImpl extends ServiceImpl<OrderFundMapper, OrderFund
     }
 
     @Override
-    public void createOrderFundWhenOpeningOrder(Long id, String orderId, String name, MainBusinessEnum mainBusinessEnum) {
+    public void createOrderFundWhenOpeningOrder(Long id, String orderId, String name, MainBusinessEnum mainBusinessEnum, Long clientManagerId) {
         OrderFund orderFund = new OrderFund();
         orderFund.setBusinessType(mainBusinessEnum.name());
         orderFund.setOrderId(orderId);
         orderFund.setBusinessId(id);
         orderFund.setOrderName(name);
+        orderFund.setClientManagerId(clientManagerId);
         this.save(orderFund);
     }
 

+ 6 - 0
service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java

@@ -383,12 +383,18 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
                 OrderFund orderFund = orderFundService.getOne(new LambdaQueryWrapper<OrderFund>().eq(OrderFund::getOrderId, x.getOrderId())
                         .eq(OrderFund::getBusinessId,x.getId()).eq(OrderFund::getBusinessType, PERSONAL_BUSINESS.name())
                         .eq(BaseEntity::getDeleted, Boolean.FALSE));
+
+                Personal personal = personalService.getOne(new LambdaQueryWrapper<Personal>().eq(Personal::getOrderId, x.getOrderId()).eq(Personal::getId,x.getId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
                 if (orderFund==null){
                     orderFund = new OrderFund();
                     orderFund.setOrderId(x.getOrderId());
                     orderFund.setBusinessType(PERSONAL_BUSINESS.name());
                     orderFund.setBusinessId(x.getId());
                     orderFund.setOrderName(x.getOrderName());
+                    // 设置客户经理
+                    if (personal != null) {
+                        orderFund.setClientManagerId(personal.getClientManagerId());
+                    }
                     orderFundService.save(orderFund);
                 }
                 FinanceClaim financeClaim = new FinanceClaim();

+ 32 - 6
service/src/main/java/com/dayou/service/impl/ProductionFundServiceImpl.java

@@ -5,15 +5,11 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.dayou.common.BaseEntity;
-import com.dayou.entity.FinanceClaim;
-import com.dayou.entity.OrderFund;
-import com.dayou.entity.ProductionFund;
+import com.dayou.entity.*;
 import com.dayou.enums.MainBusinessEnum;
 import com.dayou.mapper.OrderFundMapper;
 import com.dayou.mapper.ProductionFundMapper;
-import com.dayou.service.IFinanceClaimService;
-import com.dayou.service.IOrderFundService;
-import com.dayou.service.IProductionFundService;
+import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.vo.ProductionFundVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -76,6 +72,15 @@ public class ProductionFundServiceImpl extends ServiceImpl<ProductionFundMapper,
     @Autowired
     private OrderFundMapper orderFundMapper;
 
+    @Autowired
+    private IPersonalService personalService;
+
+    @Autowired
+    private IAssetsService assetsService;
+
+    @Autowired
+    private IMajorService majorService;
+
     @Override
     @SuppressWarnings("unchecked")
     public Page<ProductionFund> selectPage(Page page,ProductionFund productionFund){
@@ -100,6 +105,27 @@ public class ProductionFundServiceImpl extends ServiceImpl<ProductionFundMapper,
             orderFund.setOrderId(productionFund.getOrderId());
             orderFund.setBusinessId(productionFund.getBusinessId());
             orderFund.setBusinessType(productionFund.getBusinessType());
+            // 设置客户经理id
+            switch (productionFund.getBusinessType()) {
+                case "ASSET_BUSINESS":
+                    Assets assets = assetsService.getOne(new LambdaQueryWrapper<Assets>().eq(Assets::getOrderId, productionFund.getOrderId()).eq(Assets::getId,productionFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                    if (assets != null) {
+                        orderFund.setClientManagerId(assets.getClientManagerId());
+                    }
+                    break;
+                case "PERSONAL_BUSINESS":
+                    Personal personal = personalService.getOne(new LambdaQueryWrapper<Personal>().eq(Personal::getOrderId, productionFund.getOrderId()).eq(Personal::getId,productionFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                    if (personal != null) {
+                        orderFund.setClientManagerId(personal.getClientManagerId());
+                    }
+                    break;
+                case "MAJOR_BUSINESS":
+                    Major major = majorService.getOne(new LambdaQueryWrapper<Major>().eq(Major::getOrderId, productionFund.getOrderId()).eq(Major::getId,productionFund.getBusinessId()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+                    if (major != null) {
+                        orderFund.setClientManagerId(major.getClientManagerId());
+                    }
+                    break;
+            }
             orderFundService.save(orderFund);
             productionFund.setOrderFundId(orderFund.getId());
         }

+ 1 - 0
service/src/main/java/com/dayou/service/impl/ProductionOutWarehouseServiceImpl.java

@@ -106,6 +106,7 @@ public class ProductionOutWarehouseServiceImpl extends ServiceImpl<ProductionOut
                 orderFund.setOrderName(personal.getLocation());
                 orderFund.setOrderId(personal.getOrderId());
                 orderFund.setShouldAmount(shouldAmount);
+                orderFund.setClientManagerId(personal.getClientManagerId());
                 orderFundService.add(orderFund);
             }else {
                 orderFundService.update(new LambdaUpdateWrapper<OrderFund>().set(OrderFund::getShouldAmount,shouldAmount).eq(BaseEntity::getId,xOrderFund.getId()));

+ 8 - 1
sql/update_sql.sql

@@ -809,4 +809,11 @@ ALTER TABLE order_fund ADD KEY `idx_created` (`created`) USING BTREE;
 ALTER TABLE assets_production ADD KEY `idx_create_production_date` (`create_production_date`) USING BTREE;
 ALTER TABLE `major` ADD market_department_id bigint(20) NULL COMMENT '市场部门id(下单部门id)';
 ALTER TABLE `major_production` ADD production_time datetime NULL COMMENT '产品完成时间';
-ALTER TABLE major_production ADD KEY `idx_production_time` (`production_time`) USING BTREE;
+ALTER TABLE major_production ADD KEY `idx_production_time` (`production_time`) USING BTREE;
+
+/**
+  日期:2025-03-24
+  修改人:苟耕铨
+  未更新到test-env
+ */
+ALTER TABLE `order_fund` ADD `client_manager_id` BIGINT ( 20 ) NULL COMMENT '客户经理id(user_id)'