24282 2 жил өмнө
parent
commit
b2f2fce3b7

+ 11 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/achievements/controller/AchievementsCommissionController.java

@@ -67,6 +67,17 @@ public class AchievementsCommissionController extends BladeController {
     }
 
     /**
+     * 列表
+     *
+     * @param achievementsCommission 业绩提成表实体类
+     * @return
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody AchievementsCommission achievementsCommission) {
+        return R.status(achievementsCommissionService.updateById(achievementsCommission));
+    }
+
+    /**
      * 详情
      *
      * @param entity 查询条件

+ 5 - 3
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/achievements/service/impl/AchievementsCommissionServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package com.fjhx.achievements.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -96,12 +97,13 @@ public class AchievementsCommissionServiceImpl extends BasicsServiceImpl<Achieve
         wrapper.lambda().eq(AchievementsCommission::getTenantId, AuthUtil.getTenantId());
         wrapper.lambda().eq(Func.isNotEmpty(condition.get("userId")), AchievementsCommission::getUserId, condition.get("userId").toString());
         wrapper.apply(Func.isNotEmpty(condition.get("year")), "DATE_FORMAT(create_time, '%Y') = '" + condition.get("year") + "'");
+        wrapper.lambda().eq(ObjectUtil.isNotEmpty(condition.get("complete")), AchievementsCommission::getComplete, condition.get("complete"));
 
-        //用户ID
+        // 用户ID
         String userId = AuthUtil.getUserIdStr();
-        //角色ID串
+        // 角色ID串
         String[] roleIdArr = AuthUtil.getUserRoleId().split(",");
-        //如果是总经理和出纳,则查看所有数据
+        // 如果是总经理和出纳,则查看所有数据
         if (StringUtils.containsAny(String.valueOf(RoleConstant.RoleType.GENERAL_MANAGER), roleIdArr) || StringUtils.containsAny(String.valueOf(RoleConstant.RoleType.FINANCIAL_DIRECTOR), roleIdArr)) {
             userId = null;
         }

+ 31 - 26
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PackingBillPdfServiceImpl.java

@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -150,23 +151,23 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
      * @return
      */
     private Map<Integer, List<JSONObject>> getPackingProduct(BillProve billProve) {
-        //通过批次号查询装箱产品
+        // 通过批次号查询装箱产品
         List<ShipmentPackingProduct> packingProducts = iShipmentPackingProductService.getByBatchCode(billProve.getTenantId(), billProve.getBatchCode());
         if (CollectionUtils.isEmpty(packingProducts)) {
             return new HashMap<>();
         }
         Map<String, List<ShipmentPackingProduct>> map = new HashMap<>();
-        //按照箱子id分组
+        // 按照箱子id分组
         Map<String, List<ShipmentPackingProduct>> collect = packingProducts.stream().collect(Collectors.groupingBy(ShipmentPackingProduct::getShipmentPackingId));
         for (Map.Entry<String, List<ShipmentPackingProduct>> entry : collect.entrySet()) {
             List<ShipmentPackingProduct> value = entry.getValue();
-            //按照产品id排序,避免不同箱子相同产品、数量顺序不一样
+            // 按照产品id排序,避免不同箱子相同产品、数量顺序不一样
             value = value.stream().sorted(Comparator.comparing(ShipmentPackingProduct::getProductId)).collect(Collectors.toList());
 
-            //这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
+            // 这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
             String key = "";
             if (StringUtil.equalsIgnoreCase(AuthUtil.getTenantId(), "GOLDSUN")) {
-                //装箱尺寸
+                // 装箱尺寸
                 Double packagLong = 0.00;
                 Double packagWide = 0.00;
                 Double packagHigh = 0.00;
@@ -184,20 +185,20 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
                 }
 
                 String finalOverallDimensions = overallDimensions;
-                //这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
+                // 这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
                 key = value.stream().map(obj -> obj.getProductId() + "-" + obj.getQuantity() + "-" + finalOverallDimensions).distinct().collect(Collectors.joining(","));
             } else {
-                //这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
+                // 这个箱子所有的产品、数量key,key=产品id-数量(id-10,id-20,id-30),多个产品","分割
                 key = value.stream().map(obj -> obj.getProductId() + "-" + obj.getQuantity()).distinct().collect(Collectors.joining(","));
             }
 
-            //根据key从map中获取是否存在
+            // 根据key从map中获取是否存在
             List<ShipmentPackingProduct> list = map.get(key);
-            if (list == null || list.size() <= 0) {
-                //不存在,存入
+            if (list == null || list.size() == 0) {
+                // 不存在,存入
                 map.put(key, value);
             } else {
-                //箱子的产品+数量完全相同存放在一起
+                // 箱子的产品+数量完全相同存放在一起
                 list.addAll(value);
             }
         }
@@ -210,26 +211,30 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
             JSONObject jsonObject = new JSONObject();
             List<JSONObject> values = new ArrayList<>();
 
-            //根据产品id-数量去重
-            ArrayList<ShipmentPackingProduct> products = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(obj -> obj.getProductId() + "-" + obj.getQuantity()))), ArrayList::new));
+            // 根据产品id-数量去重
+            ArrayList<ShipmentPackingProduct> products = list.stream()
+                    .collect(Collectors.collectingAndThen(
+                            Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(obj -> obj.getProductId() + "-" + obj.getQuantity()))),
+                            ArrayList::new)
+                    );
 
