Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

24282 2 gadi atpakaļ
vecāks
revīzija
eed2c73ad2
36 mainītis faili ar 516 papildinājumiem un 78 dzēšanām
  1. 0 1
      hx-common/src/main/java/com/fjhx/common/entity/contract/po/ContractTemplate.java
  2. 7 0
      hx-common/src/main/java/com/fjhx/common/entity/contract/vo/ContractTemplateVo.java
  3. 8 0
      hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java
  4. 1 1
      hx-common/src/main/resources/mapper/contract/ContractTemplateMapper.xml
  5. 41 0
      hx-customer/src/main/java/com/fjhx/customer/entity/customer/dto/CustomerSelectDto.java
  6. 41 7
      hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java
  7. 22 0
      hx-item/src/main/java/com/fjhx/item/entity/product/dto/ProductInfoSelectDto.java
  8. 9 5
      hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java
  9. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java
  10. 4 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java
  11. 1 0
      hx-purchase/src/main/resources/mapper/purchase/PurchaseDetailMapper.xml
  12. 6 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java
  13. 5 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java
  14. 26 21
      hx-sale/src/main/java/com/fjhx/sale/entity/purchase/po/EhsdPurchase.java
  15. 6 1
      hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java
  16. 3 4
      hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseFlow.java
  17. 1 1
      hx-sale/src/main/java/com/fjhx/sale/mapper/purchase/EhsdPurchaseProductMapper.java
  18. 3 3
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java
  19. 39 23
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java
  20. 1 1
      hx-sale/src/main/java/com/fjhx/sale/service/purchase/EhsdPurchaseProductService.java
  21. 1 1
      hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseProductServiceImpl.java
  22. 4 0
      hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml
  23. 6 5
      hx-sale/src/main/resources/mapper/purchase/EhsdPurchaseProductMapper.xml
  24. 4 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/quality/vo/QualityInfoVo.java
  25. 5 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java
  26. 2 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/quality/impl/QualityInfoServiceImpl.java
  27. 1 0
      hx-victoriatourist/src/main/resources/mapper/quality/QualityInfoMapper.xml
  28. 44 0
      hx-wms/src/main/java/com/fjhx/wms/controller/warehouse/WarehouseLocationInfoController.java
  29. 24 0
      hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/dto/WarehouseLocationInfoDto.java
  30. 17 0
      hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/dto/WarehouseLocationInfoSelectDto.java
  31. 42 0
      hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/po/WarehouseLocationInfo.java
  32. 25 0
      hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/vo/WarehouseLocationInfoVo.java
  33. 22 0
      hx-wms/src/main/java/com/fjhx/wms/mapper/warehouse/WarehouseLocationInfoMapper.java
  34. 31 0
      hx-wms/src/main/java/com/fjhx/wms/service/warehouse/WarehouseLocationInfoService.java
  35. 54 0
      hx-wms/src/main/java/com/fjhx/wms/service/warehouse/impl/WarehouseLocationInfoServiceImpl.java
  36. 5 0
      hx-wms/src/main/resources/mapper/warehouse/WarehouseLocationInfoMapper.xml

+ 0 - 1
hx-common/src/main/java/com/fjhx/common/entity/contract/po/ContractTemplate.java

@@ -45,7 +45,6 @@ public class ContractTemplate extends BasePo {
     @NotBlank(message = "联系人电话不能为空")
     private String contactNumber;
 
-
     /**
      * 模板内容
      */

+ 7 - 0
hx-common/src/main/java/com/fjhx/common/entity/contract/vo/ContractTemplateVo.java

@@ -19,4 +19,11 @@ public class ContractTemplateVo extends ContractTemplate {
      */
     private String corporationName;
 
+    /**
+     * 客户电话
+     */
+    private String corporationNumber;
+
+
+
 }

+ 8 - 0
hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java

@@ -26,6 +26,14 @@ public enum CodingRuleEnum {
             getDefaultRule(RuleTypeEnum.CUSTOMER_CODE),
             getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "5")
     )),
+    /**
+     * 外销合同
+     */
+    CONTRACT("contract", "外销合同", Arrays.asList(
+            getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC-"),
+            getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM"),
+            getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
+    )),
 
     ;
 

+ 1 - 1
hx-common/src/main/resources/mapper/contract/ContractTemplateMapper.xml

@@ -7,7 +7,7 @@
                ct.corporation_id,
                ct.contact_name,
                ct.contact_number,
-               ct.corporation_number,
+               c.corporation_number ,
                c.name corporation_name
         from contract_template ct
                  left join corporation c on c.id = ct.corporation_id

+ 41 - 0
hx-customer/src/main/java/com/fjhx/customer/entity/customer/dto/CustomerSelectDto.java

