Selaa lähdekoodia

财务管理大中型结算项目

wucl 1 vuosi sitten
vanhempi
commit
388d3ccef5

+ 24 - 0
biz-base/src/main/java/com/dayou/controller/FinanceRealFundController.java

@@ -3,6 +3,7 @@ package com.dayou.controller;
 import com.dayou.vo.FinanceRealFundVO;
 import com.dayou.vo.MajorProdOverdueVO;
 import com.dayou.vo.RealFundMajorStatVO;
+import com.dayou.vo.SettleMajorProductionVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -109,6 +110,29 @@ public class FinanceRealFundController extends BaseController {
         exportPlus(response,"大中型产品逾期未收款列表",result, MajorProdOverdueVO.class);
     }
 
+    /**
+     * 大中型评估人员结算产品
+     * @param settleVO
+     * @param page
+     * @return
+     */
+    @GetMapping("/major/evaluator/settle/prod")
+    public RestResponse<Page<SettleMajorProductionVO>> majorEvaluatorSettleProd(SettleMajorProductionVO settleVO, Page page){
+        Page<SettleMajorProductionVO> result = financeRealFundService.majorEvaluatorSettleProd(settleVO,page);
+        return RestResponse.data(result);
+    }
+
+    /**
+     * 大中型市场人员结算产品
+     * @param settleVO
+     * @param page
+     * @return
+     */
+    @GetMapping("/major/market/settle/prod")
+    public RestResponse<Page<SettleMajorProductionVO>> majorMarketSettleProd(SettleMajorProductionVO settleVO, Page page){
+        Page<SettleMajorProductionVO> result = financeRealFundService.majorMarketSettleProd(settleVO,page);
+        return RestResponse.data(result);
+    }
 
 }
 

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/OrderFundAllotController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IOrderFundAllotService;
+import com.dayou.entity.OrderFundAllot;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 订单收款分配表
+ *
+ * @author wucl
+ * @since 2024-05-29
+ */
+@RestController
+@RequestMapping("orderFundAllot")
+@Slf4j
+public class OrderFundAllotController extends BaseController {
+    @Autowired
+    private IOrderFundAllotService orderFundAllotService;
+
+    /**
+    * 订单收款分配表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<OrderFundAllot>> page(OrderFundAllot orderFundAllot, Page page){
+        Page<OrderFundAllot> pages=orderFundAllotService.selectPage(page,orderFundAllot);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 订单收款分配表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<OrderFundAllot> detail(@PathVariable Long id){
+        OrderFundAllot xOrderFundAllot =orderFundAllotService.detail(id);
+        return RestResponse.data(xOrderFundAllot);
+     }
+
+    /**
+     * 订单收款分配表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody OrderFundAllot orderFundAllot) {
+        Boolean ret = orderFundAllotService.add(orderFundAllot);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 订单收款分配表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody OrderFundAllot orderFundAllot) {
+        Boolean ret = orderFundAllotService.update(orderFundAllot);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 订单收款分配表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = orderFundAllotService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 5 - 0
dao/src/main/java/com/dayou/mapper/FinanceRealFundMapper.java

@@ -5,6 +5,7 @@ import com.dayou.entity.FinanceRealFund;
 import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.FinanceRealFundVO;
 import com.dayou.vo.MajorProdOverdueVO;
+import com.dayou.vo.SettleMajorProductionVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -27,4 +28,8 @@ public interface FinanceRealFundMapper extends CustomBaseMapper<FinanceRealFund>
     Page<MajorProdOverdueVO> overdueMajor(Page page, @Param("overdueVO")MajorProdOverdueVO overdueVO);
 
     List<MajorProdOverdueVO> overdueMajorExport(@Param("overdueVO")MajorProdOverdueVO overdueVO);
+
+    Page<SettleMajorProductionVO> majorEvaluatorSettleProd(Page page, @Param("settleVO") SettleMajorProductionVO settleVO);
+
+    Page<SettleMajorProductionVO> majorMarketerSettleProd(Page page, @Param("settleVO") SettleMajorProductionVO settleVO);
 }

+ 16 - 0
dao/src/main/java/com/dayou/mapper/OrderFundAllotMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.OrderFundAllot;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 订单收款分配表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-29
+ */
+public interface OrderFundAllotMapper extends CustomBaseMapper<OrderFundAllot> {
+
+}

+ 121 - 4
dao/src/main/resources/mapper/FinanceRealFundMapper.xml

@@ -83,11 +83,9 @@
 
     <sql id="majorOverdueSql">
         SELECT
-        mp.id,
         DATEDIFF(
         CURDATE(),
         DATE( mp.repertory_out_time )) AS overdueDay,
-        pf.production_should_amount,
         m.allot_type,
         m.order_id,
         m.business_object_type,
@@ -96,6 +94,7 @@
         cc1.NAME AS clientName,
         cc2.NAME AS clientSubName,
         pf.production_should_amount,
+        of.should_amount,
         mp.*
         FROM
         (
@@ -112,16 +111,18 @@
         major_production mp
         WHERE
         deleted = 0
-        AND repertory_out_time IS NOT NULL
+        AND repertory_out_time IS NOT NULL  and production != 'STATEMENT'
         ) mp
         LEFT JOIN ( SELECT business_id, production_no, production_should_amount, real_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( mp.major_id = pf.business_id AND mp.report_no = pf.production_no )
+        left join ( SELECT business_id,should_amount FROM order_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) of ON of.business_id = mp.major_id
         LEFT JOIN major m ON m.id = mp.major_id
         LEFT JOIN user u ON u.id = m.client_manager_id
         LEFT JOIN user u1 ON u1.id = m.principal_id
         LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
         LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
         WHERE
-        ( pf.production_no IS NULL OR pf.real_amount IS NULL )
+        mp.production != 'STATEMENT'
+        AND ( pf.production_no IS NULL OR pf.real_amount IS NULL )
         AND DATEDIFF(CURDATE(),DATE( mp.repertory_out_time )) &gt;= #{overdueVO.overdueMin}
         <if test="overdueVO!=null and overdueVO.overdueMax!=null">
             AND DATEDIFF(CURDATE(),DATE( mp.repertory_out_time )) &lt;= #{overdueVO.overdueMax}
@@ -144,4 +145,120 @@
     <select id="overdueMajorExport" parameterType="com.dayou.vo.MajorProdOverdueVO" resultType="com.dayou.vo.MajorProdOverdueVO">
         <include refid="majorOverdueSql" />
     </select>
+
+    <select id="majorEvaluatorSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+        SELECT
+        mp.id,
+        fc.claim_amount,
+        m.order_id,
+        mp.report_no,
+        fc.claim_datetime as claimDate,
+        mp.save_file_date,
+        IF
+        ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
+        mp.NAME,
+        m.bailor,
+        mp.evaluate_amount,
+        u.NAME AS principal,
+        u1.NAME AS clientManager,
+        cc.NAME AS clientName,
+        cc1.NAME AS clientSubName,
+        d.NAME AS evaluateDepartmentName,
+        (
+        SELECT
+        GROUP_CONCAT( NAME )
+        FROM
+        department
+        WHERE
+        id IN (
+        SELECT
+        department_id
+        FROM
+        post
+        WHERE
+        id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
+        FROM
+        (
+        SELECT
+        claim_amount,
+        order_fund_id,
+        production_fund_id,
+        claim_datetime
+        FROM
+        finance_claim
+        WHERE
+        deleted = 0
+        AND production_fund_id IS NOT NULL
+        AND claim_datetime &gt;= #{settleVO.startDate}
+        AND claim_datetime  &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
+        AND created &gt;= #{settleVO.startDate}
+        AND created &lt;= #{settleVO.endDate}
+        ) fc
+        INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+        INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, save_file_date FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+        LEFT JOIN major m ON m.id = mp.major_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
+        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
+        LEFT JOIN department d ON d.id = m.department_id
+    </select>
+
+    <select id="majorMarketerSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+        SELECT
+        mp.id,
+        fc.claim_amount,
+        m.order_id,
+        mp.report_no,
+        fc.claim_datetime,
+        mp.delivery_date,
+        IF
+        ( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
+        mp.NAME,
+        m.bailor,
+        mp.evaluate_amount,
+        u.NAME AS principal,
+        u1.NAME AS clientManager,
+        cc.NAME AS clientName,
+        cc1.NAME AS clientSubName,
+        d.NAME AS evaluateDepartmentName,
+        (
+        SELECT
+        GROUP_CONCAT( NAME )
+        FROM
+        department
+        WHERE
+        id IN (
+        SELECT
+        department_id
+        FROM
+        post
+        WHERE
+        id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
+        FROM
+        (
+        SELECT
+        claim_amount,
+        order_fund_id,
+        production_fund_id,
+        claim_datetime
+        FROM
+        finance_claim
+        WHERE
+        deleted = 0
+        AND production_fund_id IS NOT NULL
+        AND claim_datetime  &gt;= #{settleVO.startDate}
+        AND claim_datetime &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
+        AND created  &gt;= #{settleVO.startDate}
+        AND created &lt;= #{settleVO.endDate}
+        ) fc
+        INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+        INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, delivery_date FROM major_production WHERE deleted = 0 AND delivery_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+        LEFT JOIN major m ON m.id = mp.major_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
+        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
+        LEFT JOIN department d ON d.id = m.department_id
+    </select>
 </mapper>

+ 25 - 0
dao/src/main/resources/mapper/OrderFundAllotMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.OrderFundAllotMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.OrderFundAllot">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="order_fund_id" property="orderFundId" />
+        <result column="production_fund_id" property="productionFundId" />
+        <result column="allot_amount" property="allotAmount" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        order_fund_id, production_fund_id, allot_amount
+    </sql>
+
+</mapper>

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

@@ -199,6 +199,11 @@ public class MajorProduction extends BaseEntity {
     private Boolean delivery;
 
     /**
+     * 送达时间
+     */
+    private LocalDate deliveryDate;
+
+    /**
      * 标准收费
      */
     private BigDecimal standardAmount;

+ 42 - 0
domain/src/main/java/com/dayou/entity/OrderFundAllot.java

@@ -0,0 +1,42 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 订单收款分配表
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "订单收款分配表")
+public class OrderFundAllot extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 订单收款表id
+     */
+    private Long orderFundId;
+
+    /**
+     * 产品收款表id
+     */
+    private Long productionFundId;
+
+    /**
+     * 分配金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "分配金额")
+    private BigDecimal allotAmount;
+
+
+}

+ 2 - 2
domain/src/main/java/com/dayou/vo/MajorProdOverdueVO.java

@@ -51,8 +51,8 @@ public class MajorProdOverdueVO {
     @Excel(name = "评估价值")
     private BigDecimal evaluateAmount;
 
-    @Excel(name = "应收款")
-    private BigDecimal productionShouldAmount;
+    @Excel(name = "订单应收款")
+    private BigDecimal shouldAmount;
 
     @Excel(name = "收费标准")
     private BigDecimal standardAmount;

+ 65 - 0
domain/src/main/java/com/dayou/vo/SettleMajorProductionVO.java

@@ -0,0 +1,65 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ * 类说明:大中型结算项目
+ *
+ * @author: wucl
+ * @since: 2024/5/29
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class SettleMajorProductionVO {
+
+    private Long id;
+
+    private String orderId;
+
+    private String reportNo;
+
+    private LocalDate settleDate;
+
+    private LocalDate claimDate;
+
+    private LocalDate saveFileDate;
+
+    private LocalDate deliveryDate;
+
+    private String name;
+
+    private String clientName;
+
+    private String clientSubName;
+
+    private String bailor;
+
+    private String marketDepartmentName;
+
+    private String evaluateDepartmentName;
+
+    private String clientManager;
+
+    private String principal;
+
+    private BigDecimal claimAmount;
+
+    private BigDecimal evaluateAmount;
+
+    private Date invoiceDate;
+
+    private String invoiceUser;
+
+    private String invoiceNo;
+
+    private String startDate;
+
+    private String endDate;
+
+
+
+}

+ 5 - 0
service/src/main/java/com/dayou/service/IFinanceRealFundService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.dayou.vo.FinanceRealFundVO;
 import com.dayou.vo.MajorProdOverdueVO;
+import com.dayou.vo.SettleMajorProductionVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -36,4 +37,8 @@ public interface IFinanceRealFundService extends IService<FinanceRealFund> {
     Page<MajorProdOverdueVO> overdueMajor(MajorProdOverdueVO overdueVO, Page page);
 
     List<MajorProdOverdueVO> overdueMajorExport(MajorProdOverdueVO overdueVO);
+
+    Page<SettleMajorProductionVO> majorEvaluatorSettleProd(SettleMajorProductionVO settleVO, Page page);
+
+    Page<SettleMajorProductionVO> majorMarketSettleProd(SettleMajorProductionVO settleVO, Page page);
 }

+ 28 - 0
service/src/main/java/com/dayou/service/IOrderFundAllotService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.OrderFundAllot;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 订单收款分配表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-29
+ */
+public interface IOrderFundAllotService extends IService<OrderFundAllot> {
+
+        Page<OrderFundAllot> selectPage(Page page,OrderFundAllot orderFundAllot);
+
+        OrderFundAllot detail(Long id);
+
+        Boolean add(OrderFundAllot orderFundAllot);
+
+        Boolean update(OrderFundAllot orderFundAllot);
+
+        Boolean delete(Long id);
+
+}

+ 13 - 0
service/src/main/java/com/dayou/service/impl/FinanceRealFundServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.FinanceRealFundVO;
 import com.dayou.vo.MajorProdOverdueVO;
+import com.dayou.vo.SettleMajorProductionVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -108,4 +109,16 @@ public class FinanceRealFundServiceImpl extends ServiceImpl<FinanceRealFundMappe
     public List<MajorProdOverdueVO> overdueMajorExport(MajorProdOverdueVO overdueVO) {
         return financeRealFundMapper.overdueMajorExport(overdueVO);
     }
+
+    @Override
+    public Page<SettleMajorProductionVO> majorEvaluatorSettleProd(SettleMajorProductionVO settleVO, Page page) {
+        Page<SettleMajorProductionVO> result = financeRealFundMapper.majorEvaluatorSettleProd(page,settleVO);
+        return result;
+    }
+
+    @Override
+    public Page<SettleMajorProductionVO> majorMarketSettleProd(SettleMajorProductionVO settleVO, Page page) {
+        Page<SettleMajorProductionVO> result = financeRealFundMapper.majorMarketerSettleProd(page,settleVO);
+        return result;
+    }
 }

+ 16 - 4
service/src/main/java/com/dayou/service/impl/MajorProductionServiceImpl.java

@@ -98,6 +98,9 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
     @Autowired
     private IBusinessProductionService businessProductionService;
 
+    @Autowired
+    private IOrderFundAllotService orderFundAllotService;
+
 
 
     @Override
@@ -397,7 +400,7 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                     productionFund.setProductionNo(production.getReportNo());
                     productionFund.setRealAmount(orderReportDTO.getThisTimeAmount());
                     productionFund.setEvaluateAmount(production.getEvaluateAmount());
-                    productionFundService.add(productionFund);
+                    productionFundService.save(productionFund);
                     productionFundId = productionFund.getId();
                 }else {
                     productionFundMapper.updateRealAmount(productionFundId,orderReportDTO.getThisTimeAmount());
@@ -416,7 +419,7 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                 financeClaim.setClaimAmount(thisTimeAmount);
                 financeClaim.setClaimDatetime(LocalDateTime.now());
                 financeClaim.setProductionFundId(productionFundId);
-                financeClaimService.add(financeClaim);
+                financeClaimService.save(financeClaim);
             }
            return Boolean.TRUE;
         }
@@ -460,7 +463,7 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                 financeClaim.setOrderFundId(orderFundId);
                 financeClaim.setClaimAmount(thisTimeAmount);
                 financeClaim.setClaimDatetime(LocalDateTime.now());
-                financeClaimService.add(financeClaim);
+                financeClaimService.save(financeClaim);
             }
             return Boolean.TRUE;
         }
@@ -537,6 +540,7 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                 if (reportDTO.getThisTimeAmount()==null || reportDTO.getThisTimeAmount().compareTo(BigDecimal.ZERO)==0){
                     continue;
                 }
+                //产品收款表
                 if (productionFundId==null){
                     MajorProduction production = majorProductionMapper.selectOne(new LambdaQueryWrapper<MajorProduction>().eq(BaseEntity::getId,reportDTO.getId()).eq(BaseEntity::getDeleted, Boolean.FALSE)
                             .select(MajorProduction::getReportNo, MajorProduction::getMajorId, MajorProduction::getProduction, MajorProduction::getEvaluateAmount));
@@ -548,10 +552,18 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                     productionFund.setProductionNo(production.getReportNo());
                     productionFund.setRealAmount(reportDTO.getThisTimeAmount());
                     productionFund.setEvaluateAmount(production.getEvaluateAmount());
-                    productionFundService.add(productionFund);
+                    productionFundService.save(productionFund);
+                    productionFundId = productionFund.getId();
                 }else {
                     productionFundMapper.updateRealAmount(productionFundId,reportDTO.getThisTimeAmount());
                 }
+                //分配记录表
+                OrderFundAllot orderFundAllot = new OrderFundAllot();
+                orderFundAllot.setProductionFundId(productionFundId);
+                orderFundAllot.setOrderFundId(orderFundId);
+                orderFundAllot.setAllotAmount(reportDTO.getThisTimeAmount());
+                orderFundAllotService.save(orderFundAllot);
+
             }
             return Boolean.TRUE;
         }

