zhangyuewww 2 năm trước cách đây
mục cha
commit
dc3c0b55e5
23 tập tin đã thay đổi với 1280 bổ sung1 xóa
  1. 1 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java
  2. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/StatusEnum.java
  3. 21 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CargoPositionDetailsController.java
  4. 86 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CargoTitleDetailsController.java
  5. 10 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractManagementInfoController.java
  6. 58 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CargoPositionDetails.java
  7. 181 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CargoTitleDetails.java
  8. 21 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractManagementInfo.java
  9. 12 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WarehousingOrder.java
  10. 1 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java
  11. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CargoPositionDetailsMapper.java
  12. 49 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CargoTitleDetailsMapper.java
  13. 15 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractManagementInfoMapper.java
  14. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICargoPositionDetailsService.java
  15. 48 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICargoTitleDetailsService.java
  16. 2 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractManagementInfoService.java
  17. 20 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoPositionDetailsServiceImpl.java
  18. 452 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoTitleDetailsServiceImpl.java
  19. 26 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractManagementInfoServiceImpl.java
  20. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CargoPositionDetailsMapper.xml
  21. 145 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CargoTitleDetailsMapper.xml
  22. 87 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractManagementInfoMapper.xml
  23. 3 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/WarehousingOrderMapper.xml

+ 1 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java

@@ -53,7 +53,7 @@ public class GeneratorCodeByTables {
     }
 
     public static void main(String[] args) throws IOException {
-        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","material_warehouse_in_out");
+        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","cargo_title_details","cargo_position_details");
     }
 
     /**

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/StatusEnum.java

@@ -182,6 +182,11 @@ public enum StatusEnum {
     WEIGHED_TARE("1", "待称皮重", "weighed_tare"),
     ALREADY_IN_WAREHOUSE("3", "已入库", "already_in_warehouse"),
 
+    //货权明细状态
+    TO_BE_RECEIVE("1", "待接收", "to_be_receive"),
+    ALREADT_RECEIVED("3", "已接收", "already_receive"),
+    ALREADY_REJECTED("5", "已拒收", "already_rejecte"),
+
     ;
     @Getter
     private String flag;

+ 21 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CargoPositionDetailsController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 记录货权仓位明细信息 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@RestController
+@RequestMapping("/cargoPositionDetails")
+public class CargoPositionDetailsController {
+
+}
+

+ 86 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CargoTitleDetailsController.java

@@ -0,0 +1,86 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoTitleDetails;
+import com.yh.saas.plugin.yiliangyiyun.service.ICargoTitleDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ * 记录货权明细信息 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@RestController
+@RequestMapping("/cargoTitleDetails")
+public class CargoTitleDetailsController {
+    @Autowired
+    private ICargoTitleDetailsService cargoTitleDetailsService;
+    /**
+     * 货权转出
+     */
+    @PostMapping("/api/addInfo")
+    public String addInfo(@RequestBody @Valid CargoTitleDetails cargoTitleDetails) {
+        return cargoTitleDetailsService.addInfo(cargoTitleDetails);
+    }
+    /**
+     * 货权转入
+     */
+    @PostMapping("/api/toChangeInto")
+    public String toChangeInto(@RequestBody @Valid CargoTitleDetails cargoTitleDetails) {
+        return cargoTitleDetailsService.toChangeInto(cargoTitleDetails);
+    }
+    /**
+     * 货权明细列表查询
+     *
+     * @param cargoTitleDetails
+     * @return
+     */
+    @GetMapping("/selectInfo")
+    public Page<CargoTitleDetails> selectInfo(CargoTitleDetails cargoTitleDetails) {
+        return cargoTitleDetailsService.selectInfo(cargoTitleDetails);
+    }
+
+    /**
+     * 客户操作记录列表查询
+     *
+     * @param cargoTitleDetails
+     * @return
+     */
+    @GetMapping("/selectCusActionInfo")
+    public Page<CargoTitleDetails> selectCusActionInfo(CargoTitleDetails cargoTitleDetails) {
+        return cargoTitleDetailsService.selectCusActionInfo(cargoTitleDetails);
+    }
+    /**
+     * 拒收
+     * @param example
+     * @return
+     */
+    @PostMapping("/api/rejection")
+    public String rejection(@RequestBody CargoTitleDetails example){
+        return cargoTitleDetailsService.rejection(example.getId());
+    }
+    /**
+     * 修改赎回状态
+     */
+    @PostMapping("/api/editStatus")
+    public String editStatus(@RequestBody CargoTitleDetails cargoTitleDetails) {
+        return cargoTitleDetailsService.editStatus(cargoTitleDetails);
+    }
+
+    /**
+     * 查当天提交的条数
+     */
+    @GetMapping("/cargoCount")
+    public Integer cargoCount(@RequestParam String compId) {
+        return cargoTitleDetailsService.cargoCount(compId);
+    }
+
+}
+

+ 10 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractManagementInfoController.java

@@ -197,6 +197,16 @@ public class ContractManagementInfoController {
     public ContractManagementInfo getInContract(@RequestParam String contractNo,String compId) {
         return contractManagementInfoService.getInContract(contractNo,compId);
     }
+    /**
+     * 待赎回列表查询
+     *
+     * @param contractManagementInfo
+     * @return
+     */
+    @GetMapping("/toBeRedeemedInfo")
+    public Page<ContractManagementInfo> toBeRedeemedInfo(ContractManagementInfo contractManagementInfo) {
+        return contractManagementInfoService.toBeRedeemedInfo(contractManagementInfo);
+    }
 
 }
 

