浏览代码

外销合同头部统计

caozj 1 年之前
父节点
当前提交
0645774b50

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

@@ -46,6 +46,14 @@ public class ContractController {
     }
     }
 
 
     /**
     /**
+     * 外销合同表头部统计
+     */
+    @PostMapping("/getHeadStatistic")
+    public Map<String,Object> getHeadStatistic(@RequestBody ContractSelectDto dto) {
+        return contractService.getHeadStatistic(dto);
+    }
+
+    /**
      * 外销合同与样品单合并分页
      * 外销合同与样品单合并分页
      */
      */
     @PostMapping("/contractAndSamplePage")
     @PostMapping("/contractAndSamplePage")

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

@@ -319,6 +319,16 @@ public class Contract extends BasePo {
     private String documentaryRemark;
     private String documentaryRemark;
 
 
     /**
     /**
+     * 是否有交接单文件
+     */
+    private Integer isDeliveryFile;
+
+    /**
+     * 是否有包装指示文件
+     */
+    private Integer isPackFile;
+
+    /**
      * 版本号
      * 版本号
      */
      */
     @TableField(fill = FieldFill.INSERT)
     @TableField(fill = FieldFill.INSERT)

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

@@ -15,6 +15,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 
 
 /**
 /**
@@ -33,6 +34,11 @@ public interface ContractMapper extends BaseMapper<Contract> {
     Page<ContractVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contract> wrapper);
     Page<ContractVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contract> wrapper);
 
 
     /**
     /**
+     * 外销合同表分页
+     */
+    Map<String,Object> getHeadStatistic(@Param("ew") IWrapper<Contract> wrapper);
+
+    /**
      * 利润预算表
      * 利润预算表
      */
      */
     Page<ContractBudgetVo> getProfitBudgetPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contract> wrapper);
     Page<ContractBudgetVo> getProfitBudgetPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contract> wrapper);

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

@@ -38,6 +38,11 @@ public interface ContractService extends BaseService<Contract> {
     Page<ContractVo> getPage(ContractSelectDto dto);
     Page<ContractVo> getPage(ContractSelectDto dto);
 
 
     /**
     /**
+     * 外销合同表分页
+     */
+    Map<String,Object> getHeadStatistic(ContractSelectDto dto);
+
+    /**
      * 外销合同表分页 不过滤权限
      * 外销合同表分页 不过滤权限
      */
      */
     Page<ContractVo> getPage1(ContractSelectDto dto);
     Page<ContractVo> getPage1(ContractSelectDto dto);

+ 1 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -318,6 +318,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
     public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.create_time");
         wrapper.orderByDesc("t1.create_time");
+        wrapper.eq("t1.is_delivery_file",1);
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             DynamicDataSourceContextHolder.push(SourceConstant.BASE);
             DynamicDataSourceContextHolder.push(SourceConstant.BASE);
             List<SysUser> list = userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getUserName, dto.getKeyword()));
             List<SysUser> list = userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getUserName, dto.getKeyword()));

+ 49 - 11
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -231,40 +231,64 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     }
     }
 
 
     /**
     /**
-     * 分页
-     *
+     * 头部统计
      * @param dto
      * @param dto
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public Page<ContractVo> getPage(ContractSelectDto dto) {
+    public Map<String, Object> getHeadStatistic(ContractSelectDto dto) {
         IWrapper<Contract> wrapper = getWrapper();
         IWrapper<Contract> wrapper = getWrapper();
+        setContractParam(dto,wrapper);
         SysUser sysUser = UserUtil.getUserInfo();
         SysUser sysUser = UserUtil.getUserInfo();
+        Map<String,Object> map = new HashMap<>();
         if (StringUtils.isEmpty(sysUser.getUserCode())) {//不是业务员看所有
         if (StringUtils.isEmpty(sysUser.getUserCode())) {//不是业务员看所有
-            return pageCommon(dto, wrapper);
+            map = baseMapper.getHeadStatistic(wrapper);
         } else {//是业务员
         } else {//是业务员
             List<Long> authIdList = customerService.getAuthIdList();
             List<Long> authIdList = customerService.getAuthIdList();
             if (authIdList.size() == 0) {
             if (authIdList.size() == 0) {
-                return new Page<>();
+                return map;
             }
             }
             wrapper.in("t1", Contract::getBuyCorporationId, authIdList);
             wrapper.in("t1", Contract::getBuyCorporationId, authIdList);
-            return pageCommon(dto, wrapper);
+            map = baseMapper.getHeadStatistic(wrapper);
+        }
+        if(MapUtils.isNotEmpty(map)){
+            String customers = map.getOrDefault("customerList","").toString();
+            int customerCount = customers.split(",").length;
+            map.put("customerCount",customerCount);
         }
         }
+        map.put("customerList","");
+        return map;
     }
     }
 
 
     /**
     /**
-     * 不过滤权限的分页接口
+     * 分页
+     *
+     * @param dto
+     * @return
      */
      */
     @Override
     @Override