@@ -43,5 +43,46 @@ public class CustomerSelectDto extends BaseSelectDto {
      */
     private Integer statisticsType;
 
+    /**
+     * 国家表id
+     */
+    private Long countryId;
+
+    /**
+     * 省份ID
+     */
+    private Long provinceId;
+
+    /**
+     * 省份名称
+     */
+    private String provinceName;
+
+    /**
+     * 城市id
+     */
+    private Long cityId;
+
+    /**
+     * 城市名称
+     */
+    private String cityName;
+
+
+    /**
+     * 客户代码
+     */
+    private String customerCode;
+
+    /**
+     * 客户名称
+     */
+    private String name;
+
+    /**
+     * 客户标签
+     */
+    private String tag;
+
 
 }

+ 41 - 7
hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java

@@ -31,10 +31,12 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
+import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -70,8 +72,30 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
     public Page<CustomerVo> getPage(CustomerSelectDto dto) {
 //        LambdaQueryWrapper<Customer> wrapper = Wrappers.<Customer>lambdaQuery();
         IWrapper<CustomerVo> wrapper = IWrapper.getWrapper();
+        //客户来源查询
         wrapper.eq("c", Customer::getSource, dto.getSource());
+        //客户类型查询
         wrapper.eq(Customer::getStatus, dto.getStatus());
+        //国家ID查询
+        wrapper.eq(Customer::getCountryId, dto.getCountryId());
+        //省份ID查询
+        wrapper.eq(Customer::getProvinceId,dto.getProvinceId());
+        //城市ID查询
+        wrapper.eq(Customer::getCityId,dto.getCityId());
+        //客户代码
+        wrapper.like(Customer::getCustomerCode,dto.getCustomerCode());
+        //客户名称
+        wrapper.like(Customer::getName,dto.getName());
+
+        //业务员查询
+        wrapper.eq(Customer::getUserId,dto.getName());
+
+        //客户标签查询(多个标签用逗号隔开)
+        if(StringUtils.isNotEmpty(dto.getTag())){
+            List<String> tagList = Arrays.asList(dto.getTag().split(","));
+            tagList.forEach(tag->wrapper.like(Customer::getTag,tag));
+        }
+
         //客户状态(0:公海客户  1:私海客户)(业务员ID为null为公海客户,业务员ID不为null为私海客户)
         if (ObjectUtil.isNotEmpty(dto.getType())) {
             //私海客户查询
@@ -81,10 +105,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
                 wrapper.and(wrapper1 -> wrapper1.isNull("c.user_id").or().eq(Customer::getUserId, ""));
             }
         }
