yzc 1 rok pred
rodič
commit
e7243bc416

+ 12 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractOutboundInfoController.java

@@ -1,6 +1,8 @@
 package com.fjhx.sale.controller.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoDto;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoSelectDto;
 import com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo;
 import com.fjhx.sale.service.contract.ContractOutboundInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +26,16 @@ public class ContractOutboundInfoController {
     @Autowired
     private ContractOutboundInfoService contractOutboundInfoService;
 
+    @PostMapping("/page")
+    Page<ContractOutboundInfoVo> getPage(@RequestBody ContractOutboundInfoSelectDto dto) {
+        return contractOutboundInfoService.getPage(dto);
+    }
+
+    @PostMapping("/loadTruck")
+    public void loadTruck(@RequestBody ContractOutboundInfoDto dto) {
+        contractOutboundInfoService.loadTruck(dto);
+    }
+
     @PostMapping("/detail")
     public ContractOutboundInfoVo detail(@RequestBody ContractOutboundInfoDto dto) {
         return contractOutboundInfoService.detail(dto.getId());

+ 11 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractOutboundInfoDto.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.entity.contract.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.fjhx.sale.entity.contract.po.ContractOutboundInfo;
 import lombok.Getter;
 import lombok.Setter;
@@ -21,4 +22,14 @@ public class ContractOutboundInfoDto extends ContractOutboundInfo {
      */
     List<ContractOutboundRecordsDto> outboundRecordList;
 
+    /**
+     * 出货文件列表
+     */
+    private List<ObsFile> fileList;
+
+    /**
+     * 装车文件列表
+     */
+    private List<ObsFile> truckFileList;
+
 }

+ 18 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractOutboundInfo.java

@@ -1,10 +1,13 @@
 package com.fjhx.sale.entity.contract.po;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * <p>
  * 销售出货信息
@@ -31,4 +34,19 @@ public class ContractOutboundInfo extends BasePo {
      */
     private Long flowId;
 
+    /**
+     * 开单人
+     */
+    private Long billUserId;
+    /**
+     * 装车时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date truckDate;
+    /**
+     * 装车备注
+     */
+    private String truckRemark;
+
+
 }

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

@@ -20,4 +20,13 @@ public class ContractOutboundInfoVo extends ContractOutboundInfo {
      * 出库明细
      */
     List<ContractOutboundRecordsVo> outboundRecordList;
+
+    /**
+     * 开单人
+     */
+    private String billUserName;
+
+    private String contractCode;
+    private Integer modCount;
+    private Integer sumQuantity;
 }

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractOutboundInfoMapper.java

@@ -1,8 +1,11 @@
 package com.fjhx.sale.mapper.contract;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.po.ContractOutboundInfo;
 import com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -15,5 +18,8 @@ import com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo;
  */
 public interface ContractOutboundInfoMapper extends BaseMapper<ContractOutboundInfo> {
 
+    Page<ContractOutboundInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractOutboundInfo> wrapper);
+
     ContractOutboundInfoVo detail(Long id);
+
 }

+ 8 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractOutboundInfoService.java

@@ -1,5 +1,8 @@
 package com.fjhx.sale.service.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoDto;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoSelectDto;
 import com.fjhx.sale.entity.contract.po.ContractOutboundInfo;
 import com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo;
 import com.ruoyi.common.core.service.BaseService;
@@ -14,8 +17,13 @@ import com.ruoyi.common.core.service.BaseService;
  * @since 2024-03-13
  */
 public interface ContractOutboundInfoService extends BaseService<ContractOutboundInfo> {
+    Page<ContractOutboundInfoVo> getPage(ContractOutboundInfoSelectDto dto);
+
+    void loadTruck(ContractOutboundInfoDto dto);
+
     /**
      * 详情
      */
     ContractOutboundInfoVo detail(Long id);
+
 }

+ 30 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractOutboundInfoServiceImpl.java

@@ -1,8 +1,13 @@
 package com.fjhx.sale.service.contract.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoDto;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundInfoSelectDto;
 import com.fjhx.sale.entity.contract.po.ContractOutboundInfo;
 import com.fjhx.sale.entity.contract.po.ContractOutboundRecords;
 import com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo;
@@ -10,6 +15,9 @@ import com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo;
 import com.fjhx.sale.mapper.contract.ContractOutboundInfoMapper;
 import com.fjhx.sale.service.contract.ContractOutboundInfoService;
 import com.fjhx.sale.service.contract.ContractOutboundRecordsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -33,6 +41,27 @@ public class ContractOutboundInfoServiceImpl extends ServiceImpl<ContractOutboun
     private ProductInfoService productInfoService;
 
     @Override
+    public Page<ContractOutboundInfoVo> getPage(ContractOutboundInfoSelectDto dto) {
+        IWrapper<ContractOutboundInfo> wrapper = getWrapper();
+        wrapper.keyword(dto.getKeyword(), new SqlField("c.code"));
+        Page<ContractOutboundInfoVo> page = baseMapper.getPage(dto.getPage(), wrapper);
+        List<ContractOutboundInfoVo> records = page.getRecords();
+        if (ObjectUtil.isEmpty(records)) {
+            return page;
+        }
+        //赋值开单人名称
+        UserUtil.assignmentNickName(records, ContractOutboundInfo::getBillUserId, ContractOutboundInfoVo::setBillUserName);
+        return page;
+    }
+
+    @Override
+    public void loadTruck(ContractOutboundInfoDto dto) {
+        this.updateById(dto);
+        ObsFileUtil.saveFile(dto.getFileList(), dto.getId(), 0);
+        ObsFileUtil.saveFile(dto.getTruckFileList(), dto.getId(), 1);
+    }
+
+    @Override
     public ContractOutboundInfoVo detail(Long id) {
         ContractOutboundInfoVo detail = baseMapper.detail(id);
         List<ContractOutboundRecords> list = contractOutboundRecordsService.list(q -> q.eq(ContractOutboundRecords::getRecordId, id));
@@ -55,4 +84,5 @@ public class ContractOutboundInfoServiceImpl extends ServiceImpl<ContractOutboun
         detail.setOutboundRecordList(contractOutboundRecordsVos);
         return detail;
     }
+
 }

+ 26 - 3
hx-sale/src/main/resources/mapper/contract/ContractOutboundInfoMapper.xml

@@ -1,9 +1,32 @@
 <?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.ContractOutboundInfoMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo">
+        SELECT
+        coi.*,
+        c.`code` AS contractCode,
+        count( cor.product_id ) AS modCount,
+        sum( cor.quantity ) AS sumQuantity
+        FROM
+        contract_outbound_info coi
+        JOIN contract_outbound_records cor ON cor.record_id = coi.id
+        LEFT JOIN contract c ON coi.contract_id = c.id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        GROUP BY
+        coi.id
+    </select>
+
     <select id="detail" resultType="com.fjhx.sale.entity.contract.vo.ContractOutboundInfoVo">
-        SELECT *
-        FROM contract_outbound_info
-        WHERE id = #{id}
+        SELECT coi.*,
+               c.`code`              AS contractCode,
+               count(cor.product_id) AS modCount,
+               sum(cor.quantity)     AS sumQuantity
+        FROM contract_outbound_info coi
+                 JOIN contract_outbound_records cor ON cor.record_id = coi.id
+                 LEFT JOIN contract c ON coi.contract_id = c.id
+        WHERE coi.id = #{id}
+        GROUP BY coi.id
     </select>
 </mapper>