+ 58 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CargoPositionDetails.java

@@ -0,0 +1,58 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 记录货权仓位明细信息
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("cargo_position_details")
+public class CargoPositionDetails extends BaseModel<CargoPositionDetails> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 主表id
+     */
+    private String infoId;
+    /**
+     * 仓位编号
+     */
+    private String binNumber;
+    /**
+     * 仓位编号id
+     */
+    private String positionId;
+    /**
+     * 重量
+     */
+    private Double weight;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 181 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CargoTitleDetails.java

@@ -0,0 +1,181 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 记录货权明细信息
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("cargo_title_details")
+public class CargoTitleDetails extends BaseModel<CargoTitleDetails> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 公司id
+     */
+    private String compId;
+    /**
+     * 转出公司id
+     */
+    private String sendCompId;
+    /**
+     * 转入公司id
+     */
+    private String receiveCompId;
+    /**
+     * 转让标识(转出1转入2)
+     */
+    private String transferFlag;
+    /**
+     * 业务编号
+     */
+    private String transferOutNo;
+    /**
+     * 关联接收编号
+     */
+    private String relationReceiveNo;
+    /**
+     * 转出售价(元/吨)
+     */
+    private Double salePrice;
+    /**
+     * 转出合同编号
+     */
+    private String outContractNo;
+    /**
+     * 是否赎回(0否1是)
+     */
+    private String redeemFlag;
+    /**
+     * 待赎回合同
+     */
+    private String redeemContractNo;
+    /**
+     * 易粮易运客户1非客户0
+     */
+    private String systemIdentification;
+    /**
+     * 货权接收公司
+     */
+    private String receiveCompName;
+    /**
+     * 客户
+     */
+    private String customer;
+    /**
+     * 重量
+     */
+    private Double transferOutWeight;
+    /**
+     * 库点名称
+     */
+    private String warehouseName;
+    /**
+     * 平均成本(元/吨)
+     */
+    private Double avgCost;
+    /**
+     * 货名key
+     */
+    private String goodsNameKey;
+    /**
+     * 货名
+     */
+    private String goodsName;
+    /**
+     * 经办人
+     */
+    private String agent;
+    /**
+     * 应付粮款(元)
+     */
+    private Double amountIngPayable;
+    /**
+     * 已付粮款(元)
+     */
+    private Double amountEdPayable;
+    /**
+     * 未付粮款(元)
+     */
+    private Double amountNotPayable;
+    /**
+     * 状态(1待接收 3已接收 5已拒收)
+     */
+    private String status;
+    /**
+     * 状态标识
+     */
+    private String statusFlag;
+    /**
+     * 库点id
+     */
+    @TableField(exist = false)
+    private String baseId;
+    /**
+     * 模糊查询
+     */
+    @TableField(exist = false)
+    private String searchKeyWord;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date startDate;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date endDate;
+    /**
+     * 查询类型(1转入2转出)
+     */
+    @TableField(exist = false)
+    private String searchType;
+    /**
+     * 入库单数组
+     */
+    @TableField(exist = false)
+    private List<WarehousingOrder> warehousingOrderList;
+    /**
+     * 仓位数组
+     */
+    @TableField(exist = false)
+    private List<CargoPositionDetails> cargoPositionDetailsList;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 21 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractManagementInfo.java

@@ -291,6 +291,22 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
      * 合同总价
      */
     private Double totalContractPrice;
+    /**
+     * 累计转出
+     */
+    private Double cumulativeTransfer;
+    /**
+     * 预计赎回
+     */
+    private Double expectedRedemption;
+    /**
+     * 已赎回
+     */
+    private Double redeemed;
+    /**
+     * 接收公司
+     */
+    private String receivingCompany;
     /**
      * 代收费
      */
@@ -471,6 +487,11 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
      */
     @TableField(exist = false)
     private String searchType;
+    /**
+     * 下拉标识(0列表1下拉)
+     */
+    @TableField(exist = false)
+    private String dropFlag;
     /**
      * 确认单数量
      */

+ 12 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WarehousingOrder.java

