Эх сурвалжийг харах

退库接口、发票结算明细列表接口、驳回接口

xuezizhuo 1 жил өмнө
parent
commit
0078f82527
35 өөрчлөгдсөн 1081 нэмэгдсэн , 77 устгасан
  1. 18 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/FinishedProductInvoiceController.java
  2. 113 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductColourController.java
  3. 9 4
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductInventoryController.java
  4. 16 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleAccountsReceivableDetailController.java
  5. 11 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeList.java
  6. 82 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductColour.java
  7. 33 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleAccountsReceivableDetail.java
  8. 11 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java
  9. 33 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleRegistrationCollection.java
  10. 11 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/ProductCodeListVO.java
  11. 15 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleProductsVo.java
  12. 11 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleRegistrationCollectionVo.java
  13. 9 2
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/FinishedProductInvoiceMapper.java
  14. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductColourMapper.java
  15. 10 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordBatchMapper.java
  16. 16 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordMapper.java
  17. 13 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IFinishedProductInvoiceService.java
  18. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductColourService.java
  19. 6 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductInventoryService.java
  20. 10 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleAccountsReceivableDetailService.java
  21. 13 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/FinishedProductInvoiceServiceImpl.java
  22. 96 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductColourServiceImpl.java
  23. 31 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInventoryServiceImpl.java
  24. 92 8
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleAccountsReceivableDetailServiceImpl.java
  25. 3 3
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java
  26. 1 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOtherCollectionServiceImpl.java
  27. 77 24
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleRegistrationCollectionServiceImpl.java
  28. 64 28
      zkqy-custom-business/src/main/resources/mapper/business/FinishedProductInvoiceMapper.xml
  29. 6 1
      zkqy-custom-business/src/main/resources/mapper/business/ProductCodeListMapper.xml
  30. 80 0
      zkqy-custom-business/src/main/resources/mapper/business/ProductColourMapper.xml
  31. 11 0
      zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordBatchMapper.xml
  32. 14 2
      zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordMapper.xml
  33. 19 1
      zkqy-custom-business/src/main/resources/mapper/business/SaleAccountsReceivableDetailMapper.xml
  34. 10 1
      zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml
  35. 15 3
      zkqy-custom-business/src/main/resources/mapper/business/SaleRegistrationCollectionMapper.xml

+ 18 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/FinishedProductInvoiceController.java

@@ -1,6 +1,7 @@
 package com.zkqy.business.controller;
 package com.zkqy.business.controller;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
@@ -112,4 +113,21 @@ public class FinishedProductInvoiceController extends BaseController
     {
     {
         return toAjax(finishedProductInvoiceService.deleteFinishedProductInvoiceByIds(ids));
         return toAjax(finishedProductInvoiceService.deleteFinishedProductInvoiceByIds(ids));
     }
     }
+
+    /**
+     * 查询发票结算明细列表
+     */
+    @PostMapping("/selectBillingDetails")
+    public AjaxResult selectBillingDetails(@RequestBody Map<String,Object> map){
+        return AjaxResult.success(finishedProductInvoiceService.selectBillingDetails(map));
+    }
+
+    /**
+     * 发票结算明细详情
+     */
+    @GetMapping("/settlementDetail")
+    public AjaxResult settlementDetail(Long customerId){
+        return AjaxResult.success(finishedProductInvoiceService.settlementDetail(customerId));
+    }
+
 }
 }

+ 113 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductColourController.java

@@ -0,0 +1,113 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.ProductColour;
+import com.zkqy.business.service.IProductColourService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 产品色泽Controller
+ *
+ * @author zkqy
+ * @date 2024-07-10
+ */
+@RestController
+@RequestMapping("/system/ProductColour")
+@Api(value = "/system/ProductColour", description = "产品色泽-接口")
+public class ProductColourController extends BaseController
+{
+    @Autowired
+    private IProductColourService productColourService;
+
+    /**
+     * 查询产品色泽列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:ProductColour:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询产品色泽列表")
+    public TableDataInfo list(ProductColour productColour)
+    {
+        startPage();
+        List<ProductColour> list = productColourService.selectProductColourList(productColour);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出产品色泽列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:ProductColour:export')")
+    @Log(title = "产品色泽", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出产品色泽列表")
+    public void export(HttpServletResponse response, ProductColour productColour)
+    {
+        List<ProductColour> list = productColourService.selectProductColourList(productColour);
+        ExcelUtil<ProductColour> util = new ExcelUtil<ProductColour>(ProductColour.class);
+        util.exportExcel(response, list, "产品色泽数据");
+    }
+
+    /**
+     * 获取产品色泽详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:ProductColour:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取产品色泽详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(productColourService.selectProductColourById(id));
+    }
+
+    /**
+     * 新增产品色泽
+     */
+    @PreAuthorize("@ss.hasPermi('system:ProductColour:add')")
+    @Log(title = "产品色泽", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增产品色泽")
+    public AjaxResult add(@RequestBody ProductColour productColour)
+    {
+        return toAjax(productColourService.insertProductColour(productColour));
+    }
+
+    /**
+     * 修改产品色泽
+     */
+    @PreAuthorize("@ss.hasPermi('system:ProductColour:edit')")
+    @Log(title = "产品色泽", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改产品色泽")
+    public AjaxResult edit(@RequestBody ProductColour productColour)
+    {
+        return toAjax(productColourService.updateProductColour(productColour));
+    }
+
+    /**
+     * 删除产品色泽
+     */
+    @PreAuthorize("@ss.hasPermi('system:ProductColour:remove')")
+    @Log(title = "产品色泽", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除产品色泽")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(productColourService.deleteProductColourByIds(ids));
+    }
+}

+ 9 - 4
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductInventoryController.java

@@ -6,9 +6,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.Set;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 
-import com.zkqy.business.domain.Customer;
-import com.zkqy.business.domain.ProductInvoice;
-import com.zkqy.business.domain.Production;
+import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.ProductCodeListVO;
 import com.zkqy.business.domain.vo.ProductCodeListVO;
 import com.zkqy.business.mapper.ProductionMapper;
 import com.zkqy.business.mapper.ProductionMapper;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.DateUtils;
@@ -21,7 +19,6 @@ import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.enums.BusinessType;
-import com.zkqy.business.domain.ProductInventory;
 import com.zkqy.business.service.IProductInventoryService;
 import com.zkqy.business.service.IProductInventoryService;
 import com.zkqy.common.utils.poi.ExcelUtil;
 import com.zkqy.common.utils.poi.ExcelUtil;
 import com.zkqy.common.core.page.TableDataInfo;
 import com.zkqy.common.core.page.TableDataInfo;
@@ -227,4 +224,12 @@ public class ProductInventoryController extends BaseController {
         return AjaxResult.success(productInventoryService.statisticsSuttleByLevels(productType));
         return AjaxResult.success(productInventoryService.statisticsSuttleByLevels(productType));
     }
     }
 
 
+    /**
+     * 退库
+     */
+    @PostMapping("/returnStorage")
+    public AjaxResult returnStorage(@RequestBody List<ProductCodeListVO> productCodeListVOList){
+        return productInventoryService.returnStorage(productCodeListVOList);
+    }
+
 }
 }

+ 16 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleAccountsReceivableDetailController.java

@@ -153,6 +153,22 @@ public class SaleAccountsReceivableDetailController extends BaseController
         return toAjax(saleAccountsReceivableDetailService.cancelBilling(vo));
         return toAjax(saleAccountsReceivableDetailService.cancelBilling(vo));
     }
     }
 
 
+    /**
+     * 驳回
+     */
+    @PostMapping("/reject")
+    public AjaxResult reject(@RequestBody SaleAccountsReceivableDetail saleAccountsReceivableDetail){
+        return toAjax(saleAccountsReceivableDetailService.reject(saleAccountsReceivableDetail));
+    }
+
+    /**
+     * 撤销登账
+     */
+    @PostMapping("/cancelAccountEntry")
+    public AjaxResult cancelAccountEntry(@RequestBody SaleAccountsReceivableDetail saleAccountsReceivableDetail){
+        return toAjax(saleAccountsReceivableDetailService.cancelAccountEntry(saleAccountsReceivableDetail));
+    }
+
 
 
 
 
 }
 }

+ 11 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeList.java

@@ -118,6 +118,17 @@ public class ProductCodeList extends BaseEntity
     //码单uuid
     //码单uuid
     private String qrCodeId;
     private String qrCodeId;
 
 
+    /** 退库标识 */
+    private String withdrawingFlag;
+
+    public String getWithdrawingFlag() {
+        return withdrawingFlag;
+    }
+
+    public void setWithdrawingFlag(String withdrawingFlag) {
+        this.withdrawingFlag = withdrawingFlag;
+    }
+
     public String getQrCodeId() {
     public String getQrCodeId() {
         return qrCodeId;
         return qrCodeId;
     }
     }

+ 82 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductColour.java

