Sfoglia il codice sorgente

添加了产品看板

wxf 2 anni fa
parent
commit
bfcd8d382c

+ 2 - 2
hx-customer/src/main/java/com/fjhx/customer/controller/customer/CustomerController.java

@@ -86,8 +86,8 @@ public class CustomerController {
      * 客户分配
      */
     @PostMapping("/CustomerAllocation")
-    public void CustomerAllocation(@RequestBody CustomerDto dto) {
-        customerService.updateById(dto);
+    public void customerAllocation(@RequestBody CustomerDto dto) {
+        customerService.customerAllocation(dto);
     }
 
     /**

+ 6 - 0
hx-customer/src/main/java/com/fjhx/customer/mapper/customer/CustomerMapper.java

@@ -46,4 +46,10 @@ public interface CustomerMapper extends BaseMapper<Customer> {
      * @return
      */
     List<CustomerVo> sourceIncrement(@Param("ew") QueryWrapper<Object> query);
+
+
+    /**
+     * 客户分配
+     */
+    void customerAllocation(CustomerDto dto);
 }

+ 5 - 0
hx-customer/src/main/java/com/fjhx/customer/service/customer/CustomerService.java

@@ -73,4 +73,9 @@ public interface CustomerService extends BaseService<Customer> {
      * 客户来源统计
      */
     Map<String,Object> sourceStatistics(CustomerSelectDto customerDto);
+
+    /**
+     * 客户分配
+     */
+    void customerAllocation(CustomerDto dto);
 }

+ 8 - 0
hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java

@@ -309,6 +309,14 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
         return map;
     }
 
+    /**
+     * 客户分配
+     */
+    @Override
+    public void customerAllocation(CustomerDto dto) {
+        baseMapper.customerAllocation(dto);
+    }
+
     //根据字典编码获取字典的数据
     private List<DictTenantDataVo> getDict(String code){
         DictTenantDataSelectDto dto = new DictTenantDataSelectDto();

+ 3 - 0
hx-customer/src/main/resources/mapper/customer/CustomerMapper.xml

@@ -1,6 +1,9 @@
 <?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.customer.mapper.customer.CustomerMapper">
+    <update id="customerAllocation">
+        update customer set user_id = #{userId} where id = #{id}
+    </update>
     <select id="getList" resultType="com.fjhx.customer.entity.customer.vo.CustomerVo">
         select
             c.id,

+ 9 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java

@@ -8,6 +8,7 @@ import com.fjhx.sale.entity.contract.dto.ContractSelectDto;
 import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
 import com.fjhx.sale.entity.contract.vo.ContractVo;
+import com.fjhx.sale.entity.sample.dto.SampleDto;
 import com.fjhx.sale.service.contract.ContractService;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -153,4 +154,12 @@ public class ContractController {
     public  List<ContractDto>  salesVolumeStatistics(@RequestBody ContractDto dto) {
         return contractService.salesVolumeStatistics(dto);
     }
+
+    /**
+     * 合同交接单
+     */
+    @PostMapping("/contractHandover")
+    public void contractHandover(@RequestBody ContractDto dto) {
+        contractService.contractHandover(dto);
+    }
 }

+ 9 - 1
hx-sale/src/main/java/com/fjhx/sale/controller/sample/SampleController.java

@@ -17,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * 样品单表 前端控制器
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 @RestController
@@ -67,4 +67,12 @@ public class SampleController {
         sampleService.delete(dto.getId());
     }
 
+    /**
+     * 样品交接单
+     */
+    @PostMapping("/sampleHandover")
+    public void sampleHandover(@RequestBody SampleDto dto) {
+        sampleService.sampleHandover(dto);
+    }
+
 }