+ 66 - 0
service/src/main/java/com/dayou/service/impl/OrderFundAllotServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.OrderFundAllot;
+import com.dayou.mapper.OrderFundAllotMapper;
+import com.dayou.service.IOrderFundAllotService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 订单收款分配表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-29
+ */
+@Service
+public class OrderFundAllotServiceImpl extends ServiceImpl<OrderFundAllotMapper, OrderFundAllot> implements IOrderFundAllotService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<OrderFundAllot> selectPage(Page page,OrderFundAllot orderFundAllot){
+        return this.page(page, new QueryWrapper<OrderFundAllot>(orderFundAllot));
+    }
+
+
+    @Override
+    public OrderFundAllot detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(OrderFundAllot orderFundAllot){
+        return  this.save(orderFundAllot);
+    }
+
+    @Override
+    public Boolean update(OrderFundAllot orderFundAllot){
+        return  this.updateById(orderFundAllot);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 17 - 1
sql/update_sql.sql

@@ -459,4 +459,20 @@ ALTER TABLE finance_claim CHANGE COLUMN claim_id claim_user_id bigint(20) ;
  */
  # 表business_performance_distribution新增字段
 ALTER TABLE business_performance_distribution ADD COLUMN declare_id BIGINT(20) NULL COMMENT '提成申报id';
-ALTER TABLE business_performance_distribution ADD COLUMN user_type VARCHAR(255) NULL COMMENT '人员类型(市场人员/评估人员)';
+ALTER TABLE business_performance_distribution ADD COLUMN user_type VARCHAR(255) NULL COMMENT '人员类型(市场人员/评估人员)';
+
+/**
+  日期:2024-05-29
+  修改人:吴长林
+ */
+CREATE TABLE `order_fund_allot` (
+                                    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+                                    `order_fund_id` bigint(20) NOT NULL COMMENT '订单收款表id',
+                                    `production_fund_id` bigint(20) NOT NULL COMMENT '产品收款表id',
+                                    `allot_amount` decimal(16,2) NOT NULL COMMENT '分配金额',
+                                    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+                                    `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                    `modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+                                    PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='订单收款分配表';
+ALTER TABLE major_production ADD COLUMN delivery_date datetime(0) NULL COMMENT '送达时间';