@@ -0,0 +1,82 @@
+package com.zkqy.business.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 产品色泽对象 product_colour
+ * 
+ * @author zkqy
+ * @date 2024-07-10
+ */
+public class ProductColour extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 色泽 */
+    @Excel(name = "色泽")
+    private String colour;
+
+    /** 创建者ID */
+    private Long createById;
+
+    /** 更新者ID */
+    private Long updateById;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setColour(String colour) 
+    {
+        this.colour = colour;
+    }
+
+    public String getColour() 
+    {
+        return colour;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("colour", getColour())
+            .append("remark", getRemark())
+            .append("createBy", getCreateBy())
+            .append("createById", getCreateById())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateById", getUpdateById())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 33 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleAccountsReceivableDetail.java

@@ -174,6 +174,39 @@ public class SaleAccountsReceivableDetail extends BaseEntity
     /** 发票类型 */
     /** 发票类型 */
     private String invoiceType;
     private String invoiceType;
 
 
+    /** 贴息金额 */
+    private Double interestSubsidy;
+
+    /** 其他收款编号 */
+    private Long otherCollectionId;
+
+    /** 批次 */
+    private Long batchNumber;
+
+    public Long getBatchNumber() {
+        return batchNumber;
+    }
+
+    public void setBatchNumber(Long batchNumber) {
+        this.batchNumber = batchNumber;
+    }
+
+    public Long getOtherCollectionId() {
+        return otherCollectionId;
+    }
+
+    public void setOtherCollectionId(Long otherCollectionId) {
+        this.otherCollectionId = otherCollectionId;
+    }
+
+    public Double getInterestSubsidy() {
+        return interestSubsidy;
+    }
+
+    public void setInterestSubsidy(Double interestSubsidy) {
+        this.interestSubsidy = interestSubsidy;
+    }
+
     public Long getFinishedProductInvoiceId() {
     public Long getFinishedProductInvoiceId() {
         return finishedProductInvoiceId;
         return finishedProductInvoiceId;
     }
     }

+ 11 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java

@@ -103,6 +103,17 @@ public class SaleProducts extends BaseEntity
     /** 上机状态 */
     /** 上机状态 */
     private String onBoardState;
     private String onBoardState;
 
 
+    /** 色泽 */
+    @Excel(name = "色泽")
+    private String colours;
+
+    public String getColours() {
+        return colours;
+    }
+
+    public void setColours(String colours) {
+        this.colours = colours;
+    }
 
 
     public String getOnBoardState() {
     public String getOnBoardState() {
         return onBoardState;
         return onBoardState;

+ 33 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleRegistrationCollection.java

@@ -61,12 +61,45 @@ public class SaleRegistrationCollection extends BaseEntity
     /** 删除标志(0:否;2:是) */
     /** 删除标志(0:否;2:是) */
     private String delFlag;
     private String delFlag;
 
 
+    /** 贴息 */
+    private Double interestSubsidy;
+
+    /** 计息天数 */
+    private String interestCountingDays;
+
+    /** 票据到期日 */
+    private Date dueDate;
+
     //开始时间
     //开始时间
     private Date startTime;
     private Date startTime;
 
 
     // 结束时间
     // 结束时间
     private Date endTime;
     private Date endTime;
 
 
+    public Double getInterestSubsidy() {
+        return interestSubsidy;
+    }
+
+    public void setInterestSubsidy(Double interestSubsidy) {
+        this.interestSubsidy = interestSubsidy;
+    }
+
+    public String getInterestCountingDays() {
+        return interestCountingDays;
+    }
+
+    public void setInterestCountingDays(String interestCountingDays) {
+        this.interestCountingDays = interestCountingDays;
+    }
+
+    public Date getDueDate() {
+        return dueDate;
+    }
+
+    public void setDueDate(Date dueDate) {
+        this.dueDate = dueDate;
+    }
+
     public String getStatus() {
     public String getStatus() {
         return status;
         return status;
     }
     }

+ 11 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/ProductCodeListVO.java

@@ -263,6 +263,17 @@ public class ProductCodeListVO extends BaseEntity {
 
 
     private String productNo;
     private String productNo;
 
 
+    /** 退库标识 */
+    private String withdrawingFlag;
+
+    public String getWithdrawingFlag() {
+        return withdrawingFlag;
+    }
+
+    public void setWithdrawingFlag(String withdrawingFlag) {
+        this.withdrawingFlag = withdrawingFlag;
+    }
+
     public String getProductNo() {
     public String getProductNo() {
         return productNo;
         return productNo;
     }
     }

+ 15 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleProductsVo.java

@@ -1,6 +1,7 @@
 package com.zkqy.business.domain.vo;
 package com.zkqy.business.domain.vo;
 
 
 import com.zkqy.business.domain.SaleProducts;
 import com.zkqy.business.domain.SaleProducts;
+import com.zkqy.common.annotation.Excel;
 
 
 public class SaleProductsVo extends SaleProducts {
 public class SaleProductsVo extends SaleProducts {
 
 
@@ -52,6 +53,10 @@ public class SaleProductsVo extends SaleProducts {
     /** 销售单号 */
     /** 销售单号 */
     private String saleNo;
     private String saleNo;
 
 
+    /** 色泽 */
+    private String colours;
+
+
     @Override
     @Override
     public String getProductNo() {
     public String getProductNo() {
         return productNo;
         return productNo;
@@ -191,4 +196,14 @@ public class SaleProductsVo extends SaleProducts {
     public void setProductNumber(Double productNumber) {
     public void setProductNumber(Double productNumber) {
         this.productNumber = productNumber;
         this.productNumber = productNumber;
     }
     }
+
+    @Override
+    public String getColours() {
+        return colours;
+    }
+
+    @Override
+    public void setColours(String colours) {
+        this.colours = colours;
+    }
 }
 }

+ 11 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleRegistrationCollectionVo.java

@@ -63,6 +63,17 @@ public class SaleRegistrationCollectionVo extends BaseEntity {
     // 客户编码
     // 客户编码
     private String customNo;
     private String customNo;
 
 
+    /** 贴息金额 */
+    private Double interestSubsidy;
+
+    public Double getInterestSubsidy() {
+        return interestSubsidy;
+    }
+
+    public void setInterestSubsidy(Double interestSubsidy) {
+        this.interestSubsidy = interestSubsidy;
+    }
+
     public String getCustomNo() {
     public String getCustomNo() {
         return customNo;
         return customNo;
     }
     }

+ 9 - 2
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/FinishedProductInvoiceMapper.java

@@ -6,6 +6,7 @@ import java.util.Map;
 
 
 import com.zkqy.business.domain.FinishedProductInvoice;
 import com.zkqy.business.domain.FinishedProductInvoice;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
 /**
  * 成品发票Mapper接口
  * 成品发票Mapper接口
@@ -70,10 +71,16 @@ public interface FinishedProductInvoiceMapper
 
 
     /**
     /**
      * 查询发票结算明细列表
      * 查询发票结算明细列表
-     * @param qcDate
+     * @param qcDate 期初日期
+     * @param startDate 时间范围 开始时间
+     * @param endDate 结束时间
+     * @param customerId 客户编号
+     * @param settlementUnitId 结算单位编号
      * @return
      * @return
      */
      */
-    List<Map<String,Object>> selectBillingDetails(Date qcDate);
+//    List<Map<String,Object>> selectBillingDetails(@Param("qcDate") Date qcDate,@Param("startDate") Date startDate,
+//                                                  @Param("endDate") Date endDate,@Param("customerId") Long customerId,@Param("settlementUnitId") Long settlementUnitId);
+    List<Map<String,Object>> selectBillingDetails(Map<String,Object> map);
 
 
 
 
 }
 }

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductColourMapper.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductColour;
+
+/**
+ * 产品色泽Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-07-10
+ */
+public interface ProductColourMapper 
+{
+    /**
+     * 查询产品色泽
+     * 
+     * @param id 产品色泽主键
+     * @return 产品色泽
+     */
+    public ProductColour selectProductColourById(Long id);
+
+    /**
+     * 查询产品色泽列表
+     * 
+     * @param productColour 产品色泽
+     * @return 产品色泽集合
+     */
+    public List<ProductColour> selectProductColourList(ProductColour productColour);
+
+    /**
+     * 新增产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    public int insertProductColour(ProductColour productColour);
+
+    /**
+     * 修改产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    public int updateProductColour(ProductColour productColour);
+
+    /**
+     * 删除产品色泽
+     * 
+     * @param id 产品色泽主键
+     * @return 结果
+     */
+    public int deleteProductColourById(Long id);
+
+    /**
+     * 批量删除产品色泽
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProductColourByIds(Long[] ids);
+}

+ 10 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordBatchMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.business.mapper;
 
 
 import java.util.List;
 import java.util.List;
 import com.zkqy.business.domain.ProductOutboundRecordBatch;
 import com.zkqy.business.domain.ProductOutboundRecordBatch;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
 /**
  * 成品出库记录批次Mapper接口
  * 成品出库记录批次Mapper接口
@@ -70,4 +71,13 @@ public interface ProductOutboundRecordBatchMapper
      * @return 结果
      * @return 结果
      */
      */
     int batchInsertProductOutboundRecordBatch(List<ProductOutboundRecordBatch> productOutboundRecordBatchList);
     int batchInsertProductOutboundRecordBatch(List<ProductOutboundRecordBatch> productOutboundRecordBatchList);
+
+    /**
+     * 查询通知单没批出库货品信息
+     * @param batchNumber
+     * @param noticeNumber
+     * @return
+     */
+    List<Long> selectOutboundRecordIdByBatchNumber(@Param("batchNumber") Long batchNumber,@Param("noticeNumber") String noticeNumber);
+
 }
 }

+ 16 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordMapper.java

@@ -119,4 +119,20 @@ public interface ProductOutboundRecordMapper
      */
      */
     List<Long> selectOutboundRecordNo(String noticeNumber);
     List<Long> selectOutboundRecordNo(String noticeNumber);
 
 
+    /**
+     * 查询成品出库记录
+     *
+     * @param qrCodeId 成品出库记录主键
+     * @return 成品出库记录
+     */
+    ProductOutboundRecord selectProductOutboundRecordByQrCodeId(String qrCodeId);
+
+    /**
+     * 查询成品出库记录
+     *
+     * @param ids 成品出库记录
+     * @return 成品出库记录集合
+     */
+    List<ProductOutboundRecord> selectProductOutboundRecordListByIds(List<Long> ids);
+
 }
 }

+ 13 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IFinishedProductInvoiceService.java

@@ -1,6 +1,9 @@
 package com.zkqy.business.service;
 package com.zkqy.business.service;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+
 import com.zkqy.business.domain.FinishedProductInvoice;
 import com.zkqy.business.domain.FinishedProductInvoice;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 
 
@@ -68,4 +71,14 @@ public interface IFinishedProductInvoiceService
      */
      */
     public List<FinishedProductInvoiceVo> selectFinishedProductInvoiceList1(FinishedProductInvoice finishedProductInvoice);
     public List<FinishedProductInvoiceVo> selectFinishedProductInvoiceList1(FinishedProductInvoice finishedProductInvoice);
 
 
+    /**
+     * 查询发票结算明细列表
+     */
+    List<Map<String,Object>> selectBillingDetails(Map<String,Object> map);
+
+    /**
+     * 发票结算明细详情
+     */
+    List<FinishedProductInvoiceVo> settlementDetail(Long customerId);
+
 }
 }

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductColourService.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductColour;
+
+/**
+ * 产品色泽Service接口
+ * 
+ * @author zkqy
+ * @date 2024-07-10
+ */
+public interface IProductColourService 
+{
+    /**
+     * 查询产品色泽
+     * 
+     * @param id 产品色泽主键
+     * @return 产品色泽
+     */
+    public ProductColour selectProductColourById(Long id);
+
+    /**
+     * 查询产品色泽列表
+     * 
+     * @param productColour 产品色泽
+     * @return 产品色泽集合
+     */
+    public List<ProductColour> selectProductColourList(ProductColour productColour);
+
+    /**
+     * 新增产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    public int insertProductColour(ProductColour productColour);
+
+    /**
+     * 修改产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    public int updateProductColour(ProductColour productColour);
+
+    /**
+     * 批量删除产品色泽
+     * 
+     * @param ids 需要删除的产品色泽主键集合
+     * @return 结果
+     */
+    public int deleteProductColourByIds(Long[] ids);
+
+    /**
+     * 删除产品色泽信息
+     * 
+     * @param id 产品色泽主键
+     * @return 结果
+     */
+    public int deleteProductColourById(Long id);
+}

+ 6 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductInventoryService.java

@@ -109,4 +109,10 @@ public interface IProductInventoryService {
      */
      */
     Map<String,Object> statisticsSuttleByLevels(String productType);
     Map<String,Object> statisticsSuttleByLevels(String productType);
 
 
+    /**
+     * 退库
+     * @param productCodeListVO
+     * @return
+     */
+    AjaxResult returnStorage(List<ProductCodeListVO> productCodeListVOList);
 }
 }

+ 10 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleAccountsReceivableDetailService.java

@@ -87,4 +87,14 @@ public interface ISaleAccountsReceivableDetailService
      */
      */
     int cancelBilling(FinishedProductInvoiceVo vo);
     int cancelBilling(FinishedProductInvoiceVo vo);
 
 
+    /**
+     * 驳回
+     */
+    int reject(SaleAccountsReceivableDetail saleAccountsReceivableDetail);
+
+    /**
+     * 撤销登账
+     */
+    int cancelAccountEntry(SaleAccountsReceivableDetail saleAccountsReceivableDetail);
+
 }
 }