@@ -146,6 +146,18 @@ public class WarehousingOrder extends BaseModel<WarehousingOrder> {
      * 剩余重量(吨)
      */
     private Double surplusWeight;
+    /**
+     * 转出重量(吨)
+     */
+    private Double transferOutWeight;
+    /**
+     * 转出业务编号
+     */
+    private String transferOutNo;
+    /**
+     * 赎回标识
+     */
+    private String redeemFlag;
     /**
      * 仓储费
      */

+ 1 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java

@@ -52,6 +52,7 @@ public enum YExceptionEnum {
 	MOVETASK_NO_ERROR("ERROR", "移库编号已存在,不可重复!"),
 	CONTRACT_HAS_SURPLUS_ERROR("ERROR", "该合同仍有剩余储量,无法进行完成操作!"),
 	NICKNAME_NO_ERROR("ERROR", "昵称已存在,不可重复!"),
+	COMP_NAME_ERROR("ERROR", "货权接收公司不存在!"),
 	;
 	@Getter
 	private String value;

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CargoPositionDetailsMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoPositionDetails;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 记录货权仓位明细信息 Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+public interface CargoPositionDetailsMapper extends BaseMapper<CargoPositionDetails> {
+
+}

+ 49 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CargoTitleDetailsMapper.java

@@ -0,0 +1,49 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoTitleDetails;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 记录货权明细信息 Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+public interface CargoTitleDetailsMapper extends BaseMapper<CargoTitleDetails> {
+    /**
+     * 根据条件查询货权明细总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询货权明细列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<CargoTitleDetails> getListByCondition(Map<String, Object> pageView);
+    /**
+     * 根据条件查询客户操作记录总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getActionCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询客户操作记录列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<CargoTitleDetails> getActionListByCondition(Map<String, Object> pageView);
+
+}

+ 15 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractManagementInfoMapper.java

@@ -105,4 +105,19 @@ public interface ContractManagementInfoMapper extends BaseMapper<ContractManagem
      * @return
      */
     List<BiViewInfo> profitAccounting(Map<String, Object> pageView);
+    /**
+     * 根据条件查询待赎回总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getRedeemedCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询待赎回列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<ContractManagementInfo> getRedeemedListByCondition(Map<String, Object> pageView);
 }

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICargoPositionDetailsService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoPositionDetails;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 记录货权仓位明细信息 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+public interface ICargoPositionDetailsService extends IService<CargoPositionDetails> {
+
+}

+ 48 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICargoTitleDetailsService.java

@@ -0,0 +1,48 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoTitleDetails;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 记录货权明细信息 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+public interface ICargoTitleDetailsService extends IService<CargoTitleDetails> {
+    /**
+     * 货权转出
+     *
+     * @param cargoTitleDetails
+     */
+    String addInfo(CargoTitleDetails cargoTitleDetails);
+    /**
+     * 信息分页列表查询
+     *
+     * @param cargoTitleDetails
+     * @return
+     */
+    Page<CargoTitleDetails> selectInfo(CargoTitleDetails cargoTitleDetails);
+    /**
+     * 客户操作记录列表查询
+     *
+     * @param cargoTitleDetails
+     * @return
+     */
+    Page<CargoTitleDetails> selectCusActionInfo(CargoTitleDetails cargoTitleDetails);
+    /**
+     * 查当天提交的条数
+     *
+     * @param compId
+     */
+    Integer cargoCount(String compId);
+
+    String rejection(String id);
+
+    String toChangeInto(CargoTitleDetails cargoTitleDetails);
+
+    String editStatus(CargoTitleDetails cargoTitleDetails);
+}

+ 2 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractManagementInfoService.java

@@ -148,4 +148,6 @@ public interface IContractManagementInfoService extends IService<ContractManagem
      * @param contractNo,compId
      */
     ContractManagementInfo getInContract(String contractNo,String compId);
+
+    Page<ContractManagementInfo> toBeRedeemedInfo(ContractManagementInfo contractManagementInfo);
 }

+ 20 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoPositionDetailsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.CargoPositionDetails;
+import com.yh.saas.plugin.yiliangyiyun.mapper.CargoPositionDetailsMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.ICargoPositionDetailsService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 记录货权仓位明细信息 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@Service
+public class CargoPositionDetailsServiceImpl extends ServiceImpl<CargoPositionDetailsMapper, CargoPositionDetails> implements ICargoPositionDetailsService {
+
+}

+ 452 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoTitleDetailsServiceImpl.java

@@ -0,0 +1,452 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.google.common.collect.Lists;
+import com.winsea.svc.base.base.entity.CommonCompany;
+import com.winsea.svc.base.base.service.ICommonCompanyService;
+import com.winsea.svc.base.security.util.AuthSecurityUtils;
+import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
+import com.yh.saas.plugin.yiliangyiyun.entity.*;
+import com.yh.saas.plugin.yiliangyiyun.exception.YException;
+import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
+import com.yh.saas.plugin.yiliangyiyun.mapper.CargoTitleDetailsMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.*;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * <p>
+ * 记录货权明细信息 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2023-02-13
+ */
+@Service
+public class CargoTitleDetailsServiceImpl extends ServiceImpl<CargoTitleDetailsMapper, CargoTitleDetails> implements ICargoTitleDetailsService {
+    @Autowired
+    private ICommonCompanyService commonCompanyService;
+    @Autowired
+    private ICargoPositionDetailsService cargoPositionDetailsService;
+    @Autowired
+    private IWarehousingOrderService warehousingOrderService;
+    @Autowired
+    private IContractManagementInfoService contractManagementInfoService;
+    @Autowired
+    private IWarehouseInOutInfoService warehouseInOutInfoService;
+    @Autowired
+    private IWarehouseInOutDetailService warehouseInOutDetailService;
+    @Autowired
+    private IWarehousePositionStorageInfoService warehousePositionStorageInfoService;
+    @Autowired
+    private ICommonSysParameterService commonSysParameterService;
+    @Autowired
+    private IStockSaleReceiptReportService stockSaleReceiptReportService;
+    @Autowired
+    private IStockPurchaseReceiptReportService stockPurchaseReceiptReportService;
+
+    /**
+     * 转出
+     * @param cargoTitleDetails
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String addInfo(CargoTitleDetails cargoTitleDetails) {
+        cargoTitleDetails.setId(IdGenerator.generateUUID());
+        cargoTitleDetails.setCompId(cargoTitleDetails.getCompId());
+        cargoTitleDetails.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+        CommonCompany commonCompany1 = commonCompanyService.selectById(cargoTitleDetails.getCompId());
+        if(commonCompany1 != null){
+            cargoTitleDetails.setCustomer(commonCompany1.getCompName());
+        }
+        cargoTitleDetails.setSendCompId(cargoTitleDetails.getCompId());
+        cargoTitleDetails.setTransferFlag("1");
+        cargoTitleDetails.setStatus(StatusEnum.TO_BE_RECEIVE.getName());
+        cargoTitleDetails.setStatusFlag(StatusEnum.TO_BE_RECEIVE.getFlag());
+        //易粮易运客户
+        if ("1".equals(cargoTitleDetails.getSystemIdentification())){
+            CommonCompany commonCompany = commonCompanyService.selectOne(new EntityWrapper<CommonCompany>()
+                    .eq("comp_name", cargoTitleDetails.getReceiveCompName()));
+            if(commonCompany != null){
+                cargoTitleDetails.setReceiveCompId(commonCompany.getCompId());
+            }
+            else{
+                throw new YException(YExceptionEnum.COMP_NAME_ERROR);
+            }
+        }
+        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
+        Integer num=this.cargoCount(cargoTitleDetails.getCompId())+1;
+        String newNo="";
+        //一位数
+        if (num < 10) {
+            newNo="000" + num;
+        }
+        //两位数
+        else if (num < 100) {
+            newNo="00" + num;
+        }
+        //三位数
+        else if (num < 1000) {
+            newNo="0" + num;
+        }
+        //四位数
+        else if (num < 10000) {
+            newNo=String.valueOf(num);
+        }
+        String transferOutNo = "HQZC"+df.format(new Date())+newNo;
+        String relationReceiveNo = "HQJS"+df.format(new Date())+newNo;
+        cargoTitleDetails.setTransferOutNo(transferOutNo);
+        cargoTitleDetails.setRelationReceiveNo(relationReceiveNo);
+        List<WarehousingOrder> warehousingOrderList = cargoTitleDetails.getWarehousingOrderList();
+        if (!CollectionUtils.isEmpty(warehousingOrderList)){
+            for (WarehousingOrder warehousingOrder:warehousingOrderList){
+                //转出重量
+                warehousingOrder.setTransferOutWeight(warehousingOrder.getSurplusWeight());
+                warehousingOrder.setSurplusWeight(0d);
+                warehousingOrder.setTransferOutNo(transferOutNo);
+                if("1".equals(cargoTitleDetails.getRedeemFlag())){
+                    warehousingOrder.setRedeemFlag("赎");
+                }
+                warehousingOrderService.updateById(warehousingOrder);
+            }
+            ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                    .eq("comp_id",cargoTitleDetails.getCompId())
+                    .eq("contract_no",warehousingOrderList.get(0).getContractNo()));
+            if (contractManagementInfo!=null){
+                //接收公司
+                contractManagementInfo.setReceivingCompany(cargoTitleDetails.getReceiveCompName());
+                contractManagementInfo.setCumulativeTransfer(contractManagementInfo.getCumulativeTransfer()+cargoTitleDetails.getTransferOutWeight());
+                //赎回累计预计赎回量
+                if("1".equals(cargoTitleDetails.getRedeemFlag())){
+                    contractManagementInfo.setExpectedRedemption(contractManagementInfo.getExpectedRedemption()+cargoTitleDetails.getTransferOutWeight());
+                }
+                contractManagementInfoService.updateById(contractManagementInfo);
+            }
+        }
+        List<CargoPositionDetails> cargoPositionDetailsList = cargoTitleDetails.getCargoPositionDetailsList();
+        if (!CollectionUtils.isEmpty(cargoPositionDetailsList)){
+            for (CargoPositionDetails cargoPositionDetails:cargoPositionDetailsList){
+                cargoPositionDetails.setId(IdGenerator.generateUUID());
+                cargoPositionDetails.setInfoId(cargoTitleDetails.getId());
+                cargoPositionDetailsService.insert(cargoPositionDetails);
+                WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                        .eq("position_id", cargoPositionDetails.getPositionId())
+                        .eq("goods_name", warehousingOrderList.get(0).getGoodsName()));
+                if (warehousePositionStorageInfo != null) {
+                    if (cargoPositionDetails.getWeight() <= warehousePositionStorageInfo.getStorage()) {
+                        // 更新库存量
+                        warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() - cargoPositionDetails.getWeight());
+                        warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+                        WarehouseInOutInfo warehouseInOutInfo = new WarehouseInOutInfo();
+                        warehouseInOutInfo.setId(IdGenerator.generateUUID());
+                        warehouseInOutInfo.setBaseId(warehousingOrderList.get(0).getBaseId());
+                        warehouseInOutInfo.setWarehouseName(cargoTitleDetails.getWarehouseName());
+                        warehouseInOutInfo.setPositionId(cargoPositionDetails.getPositionId());
+                        warehouseInOutInfo.setBinNumber(cargoPositionDetails.getBinNumber());
+                        warehouseInOutInfo.setInOutFlag("1");
+                        warehouseInOutInfo.setGoodsName(cargoTitleDetails.getGoodsName());
+                        CommonSysParameter commonSysParameter = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", cargoTitleDetails.getGoodsName()));
+                        warehouseInOutInfo.setGoodsNameKey(commonSysParameter.getConstKey());
+                        warehouseInOutInfo.setNetWeight(cargoPositionDetails.getWeight());
+                        warehouseInOutInfo.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+                        warehouseInOutInfo.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
+                        warehouseInOutInfo.setStatus(StatusEnum.SUBMITTED.getName());
+                        warehouseInOutInfo.setInOutDate(new Date());
+                        warehouseInOutInfo.setInOutType("货权转出");
+                        warehouseInOutInfo.setContractNo(cargoTitleDetails.getOutContractNo());
+                        warehouseInOutInfoService.insert(warehouseInOutInfo);
+                        WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
+                        warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
+                        warehouseInOutDetail.setId(IdGenerator.generateUUID());
+                        warehouseInOutDetailService.insert(warehouseInOutDetail);
+                        //现货销售出库报表
+                        StockSaleReceiptReport stockSaleReceiptReport = new StockSaleReceiptReport();
+                        stockSaleReceiptReport.setId(IdGenerator.generateUUID());
+                        stockSaleReceiptReport.setWarehouseRecordId(warehouseInOutInfo.getId());
+                        stockSaleReceiptReport.setCompId(cargoTitleDetails.getCompId());
+                        stockSaleReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        stockSaleReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        stockSaleReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        stockSaleReceiptReport.setDeliveryDate(warehouseInOutInfo.getInOutDate());
+                        stockSaleReceiptReport.setStatusFlag(StatusEnum.TO_BE_RECEIVED.getFlag());
+                        stockSaleReceiptReport.setStatus(StatusEnum.TO_BE_RECEIVED.getName());
+                        stockSaleReceiptReport.setSettlementWeight(stockSaleReceiptReport.getNetWeight());
+                        stockSaleReceiptReportService.insert(stockSaleReceiptReport);
+                    }
+                    //所选仓位库存不足
+                    else {
+                        throw new YException(YExceptionEnum.CONVERSION_NO_ERROR);
+                    }
+                }
+                //所选仓位暂无储存量
+                else {
+                    throw new YException(YExceptionEnum.POSITIONSTORAGE_NO_ERROR);
+                }
+            }
+        }
+        this.insert(cargoTitleDetails);
+        return "ok";
+    }
+
+    /**
+     * 货权明细列表
+     * @param cargoTitleDetails
+     * @return
+     */
+    @Override
+    public Page<CargoTitleDetails> selectInfo(CargoTitleDetails cargoTitleDetails) {
+        Map<String, Object> pageView = new HashMap<>();
+        pageView.put("startRecord", (cargoTitleDetails.getCurrentPage() - 1)
+                * cargoTitleDetails.getPageSize());
+        //公司id
+        pageView.put("compId",cargoTitleDetails.getCompId());
+        pageView.put("startDate",cargoTitleDetails.getStartDate());
+        pageView.put("endDate",cargoTitleDetails.getEndDate());
+        pageView.put("searchKeyWord",cargoTitleDetails.getSearchKeyWord());
+        pageView.put("searchType", cargoTitleDetails.getSearchType());
+        pageView.put("pageSize",cargoTitleDetails.getPageSize());
+        pageView.put("currentPage",cargoTitleDetails.getCurrentPage());
+        // 查询货权明细总数
+        Integer dataCount = baseMapper.getCountByCondition(pageView);
+        List<CargoTitleDetails> dataList = baseMapper.getListByCondition(pageView);
+        if (!CollectionUtils.isEmpty(dataList)){
+            for (CargoTitleDetails cargoTitleDetails1:dataList){
+                List<CargoPositionDetails> cargoPositionDetailsList=cargoPositionDetailsService.selectList(new EntityWrapper<CargoPositionDetails>()
+                        .eq("info_id",cargoTitleDetails1.getId()));
+                cargoTitleDetails1.setCargoPositionDetailsList(cargoPositionDetailsList);
+            }
+        }
+        Page<CargoTitleDetails> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(cargoTitleDetails.getCurrentPage());
+        page.setSize(cargoTitleDetails.getPageSize());
+        return page;
+    }
+
+    /**
+     * 客户操作记录列表
+     * @param cargoTitleDetails
+     * @return
+     */
+    @Override
+    public Page<CargoTitleDetails> selectCusActionInfo(CargoTitleDetails cargoTitleDetails) {
+        Map<String, Object> pageView = new HashMap<>();
+        pageView.put("startRecord", (cargoTitleDetails.getCurrentPage() - 1)
+                * cargoTitleDetails.getPageSize());
+        //公司id
+        pageView.put("compId",cargoTitleDetails.getCompId());
+        pageView.put("startDate",cargoTitleDetails.getStartDate());
+        pageView.put("endDate",cargoTitleDetails.getEndDate());
+        pageView.put("searchType",cargoTitleDetails.getSearchType());
+        pageView.put("searchKeyWord",cargoTitleDetails.getSearchKeyWord());
+        pageView.put("pageSize",cargoTitleDetails.getPageSize());
+        pageView.put("currentPage",cargoTitleDetails.getCurrentPage());
+        Integer dataCount = baseMapper.getActionCountByCondition(pageView);
+        List<CargoTitleDetails> dataList = baseMapper.getActionListByCondition(pageView);
+        Page<CargoTitleDetails> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(cargoTitleDetails.getCurrentPage());
+        page.setSize(cargoTitleDetails.getPageSize());
+        return page;
+    }
+
+    @Override
+    public Integer cargoCount(String compId) {
+        //当天零点
+        SimpleDateFormat now = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+        Calendar c = Calendar.getInstance();
+        c.setTime(new Date());
+        c.add(Calendar.YEAR, 0);
+        Date y = c.getTime();
+        String year = now.format(y);
+        Integer count = this.selectCount(new EntityWrapper<CargoTitleDetails>()
+                .eq("comp_id", compId)
+                .ge("create_date", year));
+        return count;
+    }
+
+    /**
+     * 拒收
+     * @param id
+     * @return
+     */
+    @Override
+    public String rejection(String id) {
+        CargoTitleDetails cargoTitleDetails=this.selectById(id);
+        cargoTitleDetails.setStatus(StatusEnum.ALREADY_REJECTED.getName());
+        cargoTitleDetails.setStatusFlag(StatusEnum.ALREADY_REJECTED.getFlag());
+        this.updateById(cargoTitleDetails);
+        return "ok";
+    }
+
+    /**
+     * 货权转入
+     * @param cargoTitleDetails
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String toChangeInto(CargoTitleDetails cargoTitleDetails) {
+        cargoTitleDetails.setId(IdGenerator.generateUUID());
+        cargoTitleDetails.setCompId(cargoTitleDetails.getCompId());
+        cargoTitleDetails.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+        if (!"不关联".equals(cargoTitleDetails.getRelationReceiveNo())) {
+            CargoTitleDetails cargoTitleDetails1=this.selectOne(new EntityWrapper<CargoTitleDetails>()
+            .eq("receive_comp_id",cargoTitleDetails.getCompId())
+            .eq("relation_receive_no",cargoTitleDetails.getRelationReceiveNo()));
+            if (cargoTitleDetails1!=null){
+                //状态改为已接收
+                cargoTitleDetails1.setStatus(StatusEnum.ALREADT_RECEIVED.getName());
+                cargoTitleDetails1.setStatusFlag(StatusEnum.ALREADT_RECEIVED.getFlag());
+                this.updateById(cargoTitleDetails1);
+            }
+        }
+        cargoTitleDetails.setTransferFlag("2");
+        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
+        Integer num=this.cargoCount(cargoTitleDetails.getCompId())+1;
+        String newNo="";
+        //一位数
+        if (num < 10) {
+            newNo="000" + num;
+        }
+        //两位数
+        else if (num < 100) {
+            newNo="00" + num;
+        }
+        //三位数
+        else if (num < 1000) {
+            newNo="0" + num;
+        }
+        //四位数
+        else if (num < 10000) {
+            newNo=String.valueOf(num);
+        }
+        String transferOutNo = "HQZR"+df.format(new Date())+newNo;
+        cargoTitleDetails.setTransferOutNo(transferOutNo);
+        //货权赎回
+        if (cargoTitleDetails.getRedeemContractNo()!=null){
+            ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                    .eq("comp_id",cargoTitleDetails.getCompId())
+                    .eq("contract_no",cargoTitleDetails.getRedeemContractNo()));
+            if (contractManagementInfo!=null){
+                contractManagementInfo.setRedeemed(contractManagementInfo.getRedeemed()+cargoTitleDetails.getTransferOutWeight());
+                contractManagementInfoService.updateById(contractManagementInfo);
+            }
+        }
+        List<CargoPositionDetails> cargoPositionDetailsList = cargoTitleDetails.getCargoPositionDetailsList();
+        if (!CollectionUtils.isEmpty(cargoPositionDetailsList)){
+            for (CargoPositionDetails cargoPositionDetails:cargoPositionDetailsList){
+                cargoPositionDetails.setId(IdGenerator.generateUUID());
+                cargoPositionDetails.setInfoId(cargoTitleDetails.getId());
+                cargoPositionDetailsService.insert(cargoPositionDetails);
+                WarehouseInOutInfo warehouseInOutInfo = new WarehouseInOutInfo();
+                warehouseInOutInfo.setId(IdGenerator.generateUUID());
+                warehouseInOutInfo.setBaseId(cargoTitleDetails.getBaseId());
+                warehouseInOutInfo.setWarehouseName(cargoTitleDetails.getWarehouseName());
+                warehouseInOutInfo.setPositionId(cargoPositionDetails.getPositionId());
+                warehouseInOutInfo.setBinNumber(cargoPositionDetails.getBinNumber());
+                warehouseInOutInfo.setInOutFlag("2");
+                warehouseInOutInfo.setGoodsName(cargoTitleDetails.getGoodsName());
+                CommonSysParameter commonSysParameter = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", cargoTitleDetails.getGoodsName()));
+                warehouseInOutInfo.setGoodsNameKey(commonSysParameter.getConstKey());
+                warehouseInOutInfo.setNetWeight(cargoPositionDetails.getWeight());
+                warehouseInOutInfo.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+                warehouseInOutInfo.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
+                warehouseInOutInfo.setStatus(StatusEnum.SUBMITTED.getName());
+                warehouseInOutInfo.setInOutDate(new Date());
+                warehouseInOutInfo.setInOutType("货权转入");
+                warehouseInOutInfo.setContractNo(cargoTitleDetails.getOutContractNo());
+                warehouseInOutInfoService.insert(warehouseInOutInfo);
+                WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
+                warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
+                warehouseInOutDetail.setId(IdGenerator.generateUUID());
+                warehouseInOutDetailService.insert(warehouseInOutDetail);
+                WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                        .eq("position_id", cargoPositionDetails.getPositionId())
+                        .eq("goods_name", cargoTitleDetails.getGoodsName()));
+                if (warehousePositionStorageInfo != null) {
+                    warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + cargoPositionDetails.getWeight());
+                    warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+                } else {
+                    WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
+                    warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
+                    warehousePositionStorageInfo1.setPositionId(cargoPositionDetails.getPositionId());
+                    warehousePositionStorageInfo1.setBinNumber(cargoPositionDetails.getBinNumber());
+                    warehousePositionStorageInfo1.setGoodsNameKey(commonSysParameter.getConstKey());
+                    warehousePositionStorageInfo1.setGoodsName(cargoTitleDetails.getGoodsName());
+                    warehousePositionStorageInfo1.setStorage(cargoPositionDetails.getWeight());
+                    warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
+                }
+                //现货采购入库报表
+                StockPurchaseReceiptReport stockPurchaseReceiptReport = new StockPurchaseReceiptReport();
+                stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
+                stockPurchaseReceiptReport.setCompId(cargoTitleDetails.getCompId());
+                stockPurchaseReceiptReport.setWarehouseRecordId(warehouseInOutInfo.getId());
+                stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                stockPurchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                stockPurchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                stockPurchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
+                stockPurchaseReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
+                stockPurchaseReceiptReport.setStatusFlag(StatusEnum.NOT_COLLECTION_PAY.getFlag());
+                stockPurchaseReceiptReport.setStatus(StatusEnum.NOT_COLLECTION_PAY.getName());
+                stockPurchaseReceiptReportService.insert(stockPurchaseReceiptReport);
+                WarehousingOrder warehousingOrder = new WarehousingOrder();
+                warehousingOrder.setId(IdGenerator.generateUUID());
+                warehousingOrder.setCompId(cargoTitleDetails.getCompId());
+                warehousingOrder.setBaseId(cargoTitleDetails.getBaseId());
+                warehousingOrder.setContractNo(cargoTitleDetails.getOutContractNo());
+                warehousingOrder.setWarehouseName(cargoTitleDetails.getWarehouseName());
+                warehousingOrder.setInType("货转");
+                warehousingOrder.setGoodsName(cargoTitleDetails.getGoodsName());
+                warehousingOrder.setGoodsSource(cargoTitleDetails.getOutContractNo());
+                warehousingOrder.setInWarehouseWeight(cargoTitleDetails.getTransferOutWeight());
+                warehousingOrder.setAvgCost(cargoTitleDetails.getAvgCost());
+                warehousingOrder.setCustomer(cargoTitleDetails.getCustomer());
+                warehousingOrder.setSurplusWeight(cargoTitleDetails.getTransferOutWeight());
+                warehousingOrder.setAmountNotPayable(cargoTitleDetails.getAmountNotPayable());
+                warehousingOrder.setGrainFund(cargoTitleDetails.getAmountNotPayable());
+                warehousingOrder.setIssuingTime(new Date());
+                warehousingOrderService.insert(warehousingOrder);
+            }
+        }
+        this.insert(cargoTitleDetails);
+        return "ok";
+    }
+
+    /**
+     * 修改赎回状态
+     * @param cargoTitleDetails
+     * @return
+     */
+    @Override
+    public String editStatus(CargoTitleDetails cargoTitleDetails) {
+        List<WarehousingOrder> warehousingOrderList=cargoTitleDetails.getWarehousingOrderList();
+        if (!CollectionUtils.isEmpty(warehousingOrderList)) {
+            for (WarehousingOrder warehousingOrder:warehousingOrderList){
+                warehousingOrder.setRedeemFlag("");
+                warehousingOrderService.updateById(warehousingOrder);
+                ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                .eq("comp_id",warehousingOrder.getCompId())
+                .eq("contract_no",warehousingOrder.getContractNo()));
+                if (contractManagementInfo!=null){
+                    //修改合同预计赎回量
+                    contractManagementInfo.setExpectedRedemption(contractManagementInfo.getExpectedRedemption()-warehousingOrder.getTransferOutWeight());
+                    contractManagementInfoService.updateById(contractManagementInfo);
+                }
+            }
+        }
+        return "ok";
+    }
+}