+ 7 - 1
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -260,12 +260,18 @@ public class Contract extends BasePo {
     private Integer version;
 
     /**
-     * 附件列表
+     * 交接单附件列表
      */
     @TableField(exist = false)
     private List<ObsFile> fileList;
 
     /**
+     * 包装附件列表
+     */
+    @TableField(exist = false)
+    private List<ObsFile> packageFileList;
+
+    /**
      * 合同产品列表
      */
     @TableField(exist = false)

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

@@ -1,10 +1,12 @@
 package com.fjhx.sale.entity.contract.vo;
 
+import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.sale.entity.contract.po.Contract;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 外销合同表列表查询返回值实体
@@ -85,4 +87,15 @@ public class ContractVo extends Contract {
      * 总到账认领金额
      */
     private BigDecimal sumClaimMoney;
+
+
+    /**
+     * 交接单附件信息
+     */
+    List<FileInfoVo> fileInfoVos;
+
+    /**
+     * 交接单附件信息
+     */
+    List<FileInfoVo> packageFileInfoVOList;
 }

+ 9 - 2
hx-sale/src/main/java/com/fjhx/sale/entity/sample/po/Sample.java

@@ -17,7 +17,7 @@ import lombok.Setter;
  * 样品单表
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 @Getter
@@ -227,10 +227,17 @@ public class Sample extends BasePo {
 
 
     /**
-     * 附件列表
+     * 交接单附件列表
      */
     @TableField(exist = false)
     private List<ObsFile> fileList;
+
+    /**
+     * 包装附件列表
+     */
+    @TableField(exist = false)
+    private List<ObsFile> packageFileList;
+
     /**
      * 样品单产品列表
      */

+ 16 - 1
hx-sale/src/main/java/com/fjhx/sale/entity/sample/vo/SampleVo.java

@@ -1,13 +1,16 @@
 package com.fjhx.sale.entity.sample.vo;
 
+import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.sale.entity.sample.po.Sample;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 样品单表列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 @Getter
@@ -18,4 +21,16 @@ public class SampleVo extends Sample {
      * 买方名称
      */
     private String buyCorporationName;
+
+    /**
+     * 交接单附件信息
+     */
+    List<FileInfoVo> fileInfoVos;
+
+    /**
+     * 交接单附件信息
+     */
+    List<FileInfoVo> packageFileInfoVOList;
+
+
 }

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

@@ -86,7 +86,10 @@ public class ContractFlow extends FlowDelegate {
             }
             contractShipmentService.saveBatch(contractShipmentList);
         }
-        ObsFileUtil.saveFile(contract.getFileList(),contract.getId());
+        //交接单附件列表
+        ObsFileUtil.saveFile(contract.getFileList(),contract.getId(),1);
+        //包装指示附件列表
+        ObsFileUtil.saveFile(contract.getPackageFileList(),contract.getId(),2);
         return contract.getId();
     }
 

+ 5 - 1
hx-sale/src/main/java/com/fjhx/sale/flow/SampleFlow.java

@@ -21,6 +21,7 @@ import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.sale.util.code.CodeEnum;
 import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.stereotype.Component;
 
@@ -86,7 +87,10 @@ public class SampleFlow extends FlowDelegate {
             }
             sampleShipmentService.saveBatch(sampleShipmentList);
         }
-        ObsFileUtil.saveFile(sample.getFileList(),sample.getId());
+        //交接单附件
+        ObsFileUtil.saveFile(sample.getFileList(),sample.getId(),1);
+        //包装附件
+        ObsFileUtil.saveFile(sample.getPackageFileList(),sample.getId(),2);
         return sample.getId();
 
     }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java

@@ -125,4 +125,9 @@ public interface ContractService extends BaseService<Contract> {
      * 产品销售量统计(数据看板-销售分析页面开发)
      */
     List<ContractDto> salesVolumeStatistics(ContractDto dto);
+
+    /**
+     * 合同交接单
+     */
+    void contractHandover(ContractDto dto);
 }

+ 91 - 55
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -21,6 +21,8 @@ import com.fjhx.common.service.documentary.GetDocumentaryBusinessTemplate;
 import com.fjhx.customer.entity.customer.dto.CustomerDto;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.file.entity.FileInfoVo;