-            //总箱数,根据箱子id去重
+            // 总箱数,根据箱子id去重
             // long boxTotal = list.stream().map(ShipmentPackingProduct::getShipmentPackingId).distinct().count();
             ArrayList<ShipmentPackingProduct> box = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(obj -> obj.getShipmentPackingId()))), ArrayList::new));
             long boxTotal = box.stream().filter(obj -> obj.getTotalBoxes() != null).mapToInt(ShipmentPackingProduct::getTotalBoxes).sum();
             jsonObject.put("boxTotal", boxTotal);
 
-            //总数量
+            // 总数量
             Integer allQuantity = 0;
-            //装箱尺寸
+            // 装箱尺寸
             Double packagLong = 0.00;
             Double packagWide = 0.00;
             Double packagHigh = 0.00;
             for (ShipmentPackingProduct product : products) {
                 if (boxTotal > 0) {
-                    //产品总数量=·装箱数量*箱数
-                    Long totalNum = product.getQuantity() * boxTotal;
-                    product.setTotalNum(totalNum.intValue());
+                    // 产品总数量=·装箱数量*箱数
+                    long totalNum = product.getQuantity() * boxTotal;
+                    product.setTotalNum((int) totalNum);
                 } else {
                     product.setTotalNum(0);
                 }
@@ -255,7 +260,7 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
             }
             //保留2位小数
             BigDecimal gw = new BigDecimal(grossWeight);
-            gw = gw.setScale(2, BigDecimal.ROUND_HALF_UP);
+            gw = gw.setScale(2, RoundingMode.HALF_UP);
             jsonObject.put("grossWeight", gw.toPlainString());
 
             //产品总净重
@@ -266,22 +271,22 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
             }
             //保留2位小数
             BigDecimal nw = new BigDecimal(netWeight);
-            nw = nw.setScale(2, BigDecimal.ROUND_HALF_UP);
+            nw = nw.setScale(2, RoundingMode.HALF_UP);
             jsonObject.put("netWeight", nw.toPlainString());
 
             //产品总体积
-            BigDecimal b1 = new BigDecimal(0.00);
+            BigDecimal b1 = new BigDecimal("0.00");
 //            double volume = products.stream().filter(obj -> obj.getVolume() != null).mapToDouble(ShipmentPackingProduct::getVolume).sum();
-            double volume = products.stream().filter(obj -> obj.getVolume() != null).map(obj -> obj.getVolume()).collect(Collectors.toList()).get(0);
+            double volume = products.stream().map(ShipmentPackingProduct::getVolume).filter(Objects::nonNull).collect(Collectors.toList()).get(0);
             if (volume > 0) {
                 BigDecimal volumeBig = new BigDecimal(volume);
                 //乘以总箱数
                 volumeBig = volumeBig.multiply(new BigDecimal(boxTotal));
-                b1 = volumeBig.divide(new BigDecimal(1000000));
+                b1 = volumeBig.divide(new BigDecimal("1000000"));
                 //保留2位数
-                b1 = b1.setScale(3, BigDecimal.ROUND_HALF_UP);
+                b1 = b1.setScale(3, RoundingMode.HALF_UP);
                 if (b1.doubleValue() <= 0) {
-                    b1 = new BigDecimal(0.00);
+                    b1 = new BigDecimal("0.00");
                 }
             }
             jsonObject.put("volume", b1.toPlainString());