+ 13 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/FinishedProductInvoiceServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zkqy.business.service.impl;
 package com.zkqy.business.service.impl;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.DateUtils;
@@ -100,4 +102,15 @@ public class FinishedProductInvoiceServiceImpl implements IFinishedProductInvoic
     public List<FinishedProductInvoiceVo> selectFinishedProductInvoiceList1(FinishedProductInvoice finishedProductInvoice) {
     public List<FinishedProductInvoiceVo> selectFinishedProductInvoiceList1(FinishedProductInvoice finishedProductInvoice) {
         return finishedProductInvoiceMapper.selectFinishedProductInvoiceList1(finishedProductInvoice);
         return finishedProductInvoiceMapper.selectFinishedProductInvoiceList1(finishedProductInvoice);
     }
     }
+
+    @Override
+    public List<Map<String, Object>> selectBillingDetails(Map<String,Object> map) {
+
+        return finishedProductInvoiceMapper.selectBillingDetails(map);
+    }
+
+    @Override
+    public List<FinishedProductInvoiceVo> settlementDetail(Long customerId) {
+        return null;
+    }
 }
 }

+ 96 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductColourServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.ProductColourMapper;
+import com.zkqy.business.domain.ProductColour;
+import com.zkqy.business.service.IProductColourService;
+
+/**
+ * 产品色泽Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-07-10
+ */
+@Service
+public class ProductColourServiceImpl implements IProductColourService 
+{
+    @Autowired
+    private ProductColourMapper productColourMapper;
+
+    /**
+     * 查询产品色泽
+     * 
+     * @param id 产品色泽主键
+     * @return 产品色泽
+     */
+    @Override
+    public ProductColour selectProductColourById(Long id)
+    {
+        return productColourMapper.selectProductColourById(id);
+    }
+
+    /**
+     * 查询产品色泽列表
+     * 
+     * @param productColour 产品色泽
+     * @return 产品色泽
+     */
+    @Override
+    public List<ProductColour> selectProductColourList(ProductColour productColour)
+    {
+        return productColourMapper.selectProductColourList(productColour);
+    }
+
+    /**
+     * 新增产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    @Override
+    public int insertProductColour(ProductColour productColour)
+    {
+        productColour.setCreateTime(DateUtils.getNowDate());
+        return productColourMapper.insertProductColour(productColour);
+    }
+
+    /**
+     * 修改产品色泽
+     * 
+     * @param productColour 产品色泽
+     * @return 结果
+     */
+    @Override
+    public int updateProductColour(ProductColour productColour)
+    {
+        productColour.setUpdateTime(DateUtils.getNowDate());
+        return productColourMapper.updateProductColour(productColour);
+    }
+
+    /**
+     * 批量删除产品色泽
+     * 
+     * @param ids 需要删除的产品色泽主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductColourByIds(Long[] ids)
+    {
+        return productColourMapper.deleteProductColourByIds(ids);
+    }
+
+    /**
+     * 删除产品色泽信息
+     * 
+     * @param id 产品色泽主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductColourById(Long id)
+    {
+        return productColourMapper.deleteProductColourById(id);
+    }
+}

+ 31 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInventoryServiceImpl.java

@@ -433,6 +433,37 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
         return result;
         return result;
     }
     }
 
 
+    @Transactional
+    @Override
+    public AjaxResult returnStorage(List<ProductCodeListVO> productCodeListVOList) {
+
+        for (ProductCodeListVO productCodeListVO : productCodeListVOList){
+            // 判断当前货品是否已出库,出库删除出库记录
+            ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper.selectProductOutboundRecordByQrCodeId(productCodeListVO.getQrCodeId());
+            if (productOutboundRecord == null){
+                return AjaxResult.warn("当前货品未出库");
+            }
+            // 库存累加
+            ProductInventory productInventory = productInventoryMapper.selectProductInventoryByQrCode(productCodeListVO.getQrCode());
+            ProductInventory editProductInventory = new ProductInventory();
+            editProductInventory.setId(productInventory.getId());//编号
+            editProductInventory.setTotalCanisterNum(productInventory.getTotalCanisterNum() + productOutboundRecord.getCanisterNum());//合计筒数
+            editProductInventory.setTotalBoxNum(productInventory.getTotalBoxNum() + 1);//合计箱数
+            editProductInventory.setTotalSuttle(handlingWeight(productInventory.getTotalSuttle() + productOutboundRecord.getSuttle()));//合计净重
+            editProductInventory.setTotalGrossWeight(handlingWeight(productInventory.getTotalGrossWeight() + productOutboundRecord.getGrossWeight()));//合计毛重
+            productInventoryMapper.updateProductInventory(editProductInventory);
+
+            // 修改码单标识为已退库
+            ProductCodeList productCodeList = productCodeListMapper.selectProductCodeListById(productCodeListVO.getId());
+            productCodeList.setWithdrawingFlag("1");
+            productCodeListMapper.updateProductCodeList(productCodeList);
+
+            // 删除出库记录
+            productOutboundRecordMapper.deleteProductOutboundRecordById(productOutboundRecord.getId());
+        }
+        return AjaxResult.success();
+    }
+
 
 
     //保留两位小数
     //保留两位小数
     public Double handlingWeight(Double weight) {
     public Double handlingWeight(Double weight) {

+ 92 - 8
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleAccountsReceivableDetailServiceImpl.java

@@ -3,20 +3,14 @@ package com.zkqy.business.service.impl;
 import java.text.DecimalFormat;
 import java.text.DecimalFormat;
 import java.util.List;
 import java.util.List;
 
 
-import com.zkqy.business.domain.Customer;
-import com.zkqy.business.domain.FinishedProductInvoice;
-import com.zkqy.business.domain.SaleOrder;
+import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
 import com.zkqy.business.domain.vo.FinishedProductInvoiceVo;
-import com.zkqy.business.mapper.CustomerMapper;
-import com.zkqy.business.mapper.FinishedProductInvoiceMapper;
-import com.zkqy.business.mapper.SaleOrderMapper;
+import com.zkqy.business.mapper.*;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;
 import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import com.zkqy.business.mapper.SaleAccountsReceivableDetailMapper;
-import com.zkqy.business.domain.SaleAccountsReceivableDetail;
 import com.zkqy.business.service.ISaleAccountsReceivableDetailService;
 import com.zkqy.business.service.ISaleAccountsReceivableDetailService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -41,6 +35,15 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
     @Autowired
     @Autowired
     private FinishedProductInvoiceMapper finishedProductInvoiceMapper;
     private FinishedProductInvoiceMapper finishedProductInvoiceMapper;
 
 
+    @Autowired
+    private SaleOtherCollectionMapper saleOtherCollectionMapper;
+
+    @Autowired
+    private ProductOutboundRecordBatchMapper productOutboundRecordBatchMapper;
+
+    @Autowired
+    private ProductOutboundRecordMapper productOutboundRecordMapper;
+
     /**
     /**
      * 查询应收帐明细
      * 查询应收帐明细
      * 
      * 
@@ -240,6 +243,87 @@ public class SaleAccountsReceivableDetailServiceImpl implements ISaleAccountsRec
         return saleAccountsReceivableDetailMapper.updateSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
         return saleAccountsReceivableDetailMapper.updateSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
     }
     }
 
 
+    @Override
+    @Transactional
+    public int reject(SaleAccountsReceivableDetail saleAccountsReceivableDetail) {
+        // 修改其他收款状态
+        SaleOtherCollection saleOtherCollection = new SaleOtherCollection();
+        saleOtherCollection.setId(saleAccountsReceivableDetail.getOtherCollectionId());
+        saleOtherCollection.setStatus(saleAccountsReceivableDetail.getStatus());
+        saleOtherCollectionMapper.updateSaleOtherCollection(saleOtherCollection);
+        // 删除收款明细
+        saleAccountsReceivableDetailMapper.deleteSaleAccountsReceivableDetailById(saleAccountsReceivableDetail.getId());
+
+        // 计算客户余额
+        //查询该客户所有的应收帐明细
+        SaleAccountsReceivableDetail saleAccountsReceivableDetail1 = new SaleAccountsReceivableDetail();
+        saleAccountsReceivableDetail1.setCustomerId(saleAccountsReceivableDetail.getCustomerId());
+        saleAccountsReceivableDetail1.setStatus("2");//审核通过明细
+        List<SaleAccountsReceivableDetail> list = saleAccountsReceivableDetailMapper.selectAccountsReceivableDetailList(saleAccountsReceivableDetail1);
+
+
+        //根据客户编号查询客户信息和余额
+        Customer customer = customerMapper.selectCustomerById(saleAccountsReceivableDetail.getCustomerId());
+        //客户余额
+        Double amount = 0.0;
+
+        for (SaleAccountsReceivableDetail detail : list){
+            //如果是账务类型是收款或其他收款
+            if(detail.getAccountingType().equals("2") || detail.getAccountingType().equals("3")){
+                //减后余额
+                Double addAmount = amount - detail.getReceivedAmount();
+                amount -= detail.getReceivedAmount();//已收
+                detail.setAmounts(handlingWeight(addAmount));
+                saleAccountsReceivableDetailMapper.updateSaleAccountsReceivableDetail(detail);
+
+            }else {
+                //加后余额
+                Double subtractAmount = amount + detail.getAmountReceivable();
+                amount += detail.getAmountReceivable();
+                detail.setAmounts(handlingWeight(subtractAmount));
+                saleAccountsReceivableDetailMapper.updateSaleAccountsReceivableDetail(detail);
+            }
+        }
+
+        // 修改客户余额
+        customer.setAmount(amount);
+
+        return customerMapper.updateCustomer(customer);
+    }
+
+    @Transactional
+    @Override
+    public int cancelAccountEntry(SaleAccountsReceivableDetail saleAccountsReceivableDetail) {
+
+        // 查询当前批次出库记录编号
+        List<Long> ids = productOutboundRecordBatchMapper.selectOutboundRecordIdByBatchNumber(saleAccountsReceivableDetail.getBatchNumber(),
+                saleAccountsReceivableDetail.getNoticeNumber());
+        // 根据编号查询出库记录
+        List<ProductOutboundRecord> productOutboundRecords = productOutboundRecordMapper.selectProductOutboundRecordListByIds(ids);
+
+        for (ProductOutboundRecord productOutboundRecord : productOutboundRecords){
+            if (productOutboundRecord.getProductId() == saleAccountsReceivableDetail.getProductId() &&
+                productOutboundRecord.getProductColour().equals(saleAccountsReceivableDetail.getProductColour()) &&
+                    productOutboundRecord.getLevels().equals(saleAccountsReceivableDetail.getProductLevel()) &&
+                            productOutboundRecord.getLotNum().equals(saleAccountsReceivableDetail.getLotNumber())){
+
+
+            }
+
+
+        }
+
+
+        // 删除收款明细
+        saleAccountsReceivableDetailMapper.deleteSaleAccountsReceivableDetailById(saleAccountsReceivableDetail.getId());
+
+
+
+        // 修改客户余额
+
+        return 0;
+    }
+
 
 
     //保留两位小数
     //保留两位小数
     public Double handlingWeight(Double weight) {
     public Double handlingWeight(Double weight) {

+ 3 - 3
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java

@@ -455,7 +455,8 @@ public class SaleOrderServiceImpl implements ISaleOrderService {
     @Override
     @Override
     @Transactional
     @Transactional
     public int printOutsourceOrder(List<SaleAccountsReceivableDetail> saleAccountsReceivableDetailList) {
     public int printOutsourceOrder(List<SaleAccountsReceivableDetail> saleAccountsReceivableDetailList) {
-
+        // 查询当前批次出库记录
+        Long batchNumber = productOutboundRecordBatchMapper.selectBatchNumberByNoticeNumber(saleAccountsReceivableDetailList.get(0).getNoticeNumber());
         //根据销售单号查询销售单详情
         //根据销售单号查询销售单详情
         SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleAccountsReceivableDetailList.get(0).getSaleNo());
         SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleAccountsReceivableDetailList.get(0).getSaleNo());
         //根据客户编号查询客户信息和余额
         //根据客户编号查询客户信息和余额
@@ -469,6 +470,7 @@ public class SaleOrderServiceImpl implements ISaleOrderService {
             Double subtractAmount = amount + saleAccountsReceivableDetail.getAmountReceivable();
             Double subtractAmount = amount + saleAccountsReceivableDetail.getAmountReceivable();
             amount += saleAccountsReceivableDetail.getAmountReceivable();
             amount += saleAccountsReceivableDetail.getAmountReceivable();
             saleAccountsReceivableDetail.setAmounts(handlingWeight(subtractAmount));
             saleAccountsReceivableDetail.setAmounts(handlingWeight(subtractAmount));
+            saleAccountsReceivableDetail.setBatchNumber(batchNumber);
             saleAccountsReceivableDetail.setCreateBy(SecurityUtils.getUsername());
             saleAccountsReceivableDetail.setCreateBy(SecurityUtils.getUsername());
             saleAccountsReceivableDetail.setCreateById(SecurityUtils.getUserId());
             saleAccountsReceivableDetail.setCreateById(SecurityUtils.getUserId());
             saleAccountsReceivableDetail.setCreateTime(DateUtils.getNowDate());
             saleAccountsReceivableDetail.setCreateTime(DateUtils.getNowDate());
@@ -480,8 +482,6 @@ public class SaleOrderServiceImpl implements ISaleOrderService {
         List<Long> list = productOutboundRecordMapper.selectOutboundRecordNo(saleAccountsReceivableDetailList.get(0).getNoticeNumber());
         List<Long> list = productOutboundRecordMapper.selectOutboundRecordNo(saleAccountsReceivableDetailList.get(0).getNoticeNumber());
         if(list.size() > 0){
         if(list.size() > 0){
             List<ProductOutboundRecordBatch> productOutboundRecordBatchList = new ArrayList<>();
             List<ProductOutboundRecordBatch> productOutboundRecordBatchList = new ArrayList<>();
-            // 查询当前批次出库记录
-            Long batchNumber = productOutboundRecordBatchMapper.selectBatchNumberByNoticeNumber(saleAccountsReceivableDetailList.get(0).getNoticeNumber());
             for (Long id : list){
             for (Long id : list){
                 ProductOutboundRecordBatch productOutboundRecordBatch = new ProductOutboundRecordBatch();
                 ProductOutboundRecordBatch productOutboundRecordBatch = new ProductOutboundRecordBatch();
                 productOutboundRecordBatch.setBatchNumber(batchNumber);
                 productOutboundRecordBatch.setBatchNumber(batchNumber);

+ 1 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOtherCollectionServiceImpl.java

@@ -146,6 +146,7 @@ public class SaleOtherCollectionServiceImpl implements ISaleOtherCollectionServi
         saleAccountsReceivableDetail.setStatus("2");
         saleAccountsReceivableDetail.setStatus("2");
         saleAccountsReceivableDetail.setReturnReceipt("0");
         saleAccountsReceivableDetail.setReturnReceipt("0");
         saleAccountsReceivableDetail.setSettlementUnit(saleOtherCollection.getSettlementUnitId());
         saleAccountsReceivableDetail.setSettlementUnit(saleOtherCollection.getSettlementUnitId());
+        saleAccountsReceivableDetail.setOtherCollectionId(saleOtherCollection.getId());
         return saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
         return saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
     }
     }
 
 

+ 77 - 24
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleRegistrationCollectionServiceImpl.java

@@ -125,35 +125,88 @@ public class SaleRegistrationCollectionServiceImpl implements ISaleRegistrationC
         //修改收款登记状态、已记账标志
         //修改收款登记状态、已记账标志
         saleRegistrationCollection.setBookkeepingFlag("1");//已记账
         saleRegistrationCollection.setBookkeepingFlag("1");//已记账
         saleRegistrationCollectionMapper.updateSaleRegistrationCollection(saleRegistrationCollection);
         saleRegistrationCollectionMapper.updateSaleRegistrationCollection(saleRegistrationCollection);
-
         //修改客户余额
         //修改客户余额
         //根据客户编号查询客户信息和余额
         //根据客户编号查询客户信息和余额
         Customer customer = customerMapper.selectCustomerById(saleRegistrationCollection.getCustomerId());
         Customer customer = customerMapper.selectCustomerById(saleRegistrationCollection.getCustomerId());
         //客户余额
         //客户余额
         Double amount = customer.getAmount();
         Double amount = customer.getAmount();
-        //减后余额
-        Double addedBalance = amount - saleRegistrationCollection.getAmounts();
-        customer.setAmount(handlingWeight(addedBalance));
-        customerMapper.updateCustomer(customer);
-
-        // 添加应收明细
-        SaleAccountsReceivableDetail saleAccountsReceivableDetail = new SaleAccountsReceivableDetail();
-        saleAccountsReceivableDetail.setAccountingType("2");// 账务类型
-        saleAccountsReceivableDetail.setCustomerId(saleRegistrationCollection.getCustomerId());// 客户名称
-        saleAccountsReceivableDetail.setAccountsReceivableDate(saleRegistrationCollection.getCollectionMoneyDate()); // 日期
-        saleAccountsReceivableDetail.setBoxNum(0L); // 箱数
-        saleAccountsReceivableDetail.setWeight(0.00);//重量
-        saleAccountsReceivableDetail.setProductPrice(0.00);//单价
-        saleAccountsReceivableDetail.setAmountReceivable(0.00);//应收金额
-        saleAccountsReceivableDetail.setReceivedAmount(saleRegistrationCollection.getAmounts());//已收金额
-        saleAccountsReceivableDetail.setAmounts(handlingWeight(addedBalance));//余额
-        saleAccountsReceivableDetail.setPaymentMethod(saleRegistrationCollection.getPaymentMethod());//付款方式
-        saleAccountsReceivableDetail.setBillingType("1");//开票类型
-        saleAccountsReceivableDetail.setAccountsReceivableRemark(saleRegistrationCollection.getRemark());//备注
-        saleAccountsReceivableDetail.setStatus("2");
-        saleAccountsReceivableDetail.setSettlementUnit(saleRegistrationCollection.getSettlementUnitId());//结算单位
-        saleAccountsReceivableDetail.setReturnReceipt("0");
-        return saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
+
+        //判断账务类型是否为贴息
+        if(saleRegistrationCollection.getPaymentMethod().equals("4")){
+            // 账务类型贴息明细
+            //加后余额
+            Double addedBalance1 = amount + saleRegistrationCollection.getInterestSubsidy();
+            amount += saleRegistrationCollection.getInterestSubsidy();
+            SaleAccountsReceivableDetail saleAccountsReceivableDetail = new SaleAccountsReceivableDetail();
+            saleAccountsReceivableDetail.setAccountingType("4");// 账务类型 贴息
+            saleAccountsReceivableDetail.setAmountReceivable(saleRegistrationCollection.getInterestSubsidy());//应收金额
+            saleAccountsReceivableDetail.setAmounts(handlingWeight(addedBalance1));//余额
+            saleAccountsReceivableDetail.setInterestSubsidy(saleRegistrationCollection.getInterestSubsidy());//贴息金额
+            saleAccountsReceivableDetail.setCustomerId(saleRegistrationCollection.getCustomerId());// 客户名称
+            saleAccountsReceivableDetail.setAccountsReceivableDate(saleRegistrationCollection.getCollectionMoneyDate()); // 日期
+            saleAccountsReceivableDetail.setBoxNum(0L); // 箱数
+            saleAccountsReceivableDetail.setWeight(0.00);//重量
+            saleAccountsReceivableDetail.setProductPrice(0.00);//单价
+            saleAccountsReceivableDetail.setPaymentMethod(saleRegistrationCollection.getPaymentMethod());//付款方式
+            saleAccountsReceivableDetail.setBillingType("1");//开票类型
+            saleAccountsReceivableDetail.setAccountsReceivableRemark(saleRegistrationCollection.getRemark());//备注
+            saleAccountsReceivableDetail.setStatus("2");
+            saleAccountsReceivableDetail.setSettlementUnit(saleRegistrationCollection.getSettlementUnitId());//结算单位
+            saleAccountsReceivableDetail.setReturnReceipt("0");
+            saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
+
+            // 账务类型销售应收明细
+            SaleAccountsReceivableDetail saleAccountsReceivableDetail1 = new SaleAccountsReceivableDetail();
+            saleAccountsReceivableDetail1.setAccountingType("1");// 账务类型 销售应收
+            saleAccountsReceivableDetail1.setAmountReceivable(saleRegistrationCollection.getAmounts());//应收金额
+            //加后余额
+            Double addedBalance2 = amount + saleRegistrationCollection.getAmounts();
+            saleAccountsReceivableDetail1.setAmounts(handlingWeight(addedBalance2));//余额
+            saleAccountsReceivableDetail1.setCustomerId(saleRegistrationCollection.getCustomerId());// 客户名称
+            saleAccountsReceivableDetail1.setAccountsReceivableDate(saleRegistrationCollection.getCollectionMoneyDate()); // 日期
+            saleAccountsReceivableDetail1.setBoxNum(0L); // 箱数
+            saleAccountsReceivableDetail1.setWeight(0.00);//重量
+            saleAccountsReceivableDetail1.setProductPrice(0.00);//单价
+            saleAccountsReceivableDetail1.setPaymentMethod(saleRegistrationCollection.getPaymentMethod());//付款方式
+            saleAccountsReceivableDetail1.setBillingType("1");//开票类型
+            saleAccountsReceivableDetail1.setAccountsReceivableRemark(saleRegistrationCollection.getRemark());//备注
+            saleAccountsReceivableDetail1.setStatus("2");
+            saleAccountsReceivableDetail1.setSettlementUnit(saleRegistrationCollection.getSettlementUnitId());//结算单位
+            saleAccountsReceivableDetail1.setReturnReceipt("0");
+
+            saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail1);
+
+            customer.setAmount(handlingWeight(addedBalance2));
+            return customerMapper.updateCustomer(customer);
+        }else {
+            // 添加应收明细
+            SaleAccountsReceivableDetail saleAccountsReceivableDetail = new SaleAccountsReceivableDetail();
+            //减后余额
+            Double addedBalance = amount - saleRegistrationCollection.getAmounts();
+            saleAccountsReceivableDetail.setAccountingType("2");// 账务类型
+            saleAccountsReceivableDetail.setReceivedAmount(saleRegistrationCollection.getAmounts());//已收金额
+            saleAccountsReceivableDetail.setAmounts(handlingWeight(addedBalance));//余额
+            saleAccountsReceivableDetail.setCustomerId(saleRegistrationCollection.getCustomerId());// 客户名称
+            saleAccountsReceivableDetail.setAccountsReceivableDate(saleRegistrationCollection.getCollectionMoneyDate()); // 日期
+            saleAccountsReceivableDetail.setBoxNum(0L); // 箱数
+            saleAccountsReceivableDetail.setWeight(0.00);//重量
+            saleAccountsReceivableDetail.setProductPrice(0.00);//单价
+//        saleAccountsReceivableDetail.setAmountReceivable(0.00);//应收金额
+
+            saleAccountsReceivableDetail.setPaymentMethod(saleRegistrationCollection.getPaymentMethod());//付款方式
+            saleAccountsReceivableDetail.setBillingType("1");//开票类型
+            saleAccountsReceivableDetail.setAccountsReceivableRemark(saleRegistrationCollection.getRemark());//备注
+            saleAccountsReceivableDetail.setStatus("2");
+            saleAccountsReceivableDetail.setSettlementUnit(saleRegistrationCollection.getSettlementUnitId());//结算单位
+            saleAccountsReceivableDetail.setReturnReceipt("0");
+            saleAccountsReceivableDetailMapper.insertSaleAccountsReceivableDetail(saleAccountsReceivableDetail);
+
+
+
+            customer.setAmount(handlingWeight(addedBalance));
+            return customerMapper.updateCustomer(customer);
+        }
+
     }
     }
 
 
 
 

+ 64 - 28
zkqy-custom-business/src/main/resources/mapper/business/FinishedProductInvoiceMapper.xml

@@ -128,88 +128,124 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="startTime != null and endTime != null">and src.invoice_date BETWEEN #{startTime} AND #{endTime}</if>
         <if test="startTime != null and endTime != null">and src.invoice_date BETWEEN #{startTime} AND #{endTime}</if>
     </select>
     </select>
 
 
-    <select id="selectBillingDetails">
+    <select id="selectBillingDetails" parameterType="map" resultType="map">
         SELECT
         SELECT
         c.id,
         c.id,
-        c.custom_no,
-        c.custom_name,
+        c.custom_no as customerNo,
+        c.custom_name as customerName,
         COALESCE(qc.qcys, 0) AS qcys,
         COALESCE(qc.qcys, 0) AS qcys,
         COALESCE(qkp.qckp, 0) AS qckp,
         COALESCE(qkp.qckp, 0) AS qckp,
         COALESCE(sq.sqys, 0) AS sqys,
         COALESCE(sq.sqys, 0) AS sqys,
         COALESCE(skp.sqkp, 0) AS sqkp,
         COALESCE(skp.sqkp, 0) AS sqkp,
         COALESCE(bq.bqys, 0) AS bqys,
         COALESCE(bq.bqys, 0) AS bqys,
         COALESCE(bkp.bqkp, 0) AS bqkp,
         COALESCE(bkp.bqkp, 0) AS bqkp,
-        COALESCE(bqs.bqys, 0) AS bqys_received,
+        COALESCE(bqs.bqys, 0) AS bqyishou,
         COALESCE(qm.qmys, 0) AS qmys,
         COALESCE(qm.qmys, 0) AS qmys,
-        COALESCE(qmk.qmkp, 0) AS qmkp
+        COALESCE(qmk.qmkp, 0) AS qmkp,
+        COALESCE(ce.ysce, 0) AS ysce
         FROM
         FROM
-        customer c
+        {DBNAME}.customer c
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qcys
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qcys
-        FROM sale_accounts_receivable_detail
-        WHERE del_flag = '0' AND `status` = '2' AND accounts_receivable_date &lt;'2024-1-1'
+        FROM {DBNAME}.sale_accounts_receivable_detail
+        WHERE del_flag = '0' AND `status` = '2' AND accounts_receivable_date &lt;#{qcDate}
         GROUP BY customer_id
         GROUP BY customer_id
         ) qc ON c.id = qc.customer_id
         ) qc ON c.id = qc.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qckp
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qckp
-        FROM finished_product_invoice
-        WHERE del_flag = '0' AND invoice_date &lt;'2024-1-1'
+        FROM {DBNAME}.finished_product_invoice
+        WHERE del_flag = '0' AND invoice_date &lt;#{qcDate}
         GROUP BY customer_id
         GROUP BY customer_id
         ) qkp ON c.id = qkp.customer_id
         ) qkp ON c.id = qkp.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS sqys
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS sqys
-        FROM sale_accounts_receivable_detail
+        FROM {DBNAME}.sale_accounts_receivable_detail
         WHERE del_flag = '0' AND `status` = '2'
         WHERE del_flag = '0' AND `status` = '2'
-        AND YEAR(accounts_receivable_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
-        AND MONTH(accounts_receivable_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
+        AND YEAR(accounts_receivable_date) = YEAR(#{startDate} - INTERVAL 1 MONTH)
+        AND MONTH(accounts_receivable_date) = MONTH(#{startDate} - INTERVAL 1 MONTH)
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
         GROUP BY customer_id
         GROUP BY customer_id
         ) sq ON c.id = sq.customer_id
         ) sq ON c.id = sq.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS sqkp
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS sqkp
-        FROM finished_product_invoice
+        FROM {DBNAME}.finished_product_invoice
         WHERE del_flag = '0'
         WHERE del_flag = '0'
-        AND YEAR(invoice_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
-        AND MONTH(invoice_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
+        AND YEAR(invoice_date) = YEAR(#{startDate} - INTERVAL 1 MONTH)
+        AND MONTH(invoice_date) = MONTH(#{startDate} - INTERVAL 1 MONTH)
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null">and settlement_unit_id = #{settlementUnitId}</if>
         GROUP BY customer_id
         GROUP BY customer_id
         ) skp ON c.id = skp.customer_id
         ) skp ON c.id = skp.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS bqys
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS bqys
-        FROM sale_accounts_receivable_detail
+        FROM {DBNAME}.sale_accounts_receivable_detail
         WHERE del_flag = '0' AND `status` = '2'
         WHERE del_flag = '0' AND `status` = '2'
-        AND YEAR(accounts_receivable_date) = YEAR(CURDATE())
-        AND MONTH(accounts_receivable_date) = MONTH(CURDATE())
+        AND accounts_receivable_date between #{startDate} and #{endDate}
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
         GROUP BY customer_id
         GROUP BY customer_id
         ) bq ON c.id = bq.customer_id
         ) bq ON c.id = bq.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS bqkp
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS bqkp
-        FROM finished_product_invoice
+        FROM {DBNAME}.finished_product_invoice
         WHERE del_flag = '0'
         WHERE del_flag = '0'
-        AND YEAR(invoice_date) = YEAR(CURDATE())
-        AND MONTH(invoice_date) = MONTH(CURDATE())
+        AND invoice_date between #{startDate} and #{endDate}
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null">and settlement_unit_id = #{settlementUnitId}</if>
         GROUP BY customer_id
         GROUP BY customer_id
         ) bkp ON c.id = bkp.customer_id
         ) bkp ON c.id = bkp.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(received_amount), 2) AS bqys
         SELECT customer_id, TRUNCATE(SUM(received_amount), 2) AS bqys
-        FROM sale_accounts_receivable_detail
+        FROM {DBNAME}.sale_accounts_receivable_detail
         WHERE del_flag = '0' AND `status` = '2'
         WHERE del_flag = '0' AND `status` = '2'
-        AND YEAR(accounts_receivable_date) = YEAR(CURDATE())
-        AND MONTH(accounts_receivable_date) = MONTH(CURDATE())
+        AND accounts_receivable_date between #{startDate} and #{endDate}
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
         GROUP BY customer_id
         GROUP BY customer_id
         ) bqs ON c.id = bqs.customer_id
         ) bqs ON c.id = bqs.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qmys
         SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qmys
-        FROM sale_accounts_receivable_detail
+        FROM {DBNAME}.sale_accounts_receivable_detail
         WHERE del_flag = '0' AND `status` = '2'
         WHERE del_flag = '0' AND `status` = '2'
         AND accounts_receivable_date &lt;= CURDATE()
         AND accounts_receivable_date &lt;= CURDATE()
         GROUP BY customer_id
         GROUP BY customer_id
         ) qm ON c.id = qm.customer_id
         ) qm ON c.id = qm.customer_id
         LEFT JOIN (
         LEFT JOIN (
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qmkp
         SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qmkp
-        FROM finished_product_invoice
+        FROM {DBNAME}.finished_product_invoice
         WHERE del_flag = '0'
         WHERE del_flag = '0'
         AND invoice_date &lt;= CURDATE()
         AND invoice_date &lt;= CURDATE()
         GROUP BY customer_id
         GROUP BY customer_id
-        ) qmk ON c.id = qmk.customer_id;
+        ) qmk ON c.id = qmk.customer_id
+        left join (
+
+        SELECT
+        c.id,
+        COALESCE ( f.kpze - a.addAmount, 0 ) AS ysce
+        FROM
+        {DBNAME}.customer c
+        LEFT JOIN ( SELECT customer_id, TRUNCATE ( sum( billing_amount ), 2 ) AS kpze FROM {DBNAME}.finished_product_invoice WHERE del_flag = '0' and invoice_date between #{startDate} and #{endDate}
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null"> and settlement_unit_id = #{settlementUnitId}</if>
+         GROUP BY customer_id ) AS f ON c.id = f.customer_id
+        LEFT JOIN (
+        SELECT
+        customer_id,
+        TRUNCATE ( sum( amount_receivable ), 2 ) + TRUNCATE ( sum( received_amount ), 2 ) AS addAmount
+        FROM
+        {DBNAME}.sale_accounts_receivable_detail
+        WHERE
+        del_flag = '0'
+        AND `status` = '2'
+        and accounts_receivable_date between #{startDate} and #{endDate}
+        <if test="customerId != null"> and customer_id = #{customerId}</if>
+        <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
+        GROUP BY
+        customer_id
+        ) AS a ON c.id = a.customer_id
+
+        )as ce on c.id = ce.id
 
 
     </select>
     </select>
 
 

+ 6 - 1
zkqy-custom-business/src/main/resources/mapper/business/ProductCodeListMapper.xml

@@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="totalSuttle" column="total_suttle"/>
         <result property="totalSuttle" column="total_suttle"/>
         <result property="totalGrossWeight" column="total_gross_weight"/>
         <result property="totalGrossWeight" column="total_gross_weight"/>
         <result property="qrCodeId" column="qr_code_id"/>
         <result property="qrCodeId" column="qr_code_id"/>
+        <result property="withdrawingFlag" column="withdrawing_flag"/>
     </resultMap>
     </resultMap>
 
 
     <resultMap type="com.zkqy.business.domain.vo.ProductCodeListVO" id="ProductCodeListResultVO">
     <resultMap type="com.zkqy.business.domain.vo.ProductCodeListVO" id="ProductCodeListResultVO">
@@ -83,11 +84,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="totalBoxNum" column="total_box_num"/>
         <result property="totalBoxNum" column="total_box_num"/>
         <result property="totalSuttle" column="total_suttle"/>
         <result property="totalSuttle" column="total_suttle"/>
         <result property="totalGrossWeight" column="total_gross_weight"/>
         <result property="totalGrossWeight" column="total_gross_weight"/>
+        <result property="withdrawingFlag" column="withdrawing_flag"/>
     </resultMap>
     </resultMap>
 
 
     <sql id="selectProductCodeListVo">
     <sql id="selectProductCodeListVo">
         select id, qr_code, lot_num, product_id, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time ,
         select id, qr_code, lot_num, product_id, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time ,
-               total_canister_num, total_box_num, total_suttle, total_gross_weight,product_colour from {DBNAME}.product_code_list
+               total_canister_num, total_box_num, total_suttle, total_gross_weight,product_colour,withdrawing_flag from {DBNAME}.product_code_list
     </sql>
     </sql>
 
 
     <select id="selectProductCodeListList" parameterType="com.zkqy.business.domain.vo.ProductCodeListVO" resultMap="ProductCodeListResultVO">
     <select id="selectProductCodeListList" parameterType="com.zkqy.business.domain.vo.ProductCodeListVO" resultMap="ProductCodeListResultVO">
@@ -159,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="totalSuttle != null">total_suttle,</if>
             <if test="totalSuttle != null">total_suttle,</if>
             <if test="totalGrossWeight != null">total_gross_weight,</if>
             <if test="totalGrossWeight != null">total_gross_weight,</if>
             <if test="productColour != null">product_colour,</if>
             <if test="productColour != null">product_colour,</if>
+            <if test="withdrawingFlag != null">withdrawing_flag,</if>
             del_flag
             del_flag
          </trim>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -193,6 +196,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="totalSuttle != null">#{totalSuttle},</if>
             <if test="totalSuttle != null">#{totalSuttle},</if>
             <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
             <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
             <if test="productColour != null">#{productColour},</if>
             <if test="productColour != null">#{productColour},</if>
+            <if test="withdrawingFlag != null">#{withdrawingFlag},</if>
             '0'
             '0'
          </trim>
          </trim>
     </insert>
     </insert>
@@ -230,6 +234,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
             <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
             <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
             <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
             <if test="productColour != null">product_colour = #{productColour},</if>
             <if test="productColour != null">product_colour = #{productColour},</if>
+            <if test="withdrawingFlag != null">withdrawing_flag = #{withdrawingFlag}</if>
         </trim>
         </trim>
         where id = #{id}
         where id = #{id}
     </update>
     </update>

+ 80 - 0
zkqy-custom-business/src/main/resources/mapper/business/ProductColourMapper.xml

@@ -0,0 +1,80 @@
+<?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.zkqy.business.mapper.ProductColourMapper">
+    
+    <resultMap type="com.zkqy.business.domain.ProductColour" id="ProductColourResult">
+        <result property="id"    column="id"    />
+        <result property="colour"    column="colour"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectProductColourVo">
+        select id, colour, remark, create_by, create_by_id, create_time, update_by, update_by_id, update_time from {DBNAME}.product_colour
+    </sql>
+
+    <select id="selectProductColourList" parameterType="com.zkqy.business.domain.ProductColour" resultMap="ProductColourResult">
+        <include refid="selectProductColourVo"/>
+        where del_flag = '0'
+            <if test="colour != null  and colour != ''"> and colour = #{colour}</if>
+
+    </select>
+    
+    <select id="selectProductColourById" parameterType="Long" resultMap="ProductColourResult">
+        <include refid="selectProductColourVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertProductColour" parameterType="com.zkqy.business.domain.ProductColour" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.product_colour
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="colour != null">colour,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createTime != null">create_time,</if>
+            del_flag
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="colour != null">#{colour},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createTime != null">#{createTime},</if>
+            '0'
+         </trim>
+    </insert>
+
+    <update id="updateProductColour" parameterType="com.zkqy.business.domain.ProductColour">
+        update product_colour
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="colour != null">colour = #{colour},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteProductColourById" parameterType="Long">
+        delete from product_colour where id = #{id}
+    </delete>
+
+    <delete id="deleteProductColourByIds" parameterType="String">
+        delete from product_colour where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 11 - 0
zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordBatchMapper.xml

@@ -119,4 +119,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
         </foreach>
     </insert>
     </insert>
 
 
+    <select id="selectOutboundRecordIdByBatchNumber" resultType="long">
+        SELECT
+            outbound_record_id
+        FROM
+            {DBNAME}.`product_outbound_record_batch`
+        WHERE
+            del_flag = '0'
+          AND notice_number = #{noticeNumber}
+          AND batch_number = #{batchNumber}
+    </select>
+
 </mapper>
 </mapper>

+ 14 - 2
zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordMapper.xml

@@ -282,8 +282,7 @@
     </update>
     </update>
 
 
     <delete id="deleteProductOutboundRecordById" parameterType="Long">
     <delete id="deleteProductOutboundRecordById" parameterType="Long">
-        delete
-        from  {DBNAME}.product_outbound_record
+        update {DBNAME}.product_outbound_record set del_flag = '2'
         where id = #{id}
         where id = #{id}
     </delete>
     </delete>
 
 
@@ -405,4 +404,17 @@
               (select outbound_record_id from {DBNAME}.product_outbound_record_batch where del_flag = '0' and notice_number = #{noticeNumber})
               (select outbound_record_id from {DBNAME}.product_outbound_record_batch where del_flag = '0' and notice_number = #{noticeNumber})
     </select>
     </select>
 
 
+    <select id="selectProductOutboundRecordByQrCodeId" resultMap="ProductOutboundRecordResult">
+        <include refid="selectProductOutboundRecordVo"/>
+        where qr_code_id = #{qrCodeId} and del_flag = '0'
+    </select>
+
+    <select id="selectProductOutboundRecordListByIds" resultMap="ProductOutboundRecordResult" >
+        <include refid="selectProductOutboundRecordVo"/>
+        where id in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
 </mapper>
 </mapper>

+ 19 - 1
zkqy-custom-business/src/main/resources/mapper/business/SaleAccountsReceivableDetailMapper.xml

@@ -46,10 +46,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"    column="update_time"    />
         <result property="updateTime"    column="update_time"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="billingFlag" column="billing_flag"/>
         <result property="billingFlag" column="billing_flag"/>
+        <result property="interestSubsidy" column="interest_subsidy"/>
+        <result property="otherCollectionId" column="other_collection_id"/>
+        <result property="batchNumber" column="batch_number"/>
     </resultMap>
     </resultMap>
 
 
     <sql id="selectSaleAccountsReceivableDetailVo">
     <sql id="selectSaleAccountsReceivableDetailVo">
-        select id, accounting_type, customer_id, accounts_receivable_date, sale_no, sale_product_no, registration_collection_id,product_id, product_name, product_specifications, product_level, product_colour, lot_number, box_num, weight, product_price, amount_receivable, received_amount, amounts, payment_method, billing_type, accounts_receivable_remark, settlement_unit, return_receipt, return_receipt_date, return_receipt_remark, notice_number, status, spare1, spare2, spare3, remark, create_by, create_by_id, create_time, update_by, update_by_id, update_time, del_flag, billing_flag from {DBNAME}.sale_accounts_receivable_detail
+        select id, accounting_type, customer_id, accounts_receivable_date, sale_no, sale_product_no, registration_collection_id,product_id, product_name, product_specifications, product_level, product_colour, lot_number, box_num, weight, product_price, amount_receivable, received_amount, amounts, payment_method, billing_type, accounts_receivable_remark, settlement_unit, return_receipt, return_receipt_date, return_receipt_remark, notice_number, status, spare1, spare2, spare3, remark, create_by, create_by_id, create_time, update_by, update_by_id, update_time, del_flag, billing_flag, interest_subsidy,other_collection_id,batch_number from {DBNAME}.sale_accounts_receivable_detail
     </sql>
     </sql>
 
 
     <select id="selectSaleAccountsReceivableDetailList" parameterType="com.zkqy.business.domain.SaleAccountsReceivableDetail" resultMap="SaleAccountsReceivableDetailResult">
     <select id="selectSaleAccountsReceivableDetailList" parameterType="com.zkqy.business.domain.SaleAccountsReceivableDetail" resultMap="SaleAccountsReceivableDetailResult">
@@ -118,6 +121,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createBy != null">create_by,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createById != null">create_by_id,</if>
             <if test="createById != null">create_by_id,</if>
             <if test="createTime != null">create_time,</if>
             <if test="createTime != null">create_time,</if>
+            <if test="interestSubsidy != null">interest_subsidy,</if>
+            <if test="otherCollectionId != null">other_collection_id,</if>
+            <if test="batchNumber != null">batch_number,</if>
             del_flag,
             del_flag,
             billing_flag
             billing_flag
          </trim>
          </trim>
@@ -156,6 +162,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createBy != null">#{createBy},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createById != null">#{createById},</if>
             <if test="createById != null">#{createById},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="createTime != null">#{createTime},</if>
+            <if test="interestSubsidy != null">#{interestSubsidy},</if>
+            <if test="otherCollectionId != null">#{otherCollectionId},</if>
+            <if test="batchNumber != null">#{batchNumber},</if>
            '0',
            '0',
            '0'
            '0'
          </trim>
          </trim>
@@ -199,6 +208,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateById != null">update_by_id = #{updateById},</if>
             <if test="updateById != null">update_by_id = #{updateById},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="billingFlag != null">billing_flag = #{billingFlag},</if>
             <if test="billingFlag != null">billing_flag = #{billingFlag},</if>
+            <if test="interestSubsidy != null">interest_subsidy = #{interestSubsidy}</if>
+            <if test="otherCollectionId != null">other_collection_id = #{otherCollectionId}</if>
+            <if test="batchNumber != null">batch_number = #{batchNumber}</if>
         </trim>
         </trim>
         where id = #{id}
         where id = #{id}
     </update>
     </update>
@@ -250,6 +262,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         create_by,
         create_by,
         create_by_id,
         create_by_id,
         create_time,
         create_time,
+        interest_subsidy,
+        other_collection_id,
+        batch_number,
         del_flag,
         del_flag,
         billing_flag
         billing_flag
         ) VALUES
         ) VALUES
@@ -289,6 +304,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{item.createBy},
             #{item.createBy},
             #{item.createById},
             #{item.createById},
             #{item.createTime},
             #{item.createTime},
+            #{item.interestSubsidy},
+            #{item.otherCollectionId},
+            #{item.batchNumber},
             '0',
             '0',
             '0'
             '0'
             )
             )

+ 10 - 1
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -33,6 +33,7 @@
         <result property="taskName" column="task_name"/>
         <result property="taskName" column="task_name"/>
         <result property="lotNumber" column="lot_number"/>
         <result property="lotNumber" column="lot_number"/>
         <result property="onBoardState" column="on_board_state"/>
         <result property="onBoardState" column="on_board_state"/>
+        <result property="colours" column="colours"/>
     </resultMap>
     </resultMap>
 
 
     <resultMap type="com.zkqy.business.domain.vo.SaleProductsVo" id="SaleProductsResultAndCustomInfo">
     <resultMap type="com.zkqy.business.domain.vo.SaleProductsVo" id="SaleProductsResultAndCustomInfo">
@@ -65,6 +66,7 @@
         <result property="materieEncoding" column="materie_encoding"/>
         <result property="materieEncoding" column="materie_encoding"/>
         <result property="materieColorNumber" column="materie_color_number"/>
         <result property="materieColorNumber" column="materie_color_number"/>
         <result property="productSpecifications" column="product_specifications"/>
         <result property="productSpecifications" column="product_specifications"/>
+        <result property="colours" column="colours"/>
     </resultMap>
     </resultMap>
 
 
     <sql id="selectSaleProductsVo">
     <sql id="selectSaleProductsVo">
@@ -95,7 +97,8 @@
                colour_number,
                colour_number,
                task_name,
                task_name,
                lot_number,
                lot_number,
-               on_board_state
+               on_board_state,
+               colours
         from {DBNAME}.sale_products
         from {DBNAME}.sale_products
     </sql>
     </sql>
 
 
@@ -234,6 +237,7 @@
             <if test="taskName != null">task_name,</if>
             <if test="taskName != null">task_name,</if>
             <if test="lotNumber != null">lot_number,</if>
             <if test="lotNumber != null">lot_number,</if>
             <if test="onBoardState != null">on_board_state,</if>
             <if test="onBoardState != null">on_board_state,</if>
+            <if test="colours != null">colours,</if>
             del_flag
             del_flag
         </trim>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -260,6 +264,7 @@
             <if test="taskName != null">#{taskName},</if>
             <if test="taskName != null">#{taskName},</if>
             <if test="lotNumber != null">#{lotNumber},</if>
             <if test="lotNumber != null">#{lotNumber},</if>
             <if test="onBoardState != null">#{onBoardState},</if>
             <if test="onBoardState != null">#{onBoardState},</if>
+            <if test="colours != null">#{colours},</if>
             '0'
             '0'
         </trim>
         </trim>
     </insert>
     </insert>
@@ -291,6 +296,7 @@
             <if test="taskName != null">task_name = #{taskName},</if>
             <if test="taskName != null">task_name = #{taskName},</if>
             <if test="lotNumber != null">lot_number = #{lotNumber},</if>
             <if test="lotNumber != null">lot_number = #{lotNumber},</if>
             <if test="onBoardState != null">on_board_state = #{onBoardState},</if>
             <if test="onBoardState != null">on_board_state = #{onBoardState},</if>
+            <if test="colours != null">colours = #{colours},</if>
         </trim>
         </trim>
         where id = #{id}
         where id = #{id}
     </update>
     </update>
@@ -324,6 +330,7 @@
             <if test="taskName != null">task_name = #{taskName},</if>
             <if test="taskName != null">task_name = #{taskName},</if>
             <if test="lotNumber != null">lot_number = #{lotNumber},</if>
             <if test="lotNumber != null">lot_number = #{lotNumber},</if>
             <if test="onBoardState != null">on_board_state = #{onBoardState},</if>
             <if test="onBoardState != null">on_board_state = #{onBoardState},</if>
+            <if test="colours != null">colours = #{colours},</if>
         </trim>
         </trim>
         where sale_order_no = #{saleOrderNo} and id=#{id}
         where sale_order_no = #{saleOrderNo} and id=#{id}
     </update>
     </update>
@@ -595,6 +602,7 @@
         task_name,
         task_name,
         lot_number,
         lot_number,
         on_board_state,
         on_board_state,
+        colours,
         del_flag
         del_flag
         ) VALUES
         ) VALUES
         <foreach collection="list" item="item" separator=",">
         <foreach collection="list" item="item" separator=",">
@@ -622,6 +630,7 @@
             #{item.taskName},
             #{item.taskName},
             #{item.lotNumber},
             #{item.lotNumber},
             #{item.onBoardState},
             #{item.onBoardState},
+            #{item.colours},
             '0'
             '0'
             )
             )
         </foreach>
         </foreach>

+ 15 - 3
zkqy-custom-business/src/main/resources/mapper/business/SaleRegistrationCollectionMapper.xml

@@ -22,10 +22,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateById"    column="update_by_id"    />
         <result property="updateById"    column="update_by_id"    />
         <result property="updateTime"    column="update_time"    />
         <result property="updateTime"    column="update_time"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="delFlag"    column="del_flag"    />
+        <result property="interestSubsidy" column="interest_subsidy"/>
+        <result property="interestCountingDays" column="interest_counting_days"/>
+        <result property="dueDate" column="due_date"/>
     </resultMap>
     </resultMap>
 
 
     <sql id="selectSaleRegistrationCollectionVo">
     <sql id="selectSaleRegistrationCollectionVo">
-        select id, customer_id, payment_method, amounts, collection_money_type, collection_money_date, settlement_unit_id,status, remark, bookkeeping_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, del_flag from {DBNAME}.sale_registration_collection
+        select id, customer_id, payment_method, amounts, collection_money_type, collection_money_date, settlement_unit_id,status, remark, bookkeeping_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, del_flag, interest_subsidy,interest_counting_days,due_date from {DBNAME}.sale_registration_collection
     </sql>
     </sql>
 
 
     <select id="selectSaleRegistrationCollectionList" parameterType="com.zkqy.business.domain.SaleRegistrationCollection" resultMap="SaleRegistrationCollectionResult">
     <select id="selectSaleRegistrationCollectionList" parameterType="com.zkqy.business.domain.SaleRegistrationCollection" resultMap="SaleRegistrationCollectionResult">
@@ -56,11 +59,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="collectionMoneyDate != null">collection_money_date,</if>
             <if test="collectionMoneyDate != null">collection_money_date,</if>
             <if test="settlementUnitId != null">settlement_unit_id,</if>
             <if test="settlementUnitId != null">settlement_unit_id,</if>
             <if test="remark != null">remark,</if>
             <if test="remark != null">remark,</if>
-            <if test="bookkeepingFlag != null">bookkeeping_flag,</if>
             <if test="status != null">status,</if>
             <if test="status != null">status,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createById != null">create_by_id,</if>
             <if test="createById != null">create_by_id,</if>
             <if test="createTime != null">create_time,</if>
             <if test="createTime != null">create_time,</if>
+            <if test="interestSubsidy != null">interest_subsidy,</if>
+            <if test="interestCountingDays != null">interest_counting_days,</if>
+            <if test="dueDate != null">due_date,</if>
+            bookkeeping_flag,
             del_flag
             del_flag
          </trim>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -71,11 +77,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="collectionMoneyDate != null">#{collectionMoneyDate},</if>
             <if test="collectionMoneyDate != null">#{collectionMoneyDate},</if>
             <if test="settlementUnitId != null">#{settlementUnitId},</if>
             <if test="settlementUnitId != null">#{settlementUnitId},</if>
             <if test="remark != null">#{remark},</if>
             <if test="remark != null">#{remark},</if>
-            <if test="bookkeepingFlag != null">#{bookkeepingFlag},</if>
             <if test="status != null">#{status},</if>
             <if test="status != null">#{status},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createById != null">#{createById},</if>
             <if test="createById != null">#{createById},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="createTime != null">#{createTime},</if>
+            <if test="interestSubsidy != null">#{interestSubsidy},</if>
+            <if test="interestCountingDays != null">#{interestCountingDays},</if>
+            <if test="dueDate != null">#{dueDate},</if>
+            '0',
            '0'
            '0'
          </trim>
          </trim>
     </insert>
     </insert>
@@ -95,6 +104,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateById != null">update_by_id = #{updateById},</if>
             <if test="updateById != null">update_by_id = #{updateById},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="interestSubsidy != null">interest_subsidy = #{interestSubsidy},</if>
+            <if test="interestCountingDays != null">interest_counting_days = #{interestCountingDays},</if>
+            <if test="dueDate != null">due_date = #{dueDate},</if>
         </trim>
         </trim>
         where id = #{id}
         where id = #{id}
     </update>
     </update>