Browse Source

外销合同

caozj 2 years ago
parent
commit
b23b8d0361

+ 5 - 0
hx-admin/pom.xml

@@ -71,6 +71,11 @@
 
         <dependency>
             <groupId>com.fjhx</groupId>
+            <artifactId>hx-sale</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fjhx</groupId>
             <artifactId>hx-victoriatourist</artifactId>
         </dependency>
 

+ 2 - 2
hx-purchase/src/main/java/com/fjhx/purchase/service/refund/impl/RefundServiceImpl.java

@@ -151,11 +151,11 @@ public class RefundServiceImpl extends ServiceImpl<RefundMapper, Refund> impleme
         //添加一条资金流水
         AccountRunningWater accountRunningWater = new AccountRunningWater();
         accountRunningWater.setAccountManagementId(refundDto.getReceiptAccountManagementId());
-        accountRunningWater.setStatus("10");
+        accountRunningWater.setStatus("10");//收入
         accountRunningWater.setBusinessId(refund.getId());
         accountRunningWater.setAmount(refundDto.getReceiptAmount());
         accountRunningWater.setCurrency(refund.getCurrency());
-        accountRunningWater.setReceived("20");
+        accountRunningWater.setReceived("20");//合同到账(10:是,20:否)
         accountRunningWater.setName(refundDto.getReceiptName());
         accountRunningWater.setOpeningBank(refundDto.getReceiptOpeningBank());
         accountRunningWater.setAccountOpening(refundDto.getReceiptAccountOpening());

+ 4 - 0
hx-sale/pom.xml

@@ -23,6 +23,10 @@
             <artifactId>hx-common</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-customer</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractSelectDto.java

@@ -14,4 +14,9 @@ import lombok.Setter;
 @Setter
 public class ContractSelectDto extends BaseSelectDto {
 
+    /**
+     * 审批状态
+     */
+    private String status;
+
 }

+ 15 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -52,6 +52,17 @@ public class Contract extends BasePo {
      * 合同审批状态 0草稿 10、审批中;20、驳回  30、审批通过   99终止
      */
     private Integer status;
+
+    /**
+     * 到款状态 0未到款  10部分到款  20已到款
+     */
+    private Integer refundStatus;
+
+    /**
+     * 合同状态
+     */
+    private Integer contractStatus;
+
     /**
      * 卖方国家表id
      */
@@ -173,6 +184,10 @@ public class Contract extends BasePo {
     private String userName;
 
     /**
+     * 版本号
+     */
+    private String version;
+    /**
      * 合同产品列表
      */
     @TableField(exist = false)

+ 9 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java

@@ -14,4 +14,13 @@ import lombok.Setter;
 @Setter
 public class ContractVo extends Contract {
 
+    /**
+     * 买方名称
+     */
+    private String buyCorporationName;
+
+    /**
+     * 卖方名称
+     */
+    private String sellCorporationName;
 }

+ 3 - 3
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -24,7 +24,7 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * 采购付款流程
+ * 外销合同流程
  * @Author:caozj
  * @DATE:2023/4/3 17:38
  */
@@ -32,12 +32,12 @@ import java.util.List;
 @Component
 public class ContractFlow extends FlowDelegate {
 
+
     @Override
     public String getFlowKey() {
         return "contract_flow";
     }
 
-
     /**
      * 发起流程
      * @param flowId 流程ID
@@ -87,7 +87,7 @@ public class ContractFlow extends FlowDelegate {
     @Override
     public void end(Long flowId, Long businessId, JSONObject submitData) {
         ContractService contractService = SpringUtil.getBean(ContractService.class);
-        //通过业务ID查询申购数据
+        //通过业务ID查询合同数据
         Contract contract = contractService.getById(businessId);
         if(ObjectUtils.isEmpty(contract)){
             throw new ServiceException("合同不存在");

+ 40 - 1
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -1,9 +1,17 @@
 package com.fjhx.sale.service.contract.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.customer.entity.customer.po.Customer;
+import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.mapper.contract.ContractMapper;
 import com.fjhx.sale.service.contract.ContractService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.vo.ContractVo;
@@ -12,6 +20,10 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 
 /**
  * <p>
@@ -24,11 +36,38 @@ import cn.hutool.core.bean.BeanUtil;
 @Service
 public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements ContractService {
 
+    @Autowired
+    private CustomerService customerService;
+
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
     @Override
     public Page<ContractVo> getPage(ContractSelectDto dto) {
         IWrapper<Contract> wrapper = getWrapper();
-        wrapper.orderByDesc("c", Contract::getId);
+        wrapper.orderByDesc(Contract::getCreateTime);
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq(Contract::getStatus,dto.getStatus());
+        }
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(),new SqlField(Contract::getCode));
+        }
         Page<ContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ContractVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<Long> companyIds = list.stream().map(Contract::getSellCorporationId).collect(Collectors.toList());
+            List<Long> customerIds = list.stream().map(Contract::getBuyCorporationId).collect(Collectors.toList());
+            List<Customer> customerList = customerService.list(Wrappers.<Customer>query().lambda().in(Customer::getId,customerIds));
+            Map<Long,List<Customer>> cusMap = customerList.stream().distinct().collect(Collectors.groupingBy(Customer::getId));
+            if(MapUtils.isNotEmpty(cusMap)){//客户
+                for(ContractVo p:list){
+                    List<Customer> customers = cusMap.getOrDefault(p.getBuyCorporationId(),null);
+                    p.setBuyCorporationName(customers==null?null:customers.get(0).getName());
+                }
+            }
+        }
         return page;
     }
 

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/util/code/CodeEnum.java

@@ -17,7 +17,7 @@ import java.util.Map;
 public enum CodeEnum {
 
     //外销合同
-    CONTRACT("SC", "yyMM-", "code", 3, ContractService.class),
+    CONTRACT("SC-", "yyMM-", "code", 3, ContractService.class),
     ;
 
     CodeEnum(String prefix, String dateFormat, String codeFieldName, Integer length, Class<? extends IService<?>> serviceCls) {

+ 11 - 0
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -0,0 +1,11 @@
+<?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.fjhx.sale.mapper.contract.ContractMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
+        select
+            *
+        from contract
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 23 - 0
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -0,0 +1,23 @@
+<?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.fjhx.sale.mapper.contract.ContractProductMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        select
+            cp.id,
+            cp.contract_id,
+            cp.product_id,
+            cp.product_name,
+            cp.product_model,
+            cp.quantity,
+            cp.price,
+            cp.amount,
+            cp.remark,
+            cp.create_user,
+            cp.create_time,
+            cp.update_user,
+            cp.update_time
+        from contract_product cp
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 19 - 0
hx-sale/src/main/resources/mapper/contract/ContractProjectMapper.xml

@@ -0,0 +1,19 @@
+<?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.fjhx.sale.mapper.contract.ContractProjectMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProjectVo">
+        select
+            cp.id,
+            cp.contract_id,
+            cp.pay_name,
+            cp.amount,
+            cp.remark,
+            cp.create_user,
+            cp.create_time,
+            cp.update_user,
+            cp.update_time
+        from contract_project cp
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 20 - 0
hx-sale/src/main/resources/mapper/contract/ContractShipmentMapper.xml

@@ -0,0 +1,20 @@
+<?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.fjhx.sale.mapper.contract.ContractShipmentMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractShipmentVo">
+        select
+            cs.id,
+            cs.contract_id,
+            cs.product_id,
+            cs.shipment_time,
+            cs.quantity,
+            cs.remark,
+            cs.create_user,
+            cs.create_time,
+            cs.update_user,
+            cs.update_time
+        from contract_shipment cs
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>