-    public Page<ContractVo> getPage1(ContractSelectDto dto) {
+    public Page<ContractVo> getPage(ContractSelectDto dto) {
         IWrapper<Contract> wrapper = getWrapper();
         IWrapper<Contract> wrapper = getWrapper();
-        return pageCommon(dto, wrapper);
+        setContractParam(dto,wrapper);
+        SysUser sysUser = UserUtil.getUserInfo();
+        if (StringUtils.isEmpty(sysUser.getUserCode())) {//不是业务员看所有
+            return pageCommon(dto, wrapper);
+        } else {//是业务员
+            List<Long> authIdList = customerService.getAuthIdList();
+            if (authIdList.size() == 0) {
+                return new Page<>();
+            }
+            wrapper.in("t1", Contract::getBuyCorporationId, authIdList);
+            return pageCommon(dto, wrapper);
+        }
     }
     }
 
 
     /**
     /**
-     * 分页公共代码抽取
+     * 赋值查询参数
+     * @param dto
+     * @param wrapper
      */
      */
-    private Page<ContractVo> pageCommon(ContractSelectDto dto, IWrapper<Contract> wrapper) {
+    private void setContractParam(ContractSelectDto dto,IWrapper<Contract> wrapper){
         wrapper.orderByDesc("t1", Contract::getCreateTime);
         wrapper.orderByDesc("t1", Contract::getCreateTime);
         if (StringUtils.isNotEmpty(dto.getStatus())) {
         if (StringUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("t1", Contract::getStatus, dto.getStatus());
             wrapper.eq("t1", Contract::getStatus, dto.getStatus());
@@ -296,7 +320,21 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
 
         //过滤合同类型
         //过滤合同类型
         wrapper.eq("t1.contract_type", dto.getContractType());
         wrapper.eq("t1.contract_type", dto.getContractType());
+    }
+
+    /**
+     * 不过滤权限的分页接口
+     */
+    @Override
+    public Page<ContractVo> getPage1(ContractSelectDto dto) {
+        IWrapper<Contract> wrapper = getWrapper();
+        return pageCommon(dto, wrapper);
+    }
 
 
+    /**
+     * 分页公共代码抽取
+     */
+    private Page<ContractVo> pageCommon(ContractSelectDto dto, IWrapper<Contract> wrapper) {
         Page<ContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ContractVo> list = page.getRecords();
         List<ContractVo> list = page.getRecords();
         if (CollectionUtils.isNotEmpty(list)) {
         if (CollectionUtils.isNotEmpty(list)) {

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

@@ -23,6 +23,32 @@
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
     </select>
     </select>
 
 
+    <select id="getHeadStatistic" resultType="java.util.Map">
+        SELECT
+            IFNULL( SUM( t1.amountCNY ), 0 ) AS sumAmount,
+            IFNULL( SUM( sumClaimMoney ), 0 ) AS sumClaimMoney,
+            count( 1 ) AS `count`,
+	        GROUP_CONCAT( DISTINCT t1.buy_corporation_id ) AS customerList
+        FROM
+            (SELECT t1.*,
+                    IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) AS amountCNY,
+                    CASE
+                        WHEN ( IFNULL( t1.amount, 0 ) * IFNULL( t1.rate, 0 ) - t1.sumClaimMoney ) &lt;=  0 THEN
+                            20
+                        WHEN t1.sumClaimMoney = 0 THEN
+                            0
+                        ELSE 10
+                        END                                   AS refundStatusNew
+             FROM (SELECT t1.*,
+                          (SELECT IFNULL(SUM(IFNULL(cc.money, 0) * IFNULL(arw.rate, 1)), 0)
+                           FROM claim_contract cc
+                                    left join claim c on cc.claim_id = c.id
+                                    LEFT JOIN bytesailing_account.account_running_water arw on c.business_id = arw.id
+                           WHERE cc.contract_id = t1.id) AS sumClaimMoney
+                   FROM contract t1) t1) t1
+            ${ew.customSqlSegment}
+    </select>
+
     <select id="getProfitClearingPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
     <select id="getProfitClearingPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
         SELECT t1.id AS contractId,
         SELECT t1.id AS contractId,
                t1.*
                t1.*