+import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.sale.entity.commission.dto.CommissionDto;
@@ -103,29 +105,49 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public Page<ContractVo> getPage(ContractSelectDto dto) {
         IWrapper<Contract> wrapper = getWrapper();
-        wrapper.orderByDesc("t1",Contract::getCreateTime);
-        wrapper.between("t1",Contract::getStatus, FlowStatusEnum.DRAFT.getKey(),FlowStatusEnum.CANCELLATION.getKey()-1);
-        if(StringUtils.isNotEmpty(dto.getStatus())){
-            wrapper.eq("t1",Contract::getStatus,dto.getStatus());
+        wrapper.orderByDesc("t1", Contract::getCreateTime);
+        wrapper.between("t1", Contract::getStatus, FlowStatusEnum.DRAFT.getKey(), FlowStatusEnum.CANCELLATION.getKey() - 1);
+        if (StringUtils.isNotEmpty(dto.getStatus())) {
+            wrapper.eq("t1", Contract::getStatus, dto.getStatus());
         }
-        if(StringUtils.isNotEmpty(dto.getSellCorporationId())){
-            wrapper.eq("t1",Contract::getSellCorporationId,dto.getSellCorporationId());
+        if (StringUtils.isNotEmpty(dto.getSellCorporationId())) {
+            wrapper.eq("t1", Contract::getSellCorporationId, dto.getSellCorporationId());
         }
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("t1",Contract::getCode));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.keyword(dto.getKeyword(), new SqlField("t1", Contract::getCode));
         }
         Page<ContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ContractVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
+        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());
+            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));
+
+            List<Long> ids = list.stream().map(ContractVo::getId).collect(Collectors.toList());
+            //获取交接单附件
+            Map<Long, List<FileInfoVo>> fileMap = ObsFileUtil.getFileMap(ids, 1);
+
+            //获取包装附件
+            Map<Long, List<FileInfoVo>> packageFileMap = ObsFileUtil.getFileMap(ids, 2);
+            for (ContractVo p : list) {
+                if (MapUtils.isNotEmpty(cusMap)) {//客户
+                    List<Customer> customers = cusMap.getOrDefault(p.getBuyCorporationId(), null);
+                    p.setBuyCorporationName(customers == null ? null : customers.get(0).getName());
                 }
+
+                //赋值交接单附件
+                if (MapUtils.isNotEmpty(fileMap)){
+                    List<FileInfoVo> fileInfoVos = fileMap.get(p.getId());
+                    p.setFileInfoVos(fileInfoVos);
+                }
+
+                //赋值包装附件信息
+                if (MapUtils.isNotEmpty(packageFileMap)){
+                    List<FileInfoVo>  packageFileInfoVOList= packageFileMap.get(p.getId());
+                    p.setPackageFileInfoVOList(packageFileInfoVOList);
+                }
+
             }
         }
         return page;
@@ -155,6 +177,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     /**
      * 根据客户ID查询未包装的订单
+     *
      * @param customerId
      * @return
      */
@@ -212,6 +235,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     /**
      * 查询销售额(合同总金额)
+     *
      * @param id (买方公司ID)
      */
     @Override
@@ -221,6 +245,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     /**
      * 查询指定客户的每月合同总额
+     *
      * @param dto
      */
     @Override
@@ -231,6 +256,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     /**
      * 查询成交单统计(合同)
+     *
      * @param query
      * @return
      */
@@ -241,20 +267,21 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     /**
      * 销售趋势(数据看板-产品分析页面)
+     *
      * @param productInfoDto
      */
     @Override