+ 26 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractManagementInfoServiceImpl.java

@@ -3269,4 +3269,30 @@ public class ContractManagementInfoServiceImpl extends ServiceImpl<ContractManag
        return contractManagementInfo;
     }
 
+    @Override
+    public Page<ContractManagementInfo> toBeRedeemedInfo(ContractManagementInfo contractManagementInfo) {
+        Map<String, Object> pageView = new HashMap<>();
+        pageView.put("startRecord", (contractManagementInfo.getCurrentPage() - 1)
+                * contractManagementInfo.getPageSize());
+        //  公司ID
+        pageView.put("compId", contractManagementInfo.getCompId());
+        pageView.put("searchKeyWord", contractManagementInfo.getSearchKeyWord());
+        pageView.put("startDate", contractManagementInfo.getStartDate());
+        pageView.put("endDate", contractManagementInfo.getEndDate());
+        // 状态类型(1未完成2已完成)
+        pageView.put("searchType", contractManagementInfo.getSearchType());
+        pageView.put("dropFlag", contractManagementInfo.getDropFlag());
+        pageView.put("pageSize", contractManagementInfo.getPageSize());
+        pageView.put("currentPage", contractManagementInfo.getCurrentPage());
+        // 查询服务商总数
+        Integer dataCount = baseMapper.getRedeemedCountByCondition(pageView);
+        List<ContractManagementInfo> dataList = baseMapper.getRedeemedListByCondition(pageView);
+        Page<ContractManagementInfo> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(contractManagementInfo.getCurrentPage());
+        page.setSize(contractManagementInfo.getPageSize());
+        return page;
+    }
+
 }

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CargoPositionDetailsMapper.xml