-        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            //查询客户名称或者客户编码
-            wrapper.and(wrapper1 -> wrapper1.like(Customer::getName, dto.getKeyword()).or().eq(Customer::getCode, dto.getKeyword()));
-        }
+
 
         //置顶条件
         List<Long> customerIds = customerTopService.listObject(CustomerTop::getCustomerId, q -> q.eq(CustomerTop::getUserId,
@@ -198,9 +219,22 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
         IWrapper<CustomerVo> wrapper = IWrapper.getWrapper();
         wrapper.eq("c", Customer::getSource, dto.getSource());
         wrapper.eq("c", Customer::getStatus, dto.getStatus());
-        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            //查询客户名称或者客户编码
-            wrapper.and(wrapper1 -> wrapper1.like(Customer::getName, dto.getKeyword()).or().eq(Customer::getCode, dto.getKeyword()));
+        //国家ID查询
+        wrapper.eq(Customer::getCountryId, dto.getCountryId());
+        //省份ID查询
+        wrapper.eq(Customer::getProvinceId,dto.getProvinceId());
+        //城市ID查询
+        wrapper.eq(Customer::getCityId,dto.getCityId());
+        //客户代码
+        wrapper.like(Customer::getCustomerCode,dto.getCustomerCode());
+        //客户名称
+        wrapper.like(Customer::getName,dto.getName());
+        //业务员查询
+        wrapper.eq(Customer::getUserId,dto.getName());
+        //客户标签查询(多个标签用逗号隔开)
+        if(StringUtils.isNotEmpty(dto.getTag())){
+            List<String> tagList = Arrays.asList(dto.getTag().split(","));
+            tagList.forEach(tag->wrapper.like(Customer::getTag,tag));
         }
         //添加权限(自己看自己)
         wrapper.eq(Customer::getUserId, SecurityUtils.getUserId());

+ 22 - 0
hx-item/src/main/java/com/fjhx/item/entity/product/dto/ProductInfoSelectDto.java

@@ -69,4 +69,26 @@ public class ProductInfoSelectDto extends BaseSelectDto {
      * 客户id
      */
     private Long customerId;
+
+    /**
+     * 产品名称
+     */
+    private String name;
+
+    /**
+     * 产品名称
+     */
+    private String englishName;
+
+
+    /**
+     * 自定义编码
+     */
+    private String customCode;
+
+    /**
+     * 条码编号
+     */
+    private String barCode;
+
 }

+ 9 - 5
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -83,11 +83,15 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         wrapper.eq("pi", ProductInfo::getType, dto.getType());
         wrapper.eq("pi", ProductInfo::getDefinition, dto.getDefinition());
         wrapper.eq("pi", ProductInfo::getProductClassifyId, dto.getProductClassifyId());
-        wrapper.keyword(dto,
-                new SqlField("pi", ProductInfo::getName),
-                new SqlField("pi", ProductInfo::getCode),
-                new SqlField("pi", ProductInfo::getCustomCode)
-        );
+        wrapper.like("pi",ProductInfo::getName,dto.getName());
+        wrapper.like("pi",ProductInfo::getCustomCode,dto.getCustomCode());
+        wrapper.like("pi",ProductInfo::getBarCode,dto.getBarCode());
+        wrapper.like("json_unquote(standard_json->'$.englishName')",dto.getEnglishName());
+//        wrapper.keyword(dto,
+//                new SqlField("pi", ProductInfo::getName),
+//                new SqlField("pi", ProductInfo::getCode),
+//                new SqlField("pi", ProductInfo::getCustomCode)
+//        );
         //计算并根据生命周期过滤
         wrapper.eq("IF(DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.growUpDay' ),3,IF( DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.newProductsDay' ), 2, 1 ))", dto.getLifeCycle());
         wrapper.eq("json_unquote( victoriatourist_json -> '$.combination' )", dto.getCombination());

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java

@@ -41,6 +41,11 @@ public class PurchaseDetailVo extends PurchaseDetail {
     private BigDecimal sumAmount;
 
     /**
+     * 总采购金额-货币
+     */
+    private String sumAmountCurrency;
+
+    /**
      * 产品定义
      */
     private Integer productDefinition;

+ 4 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -205,7 +205,10 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
         stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());//采购到货
         //将业务信息设置成采购id和采购编码
         stockWait.setBusinessId(purchase.getId());
-        stockWait.setBusinessCode(purchase.getCode());
+        String victoriatouristJson2 = purchase.getVictoriatouristJson();
+        JSONObject json2 = ObjectUtil.isNotEmpty(victoriatouristJson2) ? JSONObject.parseObject(victoriatouristJson2):new JSONObject();
+//        stockWait.setBusinessCode(purchase.getCode());
+        stockWait.setBusinessCode(json2.getString("contractCode"));
 
         json.put("arrivalId", arrival.getId());
         json.put("arrivalCode", arrival.getCode());

+ 1 - 0
hx-purchase/src/main/resources/mapper/purchase/PurchaseDetailMapper.xml

@@ -40,6 +40,7 @@
         SELECT
             sum( t1.count ) AS sumCount,
             sum( t1.amount ) AS sumAmount,
+            CONCAT( IFNULL( SUM( t1.amount ), 0 ), "-", IFNULL(t2.currency,"¥") ) AS sumAmountCurrency,
             t1.data_resource_id
         FROM
             purchase_detail t1

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

@@ -110,6 +110,12 @@ public class Contract extends BasePo {
     private String sellAddress;
 
     /**
+     * 卖方邮编
+     */
+    private String sellPostalCode;
+
+
+    /**
      * 买方公司ID
      *
      * <p>

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java

@@ -33,6 +33,11 @@ public class ContractProductVo extends ContractProduct {
     private String contractVersion;
 
     /**
+     * 产品型号
+     */
+    private String productModel;
+
+    /**
      * 转生产数量
      */
     private BigDecimal productQuantity;

+ 26 - 21
hx-sale/src/main/java/com/fjhx/sale/entity/purchase/po/EhsdPurchase.java

@@ -51,32 +51,17 @@ public class EhsdPurchase extends BasePo {
     /**
      * 卖方国家表id
      */
-    private String sellCountryId;
+    private Long sellCountryId;
 
     /**
      * 卖方省份id
      */
-    private String sellProvinceId;
+    private Long sellProvinceId;
 
     /**
      * 卖方城市id
      */
-    private String sellCityId;
-
-    /**
-     * 卖方国家表名称
-     */
-    private String sellCountryName;
-
-    /**
-     * 卖方省份名称
-     */
-    private String sellProvinceName;
-
-    /**
-     * 卖方城市名称
-     */
-    private String sellCityName;
+    private Long sellCityId;
 
     /**
      * 卖方详细地址
@@ -101,17 +86,32 @@ public class EhsdPurchase extends BasePo {
     /**
      * 买方国家表id
      */
-    private Long buyCountryId;
+    private String buyCountryId;
 
     /**
      * 买方省份id
      */
-    private Long buyProvinceId;
+    private String buyProvinceId;
 
     /**
      * 买方城市id
      */
-    private Long buyCityId;
+    private String buyCityId;
+
+    /**
+     * 买方国家表名称
+     */
+    private String buyCountryName;
+
+    /**
+     * 买方省份名称
+     */
+    private String buyProvinceName;
+
+    /**
+     * 买方城市名称
+     */
+    private String buyCityName;
 
     /**
      * 买方详细地址
@@ -139,6 +139,11 @@ public class EhsdPurchase extends BasePo {
     private BigDecimal amount;
 
     /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
      * 条款内容
      */
     private String remark;

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

@@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.FlowStatusEnum;
+import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
@@ -25,6 +27,7 @@ import com.fjhx.sale.service.contract.ContractShipmentService;
 import com.fjhx.sale.util.code.CodeEnum;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -39,6 +42,8 @@ import java.util.List;
 @Component
 public class ContractFlow extends FlowDelegate {
 
+    @Autowired
+    private CodingRuleService codingRuleService;
 
     @Override
     public String getFlowKey() {
@@ -63,7 +68,7 @@ public class ContractFlow extends FlowDelegate {
         ContractDto contract = submitData.toJavaObject(ContractDto.class);
         //赋值城市省份信息
         CustomizeAreaUtil.setAreaId(contract);
-        contract.setCode(CodeEnum.CONTRACT.getCode());
+        contract.setCode(codingRuleService.createCode(CodingRuleEnum.CONTRACT.getKey(),contract.getBuyCorporationId()));
         contract.setUserName(SecurityUtils.getUsername());
         contract.setStatus(FlowStatusEnum.UNDER_REVIEW.getKey());
         contract.setBuyCityId(contract.getCityId());

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

@@ -25,7 +25,6 @@ import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -81,9 +80,9 @@ public class EhsdPurchaseFlow extends FlowDelegate {
         EhsdPurchaseDto purchase = submitData.toJavaObject(EhsdPurchaseDto.class);
         //赋值城市省份信息
         CustomizeAreaUtil.setAreaId(purchase);
-        purchase.setBuyCityId(purchase.getCityId());
-        purchase.setBuyCountryId(purchase.getCountryId());
-        purchase.setBuyProvinceId(purchase.getProvinceId());
+        purchase.setSellCityId(purchase.getCityId());
+        purchase.setSellCountryId(purchase.getCountryId());
+        purchase.setSellProvinceId(purchase.getProvinceId());
 
         purchase.setCode(CodeEnum.PURCHASE.getCode());
         purchase.setStatus(PurchaseStatusEnum.UNDER_REVIEW.getKey());

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/mapper/purchase/EhsdPurchaseProductMapper.java

@@ -32,5 +32,5 @@ public interface EhsdPurchaseProductMapper extends BaseMapper<EhsdPurchaseProduc
      * @param contractIds
      * @return
      */
-    Map<Long, BigDecimal> getGroupSumAmount(List<Long> contractIds);
+    Map<Long, String> getGroupSumAmount(List<Long> contractIds);
 }

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

@@ -135,8 +135,8 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         if(StringUtils.isNotEmpty(dto.getKeyword())){
             wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
         }
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.in("t1.id",Arrays.asList(dto.getIds()));
+        if(StringUtils.isNotEmpty(dto.getIds())){
+            wrapper.in("t1.id",Arrays.asList(dto.getIds().split(",")));
         }
         Page<ContractProductVo> page = this.baseMapper.getEHSDPage(dto.getPage(), wrapper);
         List<ContractProductVo> list = page.getRecords();
@@ -146,7 +146,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
                 item.setProductCode(product.getCode());
                 item.setProductUnit(product.getUnit());
                 item.setProductType(product.getType());
-                item.setProductName(product.getName());
+//                item.setProductName(product.getName());
                 item.setProductSpec(product.getSpec());
                 item.setProductCategoryId(product.getProductClassifyId());
             });

+ 39 - 23
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -188,46 +188,62 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         List<ContractBudgetVo> list = page.getRecords();
         if(CollectionUtils.isNotEmpty(list)){
             List<Long> contractIds = list.stream().map(ContractBudgetVo::getContractId).collect(Collectors.toList());
-            Map<Long,BigDecimal> ehsdAmountMap = ehsdPurchaseProductService.getGroupSumAmount(contractIds);
+            Map<Long,String> ehsdAmountMap = ehsdPurchaseProductService.getGroupSumAmount(contractIds);
             List<PurchaseDetailVo> otherAmountList = purchaseDetailService.getSumCountInDataResourceIds(contractIds);
-            Map<Long,BigDecimal> otherAmountMap = otherAmountList.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumCount));
+            Map<Long,String> otherAmountMap = otherAmountList.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumAmountCurrency));
             List<CurrencyRate> currencyRateList = currencyRateService.getList();
             Map<String,BigDecimal> currencyRateMap = currencyRateList.stream().collect(Collectors.toMap(CurrencyRate::getType,CurrencyRate::getRate));
             for(ContractBudgetVo v : list){
-                v.setRefundableAmount(BigDecimal.ZERO);//先设置退税金额
+                v.setRefundableAmount(BigDecimal.ZERO);//暂时先设置退税金额为0
                 if(MapUtils.isNotEmpty(ehsdAmountMap)){    //计算EHSD租户应付货款
-                    v.setEhsdSumAmount(ehsdAmountMap.getOrDefault(v.getContractId(),null));
+                    String concatAmountCurrency = ehsdAmountMap.getOrDefault(v.getContractId(),null);
+                    if(StringUtils.isNotEmpty(concatAmountCurrency)){
+                        BigDecimal amount = new BigDecimal(concatAmountCurrency.split("-")[0]);
+                        String currency = concatAmountCurrency.split("-")[1];
+                        BigDecimal rate = currencyRateMap.getOrDefault(currency,BigDecimal.ONE);
+                        v.setEhsdSumAmount(amount.multiply(rate));
+                    }else{
+                        v.setEhsdSumAmount(BigDecimal.ZERO);
+                    }
                 }
                 if(MapUtils.isNotEmpty(otherAmountMap)){  //计算其他租户应付货款
-                    v.setOtherumAmount(otherAmountMap.getOrDefault(v.getContractId(),null));
+                    String concatAmountCurrency = otherAmountMap.getOrDefault(v.getContractId(),null);
+                    if(StringUtils.isNotEmpty(concatAmountCurrency)){
+                        BigDecimal amount = new BigDecimal(concatAmountCurrency.split("-")[0]);
+                        String currency = concatAmountCurrency.split("-")[1];
+                        BigDecimal rate = currencyRateMap.getOrDefault(currency,BigDecimal.ONE);
+                        v.setOtherumAmount(amount.multiply(rate));
+                    }else{
+                        v.setOtherumAmount(BigDecimal.ZERO);
+                    }
                 }
                 if(StringUtils.isNotEmpty(v.getCurrencyRateJson())){//如果此条合同有汇率了
                     Map<String,Object> map = JSON.parseObject(v.getCurrencyRateJson());
                     //计算收入总计=合同金额(转人民币)+应退税金额(转人民币)
                     v.setIncomeAmount(v.getAmount().multiply(new BigDecimal(map.getOrDefault(v.getCurrency(), BigDecimal.ONE).toString())).add(v.getRefundableAmount()));
                     //计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
-                    v.setExpenditureAmount(v.getTrailerFee().multiply(new BigDecimal(map.getOrDefault(v.getTrailerFeeCurrency(),BigDecimal.ONE).toString())).add
-                            (v.getCustomsFee().multiply(new BigDecimal(map.getOrDefault(v.getCustomsFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getAgencyFee().multiply(new BigDecimal(map.getOrDefault(v.getAgencyFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getPortMixedFee().multiply(new BigDecimal(map.getOrDefault(v.getPortMixedFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getInspectionRedPack().multiply(new BigDecimal(map.getOrDefault(v.getInspectionRedPackCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getCommission().multiply(new BigDecimal(map.getOrDefault(v.getCommissionCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getOther().multiply(new BigDecimal(map.getOrDefault(v.getOtherCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getEhsdSumAmount()).add
-                            (v.getOtherumAmount()));
+                    v.setExpenditureAmount(v.getTrailerFee()==null?BigDecimal.ZERO:v.getTrailerFee().multiply(new BigDecimal(map.getOrDefault(v.getTrailerFeeCurrency(),BigDecimal.ONE).toString())).add
+                            (v.getCustomsFee()==null?BigDecimal.ZERO:v.getCustomsFee().multiply(new BigDecimal(map.getOrDefault(v.getCustomsFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getAgencyFee()==null?BigDecimal.ZERO:v.getAgencyFee().multiply(new BigDecimal(map.getOrDefault(v.getAgencyFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getPortMixedFee()==null?BigDecimal.ZERO:v.getPortMixedFee().multiply(new BigDecimal(map.getOrDefault(v.getPortMixedFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getInspectionRedPack()==null?BigDecimal.ZERO:v.getInspectionRedPack().multiply(new BigDecimal(map.getOrDefault(v.getInspectionRedPackCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getCommission()==null?BigDecimal.ZERO:v.getCommission().multiply(new BigDecimal(map.getOrDefault(v.getCommissionCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getOther()==null?BigDecimal.ZERO:v.getOther().multiply(new BigDecimal(map.getOrDefault(v.getOtherCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getEhsdSumAmount()==null?BigDecimal.ZERO:v.getEhsdSumAmount()).add
+                            (v.getOtherumAmount()==null?BigDecimal.ZERO:v.getOtherumAmount()));
                 }else{//没有汇率取默认汇率
                     //计算收入总计=合同金额(转人民币)+应退税金额(转人民币)
                     v.setIncomeAmount(v.getAmount().multiply(currencyRateMap.getOrDefault(v.getContractId(),new BigDecimal("1"))).add(v.getRefundableAmount()));
                     //计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
-                    v.setExpenditureAmount(v.getTrailerFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getTrailerFeeCurrency(),BigDecimal.ONE).toString())).add
-                            (v.getCustomsFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getCustomsFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getAgencyFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getAgencyFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getPortMixedFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getPortMixedFeeCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getInspectionRedPack().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getInspectionRedPackCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getCommission().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getCommissionCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getOther().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getOtherCurrency(),BigDecimal.ONE).toString()))).add
-                            (v.getEhsdSumAmount()).add
-                            (v.getOtherumAmount()));
+                    v.setExpenditureAmount(v.getTrailerFee()==null?BigDecimal.ZERO:v.getTrailerFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getTrailerFeeCurrency(),BigDecimal.ONE).toString())).add
+                            (v.getCustomsFee()==null?BigDecimal.ZERO:v.getCustomsFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getCustomsFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getAgencyFee()==null?BigDecimal.ZERO:v.getAgencyFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getAgencyFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getPortMixedFee()==null?BigDecimal.ZERO:v.getPortMixedFee().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getPortMixedFeeCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getInspectionRedPack()==null?BigDecimal.ZERO:v.getInspectionRedPack().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getInspectionRedPackCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getCommission()==null?BigDecimal.ZERO:v.getCommission().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getCommissionCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getOther()==null?BigDecimal.ZERO:v.getOther().multiply(new BigDecimal(currencyRateMap.getOrDefault(v.getOtherCurrency(),BigDecimal.ONE).toString()))).add
+                            (v.getEhsdSumAmount()==null?BigDecimal.ZERO:v.getEhsdSumAmount()).add
+                            (v.getOtherumAmount()==null?BigDecimal.ZERO:v.getOtherumAmount()));
                 }
                 //计算毛利 收入-支出
                 v.setGross(v.getExpenditureAmount().subtract(v.getIncomeAmount()));

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/service/purchase/EhsdPurchaseProductService.java

@@ -52,5 +52,5 @@ public interface EhsdPurchaseProductService extends BaseService<EhsdPurchaseProd
      * @param contractIds
      * @return
      */
-    Map<Long, BigDecimal> getGroupSumAmount(List<Long> contractIds);
+    Map<Long, String> getGroupSumAmount(List<Long> contractIds);
 }

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseProductServiceImpl.java

@@ -64,7 +64,7 @@ public class EhsdPurchaseProductServiceImpl extends ServiceImpl<EhsdPurchaseProd
      * @return
      */
     @Override
-    public Map<Long, BigDecimal> getGroupSumAmount(List<Long> contractIds) {
+    public Map<Long, String> getGroupSumAmount(List<Long> contractIds) {
         return baseMapper.getGroupSumAmount(contractIds);
     }
 

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

@@ -25,6 +25,8 @@
                     t1.create_time AS ct,
                     "外销合同" AS orderType,
                     t1.id,
+                    t1.product_model AS productModel,
+                    t1.product_name AS productName,
                     t1.contract_id,
                     t1.product_id,
                     t2.`code` AS `contractCode`,
@@ -43,6 +45,8 @@
                     t1.create_time AS ct,
                     "样品单" AS orderType,
                     t1.id,
+                    t1.product_model AS productModel,
+                    t1.product_name AS productName,
                     t1.sample_id,
                     t1.product_id,
                     t2.`code` AS `contractCode`,

+ 6 - 5
hx-sale/src/main/resources/mapper/purchase/EhsdPurchaseProductMapper.xml

@@ -23,18 +23,19 @@
 
     <select id="getGroupSumAmount" resultType="java.util.Map">
         SELECT
-            SUM(amount) ,
-            data_resource_id
+            CONCAT( IFNULL( SUM( t1.amount ), 0 ), "-", IFNULL(t2.currency,"¥") ),
+            t1.data_resource_id
         FROM
-            ehsd_purchase_product
+            ehsd_purchase_product t1
+        LEFT JOIN ehsd_purchase t2 ON t1.purchase_id = t2.id
         WHERE
         t2.`status` &gt;= 30
         AND t2.`status` &lt; 88
         <if test="contractIds neq null and contractIds.size() > 0">
-            <foreach collection="contractIds" item="contractId" open="AND data_resource_id IN (" separator="," close=")">
+            <foreach collection="contractIds" item="contractId" open="AND t1.data_resource_id IN (" separator="," close=")">
                 #{contractId}
             </foreach>
         </if>
-        GROUP BY data_resource_id
+        GROUP BY t1.data_resource_id
     </select>
 </mapper>

+ 4 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/quality/vo/QualityInfoVo.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
-import java.util.List;
 
 /**
  * 质检列表查询返回值实体
@@ -72,6 +71,10 @@ public class QualityInfoVo extends QualityInfo {
      */
     private Integer qualityStatus;
 
+    /**
+     * 合同单号
+     */
+    private String contractCode;
 
 
 }

+ 5 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/deliver/impl/DeliverGoodsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fjhx.victoriatourist.service.deliver.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -132,7 +133,10 @@ public class DeliverGoodsServiceImpl extends ServiceImpl<DeliverGoodsMapper, Del
         //创建物流信息
         LogisticsInfos logisticsInfos = new LogisticsInfos();
         logisticsInfos.setBusinessId(deliverGoodsDto.getId());//设置业务id为发货id
-        logisticsInfos.setBusinessCode(purchase.getCode());//设置采购单号为业务单号
+//        logisticsInfos.setBusinessCode(purchase.getCode());//设置采购单号为业务单号
+        String victoriatouristJson2 = purchase.getVictoriatouristJson();
+        JSONObject json2 = ObjectUtil.isNotEmpty(victoriatouristJson2) ? JSONObject.parseObject(victoriatouristJson2):new JSONObject();
+        logisticsInfos.setBusinessCode(json2.getString("contractCode"));
         logisticsInfos.setBusinessType(1);//采购到货
         logisticsInfos.setStatus(0);
         logisticsInfos.setInStockStatus(10);

+ 2 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/quality/impl/QualityInfoServiceImpl.java

@@ -177,6 +177,8 @@ public class QualityInfoServiceImpl extends ServiceImpl<QualityInfoMapper, Quali
             }
         }
 
+        this.save(qualityInfoDto);
+
         if (qFlag != 0) {
             AbnormalInfo abnormalInfo = new AbnormalInfo();
             abnormalInfo.setStatus(0);
@@ -188,7 +190,6 @@ public class QualityInfoServiceImpl extends ServiceImpl<QualityInfoMapper, Quali
             abnormalInfoService.save(abnormalInfo);
         }
 
-        this.save(qualityInfoDto);
         arrivalStockRecordsService.updateById(arrivalStockRecords);
         arrivalStockRecordsDetailsService.updateBatchById(arrivalStockRecordsDetailsList);
 

+ 1 - 0
hx-victoriatourist/src/main/resources/mapper/quality/QualityInfoMapper.xml

@@ -26,6 +26,7 @@
             p.`code` purchaseCode,
             p.supply_id,
             json_unquote( sw.victoriatourist_json -> '$.deliverGoodsId' ) deliverGoodsId,
+            json_unquote( p.victoriatourist_json -> '$.contractCode' ) contractCode,
             dg.logistics_company_code,
             dg.`code` logisticsCode,
             p.create_user purchaseUserId,

+ 44 - 0
hx-wms/src/main/java/com/fjhx/wms/controller/warehouse/WarehouseLocationInfoController.java

@@ -0,0 +1,44 @@
+package com.fjhx.wms.controller.warehouse;
+
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import org.springframework.web.bind.annotation.*;
+import com.fjhx.wms.entity.warehouse.vo.WarehouseLocationInfoVo;
+import com.fjhx.wms.entity.warehouse.dto.WarehouseLocationInfoSelectDto;
+import com.fjhx.wms.entity.warehouse.dto.WarehouseLocationInfoDto;
+import com.fjhx.wms.service.warehouse.WarehouseLocationInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 仓库库位信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@RestController
+@RequestMapping("/warehouseLocationInfo")
+public class WarehouseLocationInfoController {
+
+    @Autowired
+    private WarehouseLocationInfoService warehouseLocationInfoService;
+
+    /**
+     * 仓库库位信息列表
+     */
+    @PostMapping("/list")
+    public List<WarehouseLocationInfoVo> list(@RequestBody WarehouseLocationInfoDto dto) {
+        return warehouseLocationInfoService.getList(dto);
+    }
+
+    /**
+     * 仓库库位信息编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody WarehouseLocationInfoDto warehouseLocationInfoDto) {
+        warehouseLocationInfoService.edit(warehouseLocationInfoDto);
+    }
+
+}

+ 24 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/dto/WarehouseLocationInfoDto.java

@@ -0,0 +1,24 @@
+package com.fjhx.wms.entity.warehouse.dto;
+
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 仓库库位信息新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@Getter
+@Setter
+public class WarehouseLocationInfoDto extends WarehouseLocationInfo {
+
+    /**
+     * 库位信息列表
+     */
+    List<WarehouseLocationInfo> warehouseLocationInfoList;
+
+}

+ 17 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/dto/WarehouseLocationInfoSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.wms.entity.warehouse.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 仓库库位信息列表查询入参实体
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@Getter
+@Setter
+public class WarehouseLocationInfoSelectDto extends BaseSelectDto {
+
+}

+ 42 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/po/WarehouseLocationInfo.java

@@ -0,0 +1,42 @@
+package com.fjhx.wms.entity.warehouse.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 仓库库位信息
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@Getter
+@Setter
+@TableName("warehouse_location_info")
+public class WarehouseLocationInfo extends BasePo {
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 库位编号
+     */
+    private String code;
+
+    /**
+     * 库位名称
+     */
+    private String name;
+
+    /**
+     * 产品id列表逗号分隔
+     */
+    private String productIds;
+
+}

+ 25 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/vo/WarehouseLocationInfoVo.java

@@ -0,0 +1,25 @@
+package com.fjhx.wms.entity.warehouse.vo;
+
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 仓库库位信息列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@Getter
+@Setter
+public class WarehouseLocationInfoVo extends WarehouseLocationInfo {
+
+    /**
+     * 产品列表
+     */
+    List<ProductInfo> productInfoList;
+
+}

+ 22 - 0
hx-wms/src/main/java/com/fjhx/wms/mapper/warehouse/WarehouseLocationInfoMapper.java

@@ -0,0 +1,22 @@
+package com.fjhx.wms.mapper.warehouse;
+
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.wms.entity.warehouse.vo.WarehouseLocationInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 仓库库位信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+public interface WarehouseLocationInfoMapper extends BaseMapper<WarehouseLocationInfo> {
+
+
+}

+ 31 - 0
hx-wms/src/main/java/com/fjhx/wms/service/warehouse/WarehouseLocationInfoService.java

@@ -0,0 +1,31 @@
+package com.fjhx.wms.service.warehouse;
+
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import com.ruoyi.common.core.service.BaseService;
+import com.fjhx.wms.entity.warehouse.vo.WarehouseLocationInfoVo;
+import com.fjhx.wms.entity.warehouse.dto.WarehouseLocationInfoSelectDto;
+import com.fjhx.wms.entity.warehouse.dto.WarehouseLocationInfoDto;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 仓库库位信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+public interface WarehouseLocationInfoService extends BaseService<WarehouseLocationInfo> {
+
+    /**
+     * 仓库库位信息列表
+     */
+    List<WarehouseLocationInfoVo> getList(WarehouseLocationInfoDto dto);
+
+    /**
+     * 仓库库位信息编辑
+     */
+    void edit(WarehouseLocationInfoDto warehouseLocationInfoDto);
+
+}

+ 54 - 0
hx-wms/src/main/java/com/fjhx/wms/service/warehouse/impl/WarehouseLocationInfoServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.wms.service.warehouse.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.wms.entity.warehouse.dto.WarehouseLocationInfoDto;
+import com.fjhx.wms.entity.warehouse.po.WarehouseLocationInfo;
+import com.fjhx.wms.entity.warehouse.vo.WarehouseLocationInfoVo;
+import com.fjhx.wms.mapper.warehouse.WarehouseLocationInfoMapper;
+import com.fjhx.wms.service.warehouse.WarehouseLocationInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 仓库库位信息 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-05-18
+ */
+@Service
+public class WarehouseLocationInfoServiceImpl extends ServiceImpl<WarehouseLocationInfoMapper, WarehouseLocationInfo> implements WarehouseLocationInfoService {
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    @Override
+    public List<WarehouseLocationInfoVo> getList(WarehouseLocationInfoDto dto) {
+        List<WarehouseLocationInfo> list = list(q -> q.eq(WarehouseLocationInfo::getWarehouseId, dto.getWarehouseId()));
+        List<WarehouseLocationInfoVo> warehouseLocationInfoVos = BeanUtil.copyToList(list, WarehouseLocationInfoVo.class);
+        for (WarehouseLocationInfoVo warehouseLocationInfoVo : warehouseLocationInfoVos) {
+            String productIds = warehouseLocationInfoVo.getProductIds();
+            if (ObjectUtil.isNotEmpty(productIds)) {
+                String[] split = productIds.split(",");
+                List<ProductInfo> productInfoList = productInfoService.list(q -> q.in(ProductInfo::getId, split));
+                warehouseLocationInfoVo.setProductInfoList(productInfoList);
+            }
+        }
+        return warehouseLocationInfoVos;
+    }
+
+    @Override
+    public void edit(WarehouseLocationInfoDto warehouseLocationInfoDto) {
+        List<WarehouseLocationInfo> warehouseLocationInfoList = warehouseLocationInfoDto.getWarehouseLocationInfoList();
+        warehouseLocationInfoList.forEach(item -> item.setWarehouseId(warehouseLocationInfoDto.getWarehouseId()));
+        this.editLinked(warehouseLocationInfoList, WarehouseLocationInfo::getWarehouseId, warehouseLocationInfoDto.getWarehouseId());
+    }
+
+}

+ 5 - 0
hx-wms/src/main/resources/mapper/warehouse/WarehouseLocationInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.wms.mapper.warehouse.WarehouseLocationInfoMapper">
+
+</mapper>