-    public  List<Map<String, Object>> saleTrend(ProductInfoSelectDto productInfoDto) {
+    public List<Map<String, Object>> saleTrend(ProductInfoSelectDto productInfoDto) {
         //存放每月的月度销售额与月度销售量的列表
         List<Map<String, Object>> list = new ArrayList<>();
 
-        List<String> monthList = DateUtils.getMonthBetweenDate(productInfoDto.getBeginTime(),productInfoDto.getEndTime());
+        List<String> monthList = DateUtils.getMonthBetweenDate(productInfoDto.getBeginTime(), productInfoDto.getEndTime());
         //查询月度销售额与月度销售量
         QueryWrapper<ContractProduct> query = Wrappers.query();
         String beginTime = DateUtil.format(productInfoDto.getBeginTime(), "yyyy-MM");
         String endTime = DateUtil.format(productInfoDto.getEndTime(), "yyyy-MM");
-        query.ge("DATE_FORMAT(create_time,'%Y-%m')",beginTime);
-        query.le("DATE_FORMAT(create_time,'%Y-%m')",endTime);
+        query.ge("DATE_FORMAT(create_time,'%Y-%m')", beginTime);
+        query.le("DATE_FORMAT(create_time,'%Y-%m')", endTime);
         query.select("DATE_FORMAT(create_time,'%Y-%m') time,ifnull(SUM(amount),0) contractAmount," +
                 "ifnull(SUM(quantity),0) contractQuantity");
         query.groupBy("time");
@@ -264,17 +291,17 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         //给每月赋值月度销售额与月度销售量的值
         for (String month : monthList) {
             //存放每月的月度销售额与月度销售量的值
-            Map<String,Object> map = new HashMap<>();
+            Map<String, Object> map = new HashMap<>();
             //赋值初使值
-            map.put("month",month);
-            map.put("contractAmount",new BigDecimal(0));
-            map.put("contractQuantity",new BigDecimal(0));
+            map.put("month", month);
+            map.put("contractAmount", new BigDecimal(0));
+            map.put("contractQuantity", new BigDecimal(0));
 
             //赋值
             List<ContractProduct> contracts = contractMap.get(month);
-            if (ObjectUtil.isNotEmpty(contracts)){
-                map.put("contractAmount",contracts.get(0).getContractAmount());
-                map.put("contractQuantity",contracts.get(0).getContractQuantity());
+            if (ObjectUtil.isNotEmpty(contracts)) {
+                map.put("contractAmount", contracts.get(0).getContractAmount());
+                map.put("contractQuantity", contracts.get(0).getContractQuantity());
             }
             list.add(map);
         }
@@ -289,37 +316,37 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     public Map<String, Object> salesStatistics(ContractDto dto) {
         //添加查询条件
         QueryWrapper<Contract> query = Wrappers.<Contract>query();
-        selectTime(query,dto);
+        selectTime(query, dto);
         query.select("sum(amount) amount");
 
         //查询销售额
         Contract contract = baseMapper.selectOne(query);
         query.clear();
         //查询订单数
-        selectTime(query,dto);
+        selectTime(query, dto);
 
         Long count = baseMapper.selectCount(query);
 
         //查询下单的客户人数
         query.clear();
-        selectTime(query,dto);
+        selectTime(query, dto);
         query.select("count(DISTINCT(buy_corporation_id)) count");
         Contract contract1 = baseMapper.selectOne(query);
 
         //存放销售统计数据
-        Map<String,Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>();
         //初始化数据
-        map.put("amount",new BigDecimal(0));
-        map.put("contractCount",count);
-        map.put("customerCount",new BigDecimal(0));
+        map.put("amount", new BigDecimal(0));
+        map.put("contractCount", count);
+        map.put("customerCount", new BigDecimal(0));
 
         //赋值
-        if (ObjectUtil.isNotEmpty(contract)){
-            map.put("amount",contract.getAmount());
+        if (ObjectUtil.isNotEmpty(contract)) {
+            map.put("amount", contract.getAmount());
         }
 
-        if (ObjectUtil.isNotEmpty(contract1)){
-            map.put("customerCount",contract1.getCount());
+        if (ObjectUtil.isNotEmpty(contract1)) {
+            map.put("customerCount", contract1.getCount());
         }
         return map;
     }
@@ -330,12 +357,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public List<ContractDto> countrySalesStatistics(ContractDto dto) {
         QueryWrapper<Object> query = Wrappers.query();
-        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
+        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getEndTime());
         query.groupBy("cc.buy_country_id");
         query.orderByDesc("amount");
         //查询销售国家统计信息
-        List<ContractDto> contractDtoList =  baseMapper.countrySalesStatistics(query);
+        List<ContractDto> contractDtoList = baseMapper.countrySalesStatistics(query);
         return contractDtoList;
     }
 
@@ -345,12 +372,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public List<ContractDto> customSalesStatistics(ContractDto dto) {
         QueryWrapper<Object> query = Wrappers.query();
-        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
+        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getEndTime());
         query.groupBy("cc.buy_corporation_id");
         query.orderByDesc("amount");
         //查询销售国家统计信息
-        List<ContractDto> contractDtoList =  baseMapper.customSalesStatistics(query);
+        List<ContractDto> contractDtoList = baseMapper.customSalesStatistics(query);
         return contractDtoList;
     }
 
@@ -360,12 +387,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public List<ContractDto> salesmanSalesStatistics(ContractDto dto) {
         QueryWrapper<Object> query = Wrappers.query();
-        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
+        query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(cc.create_time,'%Y-%m')", dto.getEndTime());
         query.groupBy("cc.create_user");
         query.orderByDesc("amount");
         //查询销售国家统计信息
-        List<ContractDto> contractDtoList =  baseMapper.salesmanSalesStatistics(query);
+        List<ContractDto> contractDtoList = baseMapper.salesmanSalesStatistics(query);
         return contractDtoList;
     }
 
@@ -375,12 +402,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public List<ContractDto> productSalesStatistics(ContractDto dto) {
         QueryWrapper<Object> query = Wrappers.query();
-        query.ge("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getEndTime());
+        query.ge("DATE_FORMAT(cp.create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(cp.create_time,'%Y-%m')", dto.getEndTime());
         query.groupBy("cp.product_id");
         query.orderByDesc("amount");
         //查询销售国家统计信息
-        List<ContractDto> contractDtoList =  baseMapper.productSalesStatistics(query);
+        List<ContractDto> contractDtoList = baseMapper.productSalesStatistics(query);
         return contractDtoList;
     }
 
@@ -390,15 +417,24 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     @Override
     public List<ContractDto> salesVolumeStatistics(ContractDto dto) {
         QueryWrapper<Object> query = Wrappers.query();
-        query.ge("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getEndTime());
+        query.ge("DATE_FORMAT(cp.create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(cp.create_time,'%Y-%m')", dto.getEndTime());
         query.groupBy("cp.product_id");
         query.orderByDesc("quantity");
         //查询销售商品统计信息
-        List<ContractDto> contractDtoList =  baseMapper.salesVolumeStatistics(query);
+        List<ContractDto> contractDtoList = baseMapper.salesVolumeStatistics(query);
         return contractDtoList;
     }
 
+    /**
+     * 合同交接单
+     */
+    @Override
+    public void contractHandover(ContractDto dto) {
+        ObsFileUtil.editFile(dto.getFileList(),dto.getId(),1);
+        ObsFileUtil.editFile(dto.getPackageFileList(),dto.getId(),2);
+    }
+
 
     /**
      * 赋值外销合同信息
@@ -600,9 +636,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     }
 
     //添加时间的查询条件
-    private void  selectTime(QueryWrapper<Contract> query,ContractDto dto){
-        query.ge("DATE_FORMAT(create_time,'%Y-%m')",dto.getBeginTime());
-        query.le("DATE_FORMAT(create_time,'%Y-%m')",dto.getEndTime());
+    private void selectTime(QueryWrapper<Contract> query, ContractDto dto) {
+        query.ge("DATE_FORMAT(create_time,'%Y-%m')", dto.getBeginTime());
+        query.le("DATE_FORMAT(create_time,'%Y-%m')", dto.getEndTime());
     }
 
 }

+ 5 - 1
hx-sale/src/main/java/com/fjhx/sale/service/sample/SampleService.java

@@ -13,7 +13,7 @@ import com.fjhx.sale.entity.sample.dto.SampleDto;
  * 样品单表 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 public interface SampleService extends BaseService<Sample> {
@@ -43,4 +43,8 @@ public interface SampleService extends BaseService<Sample> {
      */
     void delete(Long id);
 
+    /**
+     * 样品交接单
+     */
+    void sampleHandover(SampleDto dto);
 }

+ 50 - 13
hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java

@@ -7,6 +7,8 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.file.entity.FileInfoVo;
+import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.fjhx.sale.mapper.sample.SampleMapper;
 import com.fjhx.sale.service.sample.SampleService;
@@ -33,7 +35,7 @@ import java.util.stream.Collectors;
  * 样品单表 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 @Service
@@ -45,6 +47,7 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
 
     /**
      * 分页
+     *
      * @param dto
      * @return
      */
@@ -52,26 +55,51 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
     public Page<SampleVo> getPage(SampleSelectDto dto) {
         IWrapper<Sample> wrapper = getWrapper();
         wrapper.orderByDesc("s", Sample::getCreateTime);
-        wrapper.between("s",Sample::getStatus, FlowStatusEnum.DRAFT.getKey(),FlowStatusEnum.CANCELLATION.getKey()-1);
-        if(StringUtils.isNotEmpty(dto.getStatus())){
-            wrapper.eq("s",Sample::getStatus,dto.getStatus());
+        wrapper.between("s", Sample::getStatus, FlowStatusEnum.DRAFT.getKey(), FlowStatusEnum.CANCELLATION.getKey() - 1);
+        if (StringUtils.isNotEmpty(dto.getStatus())) {
+            wrapper.eq("s", Sample::getStatus, dto.getStatus());
         }
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("s",Sample::getCode));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.keyword(dto.getKeyword(), new SqlField("s", Sample::getCode));
         }
         Page<SampleVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<SampleVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             List<Long> customerIds = list.stream().map(Sample::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(SampleVo p:list){
-                    List<Customer> customers = cusMap.getOrDefault(p.getBuyCorporationId(),null);
-                    p.setBuyCorporationName(customers==null?null:customers.get(0).getName());
+            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));
+
+            List<Long> ids = list.stream().map(sampleVo -> sampleVo.getId()).collect(Collectors.toList());
+            //获取交接单附件
+            Map<Long, List<FileInfoVo>> fileMap = ObsFileUtil.getFileMap(ids, 1);
+
+            //获取包装附件
+            Map<Long, List<FileInfoVo>> packageFileMap = ObsFileUtil.getFileMap(ids, 2);
+
+            for (SampleVo p : list) {
+                if (MapUtils.isNotEmpty(cusMap)) {//客户
+                    List<Customer> customers = cusMap.getOrDefault(p.getBuyCorporationId(), null);
+                    p.setBuyCorporationName(customers == null ? null : customers.get(0).getName());
+                }
+
+                //赋值交接单附件
+                if (MapUtils.isNotEmpty(fileMap)){
+                    List<FileInfoVo> fileInfoVos = fileMap.get(p.getId());
+                    p.setFileInfoVos(fileInfoVos);
                 }
+
+                //赋值包装附件信息
+                if (MapUtils.isNotEmpty(packageFileMap)){
+                    List<FileInfoVo>  packageFileInfoVOList= packageFileMap.get(p.getId());
+                    p.setPackageFileInfoVOList(packageFileInfoVOList);
+                }
+
             }
+
+
         }
+
+
         return page;
     }
 
@@ -97,4 +125,13 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
         this.removeById(id);
     }
 
+    /**
+     * 样品交接单(类型1 为交接单,2为包装指示)
+     */
+    @Override
+    public void sampleHandover(SampleDto dto) {
+        ObsFileUtil.editFile(dto.getFileList(),dto.getId(),1);
+        ObsFileUtil.editFile(dto.getPackageFileList(),dto.getId(),2);
+    }
+
 }