@@ -0,0 +1,5 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.CargoPositionDetailsMapper">
+
+</mapper>

+ 145 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CargoTitleDetailsMapper.xml

@@ -0,0 +1,145 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.CargoTitleDetailsMapper">
+
+    <select id="getCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(id)
+        FROM cargo_title_details
+        WHERE
+        comp_id = #{compId}
+        and delete_flag = '0'
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND transfer_flag='2'
+            </if>
+            <if test="searchType == 2">
+                AND transfer_flag='1'
+            </if>
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(transfer_out_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(out_contract_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(customer) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+    </select>
+    <select id="getListByCondition" parameterType="Map" resultType="com.yh.saas.plugin.yiliangyiyun.entity.CargoTitleDetails">
+        select
+        id,
+        transfer_out_no as transferOutNo,
+        relation_receive_no as relationReceiveNo,
+        out_contract_no as outContractNo,
+        customer,
+        warehouse_name as warehouseName,
+        transfer_flag as transferFlag,
+        agent,
+        amount_ing_payable as amountIngPayable,
+        amount_ed_payable as amountEdPayable,
+        amount_not_payable as amountNotPayable,
+        receive_comp_name asreceive_comp_name,
+        transfer_out_weight as transferOutWeight,
+        avg_cost as avgCost,
+        sale_price as salePrice,
+        update_date as updateDate
+        FROM cargo_title_details
+        WHERE
+        comp_id = #{compId}
+        and delete_flag = '0'
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND transfer_flag='2'
+            </if>
+            <if test="searchType == 2">
+                AND transfer_flag='1'
+            </if>
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(transfer_out_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(out_contract_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(customer) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        ORDER BY update_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
+    <select id="getActionCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(id)
+        FROM cargo_title_details
+        WHERE
+        receive_comp_id = #{compId}
+        and delete_flag = '0'
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(transfer_out_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(out_contract_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(customer) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+    </select>
+    <select id="getActionListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.CargoTitleDetails">
+        select
+        id,
+        transfer_out_no as transferOutNo,
+        relation_receive_no as relationReceiveNo,
+        out_contract_no as outContractNo,
+        customer,
+        amount_ing_payable as amountIngPayable,
+        amount_ed_payable as amountEdPayable,
+        amount_not_payable as amountNotPayable,
+        transfer_out_weight as transferOutWeight,
+        sale_price as salePrice,
+        status,
+        update_date as updateDate
+        FROM cargo_title_details
+        WHERE
+        receive_comp_id = #{compId}
+        and delete_flag = '0'
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND status='待接收'
+            </if>
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(transfer_out_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(out_contract_no) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(customer) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        ORDER BY update_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
+</mapper>

+ 87 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractManagementInfoMapper.xml

@@ -1590,4 +1590,91 @@
         group by
         name
     </select>
+    <select id="getRedeemedCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(id)
+        FROM
+        contract_management_info
+        WHERE
+        comp_id =  #{compId}
+        AND delete_flag = '0'
+        AND ( agreement_type = '采购合同' OR agreement_type = '收购合同' )
+        <if test = "searchType != null and searchType != ''" >
+            <if test = "searchType == 1" >
+                AND ( STATUS != '已完成' AND status_flag != '5' )
+            </if>
+            <if test = "searchType == 2" >
+                AND ( status_flag = '3' OR status_flag = '5' )
+            </if>
+        </if>
+        <if test = "dropFlag != null and dropFlag != ''" >
+            <if test = "dropFlag == 0" >
+                AND ( expected_redemption >0 OR redeemed >0 )
+            </if>
+            <if test = "dropFlag == 1" >
+                AND expected_redemption-redeemed >0
+            </if>
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(signing_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(signing_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test = "searchKeyWord != null and searchKeyWord != ''" >
+            AND ( lower( contract_no ) LIKE lower( CONCAT('%',#{searchKeyWord},'%'))
+            OR lower( receivingCompany ) LIKE lower( CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+    </select>
+    <select id="getRedeemedListByCondition"  parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.ContractManagementInfo">
+        SELECT
+        id,
+        contract_no AS contractNo,
+        cumulative_transfer AS cumulativeTransfer,
+        expected_redemption AS expectedRedemption,
+        redeemed,
+        receiving_company as receivingCompany,
+        signing_date AS signingDate
+        FROM
+        contract_management_info
+        WHERE
+        comp_id =  #{compId}
+        AND delete_flag = '0'
+        AND ( agreement_type = '采购合同' OR agreement_type = '收购合同' )
+        <if test = "searchType != null and searchType != ''" >
+            <if test = "searchType == 1" >
+                AND ( STATUS != '已完成' AND status_flag != '5' )
+            </if>
+            <if test = "searchType == 2" >
+                AND ( status_flag = '3' OR status_flag = '5' )
+            </if>
+        </if>
+        <if test = "dropFlag != null and dropFlag != ''" >
+            <if test = "dropFlag == 0" >
+                AND ( expected_redemption >0 OR redeemed >0 )
+            </if>
+            <if test = "dropFlag == 1" >
+                AND expected_redemption-redeemed >0
+            </if>
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(signing_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(signing_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test = "searchKeyWord != null and searchKeyWord != ''" >
+            AND ( lower( contract_no ) LIKE lower( CONCAT('%',#{searchKeyWord},'%'))
+            OR lower( receivingCompany ) LIKE lower( CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        ORDER BY signing_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
 </mapper>

+ 3 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/WarehousingOrderMapper.xml

@@ -104,6 +104,9 @@
         w.grain_fund as grainFund,
         w.amount_ed_payable as amountEdPayable,
         w.amount_money as amountMoney,
+        w.transfer_out_weight as transferOutWeight,
+        w.transfer_out_no as transferOutNo,
+        w.redeem_flag as redeemFlag,
         w.customer,
         w.remark,
         w.create_user_id as createUserId,