+ 12 - 2
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/shipment/mapper/ShipmentPackingProductMapper.xml

@@ -45,6 +45,10 @@
         <result column="box_high" property="boxHigh"/>
         <result column="product_model" property="productModel"/>
         <result column="product_model_chinese" property="productModelChinese"/>
+
+        <result column="product_main_img" property="productMainImg"/>
+        <result column="purchaseContractCode" property="purchaseContractCode"/>
+        <result column="supplyName" property="supplyName"/>
     </resultMap>
 
     <select id="getByShipmentPackingIds" resultMap="shipmentPackingProductResultMap">
@@ -154,7 +158,7 @@
     </delete>
 
     <select id="getByBatchCode" resultMap="shipmentPackingProductResultMap">
-        SELECT
+        SELECT DISTINCT
             t2.id,
             t2.shipment_packing_id,
             t2.contract_product_id,
@@ -191,11 +195,17 @@
             t1.total_boxes,
             t1.box_length,
             t1.box_width,
-            t1.box_high
+            t1.box_high,
+
+            t2.product_main_img,
+            tepc.code               purchaseContractCode,
+            tepc.supply_name        supplyName
         FROM
             t_erp_shipment_packing t1
         INNER JOIN t_erp_shipment_packing_product t2 ON t2.shipment_packing_id = t1.id
         LEFT JOIN t_erp_product t3 ON t2.product_id = t3.id
+        LEFT JOIN t_erp_purchase_contract_product tepcp on tepcp.contract_product_id = t2.contract_product_id
+        LEFT JOIN t_erp_purchase_contract tepc on tepc.id = tepcp.purchase_contract_id
         <where>
             t1.tenant_id = #{tenantId}
             AND t1.batch_code = #{batchCode}

+ 5 - 0
bladex-saas-project/saas-entity/src/main/java/com/fjhx/achievements/entity/AchievementsCommission.java

@@ -211,6 +211,11 @@ public class AchievementsCommission extends BasicsEntity {
     private Integer isEnable;
 
     /**
+     * 1是 0否
+     */
+    private Integer complete;
+
+    /**
      * 货币类型(字典:currency_type)
      */
     @TableField(exist = false)

+ 13 - 0
bladex-saas-project/saas-entity/src/main/java/com/fjhx/shipment/entity/ShipmentPackingProduct.java

@@ -216,4 +216,17 @@ public class ShipmentPackingProduct extends BasicsEntity {
      */
     @TableField(exist = false)
     private String productModelChinese;
+
+    /**
+     * 采购合同编码
+     */
+    @TableField(exist = false)
+    private String purchaseContractCode;
+
+    /**
+     * 供应商名称
+     */
+    @TableField(exist = false)
+    private String supplyName;
+    
 }

+ 6 - 21
bladex-saas-project/saas-mail-grab-write/src/main/java/com/fjhx/mail/mail/service/impl/MailServiceImpl.java

@@ -45,13 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.aggregation.Aggregation;
-import org.springframework.data.mongodb.core.aggregation.AggregationResults;
-import org.springframework.data.mongodb.core.aggregation.GroupOperation;
-import org.springframework.data.mongodb.core.aggregation.MatchOperation;
-import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
-import org.springframework.data.mongodb.core.aggregation.SortOperation;
-import org.springframework.data.mongodb.core.aggregation.TypedAggregation;
+import org.springframework.data.mongodb.core.aggregation.*;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
@@ -59,16 +53,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -515,12 +500,12 @@ public class MailServiceImpl implements IMailService {
                     }
                 }
                 //客户id
-                mailList.setCustomerId(customerIdSet.stream().collect(Collectors.joining(",")));
+                mailList.setCustomerId(String.join(",", customerIdSet));
                 //联系人id
-                mailList.setCustomerContactsId(customerContactsIdSet.stream().collect(Collectors.joining(",")));
+                mailList.setCustomerContactsId(String.join(",", customerContactsIdSet));
                 //联系人名称
-                mailList.setCustomerName(customerNameSet.stream().collect(Collectors.joining(",")));
-                mailList.setCustomerMailbox(customerMailboxSet.stream().collect(Collectors.joining(",")));
+                mailList.setCustomerName(String.join(",", customerNameSet));
+                mailList.setCustomerMailbox(String.join(",", customerMailboxSet));
             }
         }
         return list;