Преглед изворни кода

Merge remote-tracking branch 'origin/master'

24282 пре 2 година
родитељ
комит
4173956675
29 измењених фајлова са 413 додато и 40 уклоњено
  1. 11 11
      code/src/test/java/DingDingDataSource.java
  2. 10 0
      hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java
  3. 10 0
      hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterSelectDto.java
  4. 7 0
      hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java
  5. 7 0
      hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java
  6. 23 3
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java
  7. 5 1
      hx-admin/src/main/resources/application-dev.yml
  8. 2 2
      hx-common/src/main/java/com/fjhx/common/entity/corporation/po/Corporation.java
  9. 1 1
      hx-customer/src/main/resources/mapper/customer/CustomerMapper.xml
  10. 5 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java
  11. 5 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java
  12. 20 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java
  13. 9 0
      hx-supply/src/main/java/com/fjhx/supply/controller/supplier/SupplierInfoController.java
  14. 25 0
      hx-supply/src/main/java/com/fjhx/supply/entity/supplier/dto/SupplierInfoSelectDto.java
  15. 5 0
      hx-supply/src/main/java/com/fjhx/supply/entity/supplier/po/SupplierInfo.java
  16. 8 1
      hx-supply/src/main/java/com/fjhx/supply/service/supplier/SupplierInfoService.java
  17. 80 0
      hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java
  18. 15 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderDto.java
  19. 3 3
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrder.java
  20. 5 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfos.java
  21. 39 6
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderServiceImpl.java
  22. 33 6
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderInfoServiceImpl.java
  23. 43 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java
  24. 9 0
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitDetailsDto.java
  25. 5 0
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockWaitDetailsVo.java
  26. 5 0
      hx-wms/src/main/java/com/fjhx/wms/mapper/stock/StockWaitMapper.java
  27. 2 1
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java
  28. 2 1
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java
  29. 19 1
      hx-wms/src/main/resources/mapper/stock/StockWaitMapper.xml

+ 11 - 11
code/src/test/java/DingDingDataSource.java

@@ -2,16 +2,16 @@ import fly.generator.GeneratorApplication;
 
 public class DingDingDataSource {
 
-    public static void main(String[] args) {
-        GeneratorApplication.builder()
-                .url("jdbc:mysql://36.134.91.96:17330/bytesailing_dingding?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true")
-                .username("fjhx2012mysql")
-                .password("3PN-Mzn#vnP&q6d")
-                .port(9989)
-                .module("hx-dingding")
-                .parent("com.fjhx.dingding")
-                .superServiceClass("com.ruoyi.common.core.service.BaseService")
-                .build();
-    }
+//    public static void main(String[] args) {
+//        GeneratorApplication.builder()
+//                .url("jdbc:mysql://36.134.91.96:17330/bytesailing_dingding?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true")
+//                .username("fjhx2012mysql")
+//                .password("3PN-Mzn#vnP&q6d")
+//                .port(9989)
+//                .module("hx-dingding")
+//                .parent("com.fjhx.dingding")
+//                .superServiceClass("com.ruoyi.common.core.service.BaseService")
+//                .build();
+//    }
 
 }

+ 10 - 0
hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java

@@ -12,6 +12,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.account.service.account.AccountRunningWaterService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -69,4 +71,12 @@ public class AccountRunningWaterController {
         accountRunningWaterService.delete(dto.getId());
     }
 
+    /**
+     * 到账认领统计
+     */
+    @PostMapping("/claimStatistics")
+    public List<AccountRunningWater> claimStatistics(@RequestBody BaseSelectDto dto) {
+        return accountRunningWaterService.claimStatistics(dto);
+    }
+
 }

+ 10 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterSelectDto.java

@@ -60,4 +60,14 @@ public class AccountRunningWaterSelectDto extends BaseSelectDto {
      */
     private BigDecimal endAmount;
 
+    /**
+     * 对方账户名称
+     */
+    private String name;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
 }

+ 7 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java

@@ -1,5 +1,6 @@
 package com.fjhx.account.entity.account.po;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.math.BigDecimal;
@@ -87,4 +88,10 @@ public class AccountRunningWater extends BasePo {
      * 是否认领
      */
     private Integer isClaim;
+
+    /**
+     * 条数
+     */
+    @TableField(exist = false)
+    private Integer count;
 }

+ 7 - 0
hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java

@@ -1,12 +1,15 @@
 package com.fjhx.account.service.account;
 
 import com.fjhx.account.entity.account.po.AccountRunningWater;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.entity.account.dto.AccountRunningWaterSelectDto;
 import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +46,8 @@ public interface AccountRunningWaterService extends BaseService<AccountRunningWa
      */
     void delete(Long id);
 
+    /**
+     * 到账任领统计
+     */
+    List<AccountRunningWater> claimStatistics(BaseSelectDto dto);
 }

+ 23 - 3
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -11,6 +11,7 @@ import com.fjhx.account.service.account.AccountRunningWaterService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.annotation.TenantIgnore;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -22,6 +23,8 @@ import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
 import cn.hutool.core.bean.BeanUtil;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -57,9 +60,13 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginTime()),"arw.create_time",dto.getBeginTime());
         //交易结束金额
         wrapper.ge(ObjectUtil.isNotEmpty(dto.getEndTime()),"arw.create_time",dto.getEndTime());
-//        if (StringUtils.isNotEmpty(dto.getKeyword())) {
-//            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
-//        }
+        //对方账户名称
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getName()),"arw.name",dto.getName());
+        //摘要
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getRemarks()),"arw.name",dto.getRemarks());
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
+        }
         if(ObjectUtil.isNotEmpty(dto.getDataType())&&dto.getDataType()==1){//到账认领数据
             wrapper.eq("arw.received",10);
             wrapper.orderByDesc("arw.is_claim","arw.create_time");
@@ -131,4 +138,17 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         this.removeById(id);
     }
 
+    /**
+     * 到账任领统计
+     */
+    @Override
+    public List<AccountRunningWater> claimStatistics(BaseSelectDto dto) {
+        QueryWrapper<AccountRunningWater> query = Wrappers.query();
+        query.groupBy("is_claim");
+        query.select("is_claim,count(*) count");
+       //到账认领统计
+       return baseMapper.selectList(query);
+
+    }
+
 }

+ 5 - 1
hx-admin/src/main/resources/application-dev.yml

@@ -65,6 +65,10 @@ spring:
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_kd100?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
+#                dingding:
+#                    url: jdbc:mysql://36.134.91.96:17330/bytesailing_dingding?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+#                    username: fjhx2012mysql
+#                    password: 3PN-Mzn#vnP&q6d
                 ehsd:
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_ehsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
@@ -116,4 +120,4 @@ token:
     # 令牌密钥
     secret: abcdefghijklmnopqrstuvwxyz
     # 令牌有效期(默认30分钟)
-    expireTime: 2880
+    expireTime: 2880

+ 2 - 2
hx-common/src/main/java/com/fjhx/common/entity/corporation/po/Corporation.java

@@ -35,7 +35,7 @@ public class Corporation extends BasePo {
     /**
      * 企业类型
      */
-    private Integer type;
+    private String type;
 
     /**
      * 统一信用代码
@@ -67,7 +67,7 @@ public class Corporation extends BasePo {
     /**
      * 纳税人资质
      */
-    private Integer taxpayerQualification;
+    private String taxpayerQualification;
 
     /**
      * 进出口企业代码

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

@@ -2,7 +2,7 @@
 <!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 customer set user_id = #{userId},update_time = now() where id = #{id}
     </update>
     <select id="getList" resultType="com.fjhx.customer.entity.customer.vo.CustomerVo">
         select

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java

@@ -67,4 +67,9 @@ public class ProductionTaskDetail extends BasePo {
      */
     private Integer circulationStatus;
 
+    /**
+     * 接收人id
+     */
+    private Long receivedUserId;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -127,11 +127,16 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
     public void circulation(ProductionTaskDetailDto productionTaskDetailDto) {
         //修改流转状态
         productionTaskDetailDto.setCirculationStatus(1);
+        //赋值接收人id
+        productionTaskDetailDto.setReceivedUserId(productionTaskDetailDto.getReceivedUserId());
         //赋值流转人id
         productionTaskDetailDto.setCirculationUserId(SecurityUtils.getUserId());
         this.updateById(productionTaskDetailDto);
     }
 
+    /**
+     * 完工入库
+     */
     @Override
     public void productStorage(Long id) {
         ProductionTaskDetail productionTaskDetail = getById(id);

+ 20 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -78,7 +78,9 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
 
         // 维多利亚扩展根据到货仓库id过滤
         wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
-        wrapper.eq("json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId());
+        if(ObjectUtil.isNotEmpty(dto.getDeptId())) {
+            wrapper.eq( "json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId().toString());
+        }
         //待采购过滤掉指定状态 例如不要 99 作废
         if (ObjectUtil.isNotEmpty(dto.getNeStatus())) {
             wrapper.notIn("t1", SubscribeDetail::getStatus, dto.getNeStatus().split(","));
@@ -110,6 +112,23 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
             s.setDeptId(json.getLong("deptId"));
         }
 
+        List<Long> subscribeDetailIds = list.stream().map(SubscribeDetail::getId).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(subscribeDetailIds)) {
+            List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
+            Map<Long, List<PurchaseDetail>> purchaseDetailsMap = purchaseDetailsList.stream().collect(Collectors.groupingBy(PurchaseDetail::getSubscribeDetailId));
+            for (SubscribeDetailVo subscribeDetailVo : list) {
+                List<PurchaseDetail> purchaseDetails = purchaseDetailsMap.get(subscribeDetailVo.getId());
+                if (ObjectUtil.isEmpty(purchaseDetails)) {
+                    subscribeDetailVo.setPurchaseCount(BigDecimal.ZERO);
+                    continue;
+                }
+                BigDecimal count = purchaseDetails.stream()
+                        .map(PurchaseDetail::getCount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                subscribeDetailVo.setPurchaseCount(count);
+            }
+        }
+
         return page;
     }
 

+ 9 - 0
hx-supply/src/main/java/com/fjhx/supply/controller/supplier/SupplierInfoController.java

@@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 
 /**
  * <p>
@@ -84,4 +86,11 @@ public class SupplierInfoController {
         supplierInfoService.delete(dto.getId());
     }
 
+    /**
+     * 供应商统计(列表)
+     */
+    @PostMapping("/supplierStatistics")
+    public Map<String,Object> supplierStatistics(@RequestBody BaseSelectDto dto) {
+        return supplierInfoService.supplierStatistics(dto);
+    }
 }

+ 25 - 0
hx-supply/src/main/java/com/fjhx/supply/entity/supplier/dto/SupplierInfoSelectDto.java

@@ -24,4 +24,29 @@ public class SupplierInfoSelectDto extends BaseSelectDto {
      */
     private Integer accountPeriodType;
 
+
+    /**
+     * 供应商编码
+     */
+    private String code;
+
+    /**
+     * 供应商名称
+     */
+    private String name;
+
+    /**
+     * 国家id
+     */
+    private Long countryId;
+
+    /**
+     * 省id
+     */
+    private Long provinceId;
+
+    /**
+     * 市id
+     */
+    private Long cityId;
 }

+ 5 - 0
hx-supply/src/main/java/com/fjhx/supply/entity/supplier/po/SupplierInfo.java

@@ -103,6 +103,11 @@ public class SupplierInfo extends BasePo {
      */
     private String accountPeriodRemark;
 
+    /**
+     * 个数
+     */
+    private Integer count;
+
 
 
 }

+ 8 - 1
hx-supply/src/main/java/com/fjhx/supply/service/supplier/SupplierInfoService.java

@@ -5,15 +5,18 @@ import com.fjhx.supply.entity.supplier.dto.SupplierInfoDto;
 import com.fjhx.supply.entity.supplier.dto.SupplierInfoSelectDto;
 import com.fjhx.supply.entity.supplier.po.SupplierInfo;
 import com.fjhx.supply.entity.supplier.vo.SupplierInfoVo;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.core.service.BaseService;
 
+import java.util.Map;
+
 
 /**
  * <p>
  * 供应商 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-03-17
  */
 public interface SupplierInfoService extends BaseService<SupplierInfo> {
@@ -52,4 +55,8 @@ public interface SupplierInfoService extends BaseService<SupplierInfo> {
      */
     void delete(Long id);
 
+    /**
+     * 供应商统计
+     */
+    Map<String, Object> supplierStatistics(BaseSelectDto dto);
 }

+ 80 - 0
hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java

@@ -1,10 +1,15 @@
 package com.fjhx.supply.service.supplier.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.stream.CollectorUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.area.utils.CustomizeAreaUtil;
@@ -17,11 +22,22 @@ import com.fjhx.supply.entity.supplier.vo.SupplierInfoVo;
 import com.fjhx.supply.mapper.supplier.SupplierInfoMapper;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.supply.utils.CodeEnum;
+import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
+import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
+import com.fjhx.tenant.service.dict.DictTenantDataService;
+import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
+import org.apache.commons.collections4.ListUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -36,11 +52,19 @@ import java.util.List;
 @Service
 public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, SupplierInfo> implements SupplierInfoService {
 
+    @Autowired
+    private DictTenantDataService dictTenantDataService;
+
     @Override
     public Page<SupplierInfoVo> getPage(SupplierInfoSelectDto dto) {
         IWrapper<SupplierInfo> wrapper = getWrapper();
         wrapper.orderByDesc("si", SupplierInfo::getId);
         wrapper.eq("si", SupplierInfo::getType, dto.getType());
+        wrapper.like("si",SupplierInfo::getCode,dto.getCode());
+        wrapper.like("si",SupplierInfo::getName,dto.getName());
+        wrapper.eq("si",SupplierInfo::getCountryId,dto.getCountryId());
+        wrapper.eq("si",SupplierInfo::getProvinceId,dto.getProvinceId());
+        wrapper.eq("si",SupplierInfo::getCityId,dto.getCityId());
         wrapper.keyword(dto,
                 new SqlField("si", SupplierInfo::getName),
                 new SqlField("si", SupplierInfo::getCode)
@@ -137,4 +161,60 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         ObsFileUtil.removeFile(id);
     }
 
+    /**
+     * 供应商统计
+     */
+    @Override
+    public Map<String, Object> supplierStatistics(BaseSelectDto dto) {
+        //存放供应商统计数据
+        Map<String,Object> map = new HashMap<>();
+        //存放供应商类型数据列表
+        List<Map<String,Object>> list = new ArrayList<>();
+
+        QueryWrapper<SupplierInfo> query = Wrappers.query();
+        //为-1则说明没有查到供应商的数据(如果为null的话后面list转map报错)
+        query.select("ifnull(type,-1) type,count(*) count");
+        query.groupBy("type");
+        //查询供应商统计
+        List<SupplierInfo> supplierInfoList = baseMapper.selectList(query);
+        Map<String, List<SupplierInfo>> supplierInfoMap = supplierInfoList.stream().collect(Collectors.groupingBy(SupplierInfo::getType));
+
+        //赋值合计数据
+        Integer amount = supplierInfoList.stream().map(SupplierInfo::getCount).reduce(Integer::sum).orElse(0);
+        map.put("amount",amount);
+
+        //切换数据源
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        //获取供应商类型字典数据
+        List<DictTenantDataVo> dictTenantDataVoList = getDict("supplier_type");
+        DynamicDataSourceContextHolder.poll();
+
+        if (ObjectUtil.isEmpty(dictTenantDataVoList)){
+            throw new ServiceException("数据有误:没有配置供应商类型字典,请先配置");
+        }
+
+        //赋值
+        for (DictTenantDataVo dictTenantDataVo : dictTenantDataVoList) {
+            //设置初始值
+            Map<String,Object> supplierMap = new HashMap<>();
+            supplierMap.put("type",dictTenantDataVo.getDictValue());
+            supplierMap.put("count",0);
+
+            //赋值数量
+            List<SupplierInfo> supplierInfos = supplierInfoMap.get(dictTenantDataVo.getDictKey());
+            if (ObjectUtil.isNotEmpty(supplierInfos)){
+                supplierMap.put("count",supplierInfos.get(0).getCount());
+            }
+            list.add(supplierMap);
+        }
+        map.put("supplierInfoList",list);
+        return map;
+    }
+
+    //根据字典编码获取字典的数据
+    private List<DictTenantDataVo> getDict(String code){
+        DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
+        dto.setDictCode(code);
+        return dictTenantDataService.getList(dto);
+    }
 }

+ 15 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderDto.java

@@ -36,7 +36,9 @@ public class JdOrderDto extends JdOrder implements SetCustomizeAreaId {
      */
     private Long outWarehouseId;
 
-    /**调仓说明*/
+    /**
+     * 调仓说明
+     */
     private String remark;
 
     /**
@@ -50,4 +52,16 @@ public class JdOrderDto extends JdOrder implements SetCustomizeAreaId {
     private String cityName;
 
 
+    /**
+     * 物流公司编号
+     */
+    private String logisticsCompanyCode;
+    /**
+     * 物流编号
+     */
+    private String logisticsCode;
+    /**
+     * 预约号
+     */
+    private String reservationCode;
 }

+ 3 - 3
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrder.java

@@ -43,19 +43,19 @@ public class JdOrder extends BasePo {
     /**
      * 国家
      */
-    @NotBlank(message = "国家id不能为空")
+//    @NotBlank(message = "国家id不能为空")
     private Long countryId;
 
     /**
      * 省
      */
-    @NotBlank(message = "省id不能为空")
+//    @NotBlank(message = "省id不能为空")
     private Long provinceId;
 
     /**
      * 市
      */
-    @NotBlank(message = "市id不能为空")
+//    @NotBlank(message = "市id不能为空")
     private Long cityId;
 
     /**

+ 5 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfos.java

@@ -69,4 +69,9 @@ public class LogisticsInfos extends BasePo {
      */
     private Integer isKd100;
 
+    /**
+     * 预约号
+     */
+    private String reservationCode;
+
 }

+ 39 - 6
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderServiceImpl.java

@@ -19,6 +19,8 @@ import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
 import com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo;
 import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
 import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
 import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
 import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
@@ -26,6 +28,8 @@ import com.fjhx.victoriatourist.mapper.jd.JdOrderMapper;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
 import com.fjhx.victoriatourist.service.jd.JdOrderService;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.fjhx.victoriatourist.service.stock.StockTransferDetailsService;
 import com.fjhx.victoriatourist.service.stock.StockTransferService;
 import com.fjhx.victoriatourist.utils.CodeEnum;
@@ -72,18 +76,22 @@ public class JdOrderServiceImpl extends ServiceImpl<JdOrderMapper, JdOrder> impl
     @Autowired
     private StockTransferDetailsService stockTransferDetailsService;
     @Autowired
-    StockWaitService stockWaitService;
+    private StockWaitService stockWaitService;
     @Autowired
-    StockWaitDetailsService stockWaitDetailsService;
+    private StockWaitDetailsService stockWaitDetailsService;
 
     @Autowired
-    AbnormalInfoService abnormalInfoService;
+    private AbnormalInfoService abnormalInfoService;
     @Autowired
-    StockJournalService stockJournalService;
+    private StockJournalService stockJournalService;
     @Autowired
-    StockJournalDetailsService stockJournalDetailsService;
+    private StockJournalDetailsService stockJournalDetailsService;
     @Autowired
-    StockService stockService;
+    private StockService stockService;
+    @Autowired
+    private LogisticsInfosService logisticsInfosService;
+    @Autowired
+    private LogisticsDetailsService logisticsDetailsService;
 
     @Override
     public Page<JdOrderVo> getPage(JdOrderSelectDto dto) {
@@ -177,6 +185,9 @@ public class JdOrderServiceImpl extends ServiceImpl<JdOrderMapper, JdOrder> impl
         this.jdOrderDetailsService.saveBatch(jdOrderDetailsList);
 
         CustomizeAreaUtil.setAreaId(jdOrderDto);
+
+
+
     }
 
     @DSTransactional
@@ -324,6 +335,28 @@ public class JdOrderServiceImpl extends ServiceImpl<JdOrderMapper, JdOrder> impl
             //保存出库记录明细
             stockJournalDetailsService.saveBatch(stockJournalDetailsList1);
         }
+
+        //创建物流数据
+        LogisticsInfos logisticsInfos = new LogisticsInfos();
+        logisticsInfos.setBusinessId(jdOrderDto.getId());
+        logisticsInfos.setBusinessCode(jdOrderDto.getCode());
+        logisticsInfos.setBusinessType(2);//京东订单出库
+        logisticsInfos.setLogisticsCompanyCode(jdOrderDto.getLogisticsCompanyCode());
+        logisticsInfos.setCode(jdOrderDto.getLogisticsCode());
+        logisticsInfos.setWarehouseId(jdOrderDto.getOutWarehouseId());
+        logisticsInfos.setReservationCode(jdOrderDto.getReservationCode());
+        logisticsInfos.setIsKd100(0);
+        logisticsInfosService.save(logisticsInfos);
+
+        List<LogisticsDetails> logisticsDetailsList = new ArrayList<>();
+        for (JdOrderDetails jdOrderDetails : jdOrderDetailsList) {
+            LogisticsDetails logisticsDetails =new LogisticsDetails();
+            logisticsDetails.setLogisticsInfoId(logisticsInfos.getId());
+            logisticsDetails.setLogisticsInfoCode(logisticsInfos.getCode());
+            logisticsDetails.setBusinessDetailsId(jdOrderDetails.getId());
+            logisticsDetails.setReceiptQuantity(jdOrderDetails.getQuantity());
+        }
+        logisticsDetailsService.saveBatch(logisticsDetailsList);
     }
 
     @Override

+ 33 - 6
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderInfoServiceImpl.java

@@ -10,6 +10,8 @@ import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
 import com.fjhx.victoriatourist.entity.order.dto.OrderInfoDto;
 import com.fjhx.victoriatourist.entity.order.dto.OrderInfoSelectDto;
 import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
@@ -17,6 +19,8 @@ import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
 import com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo;
 import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
 import com.fjhx.victoriatourist.mapper.order.OrderInfoMapper;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.fjhx.victoriatourist.service.order.OrderDetailsService;
 import com.fjhx.victoriatourist.service.order.OrderInfoService;
 import com.fjhx.victoriatourist.utils.Assert;
@@ -48,17 +52,22 @@ import java.util.List;
 @Service
 public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo> implements OrderInfoService {
     @Autowired
-    CustomerService customerService;
+    private CustomerService customerService;
     @Autowired
-    AreaInfoService areaInfoService;
+    private AreaInfoService areaInfoService;
     @Autowired
-    OrderDetailsService orderDetailsService;
+    private OrderDetailsService orderDetailsService;
     @Autowired
-    ProductInfoService productInfoService;
+    private ProductInfoService productInfoService;
     @Autowired
-    StockWaitService stockWaitService;
+    private StockWaitService stockWaitService;
     @Autowired
-    StockWaitDetailsService stockWaitDetailsService;
+    private StockWaitDetailsService stockWaitDetailsService;
+
+    @Autowired
+    private LogisticsInfosService logisticsInfosService;
+    @Autowired
+    private LogisticsDetailsService logisticsDetailsService;
 
     @Override
     public Page<OrderInfoVo> getPage(OrderInfoSelectDto dto) {
@@ -230,6 +239,24 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             orderInfo.setIssueStatus(2);//出库状态 1未出库 2进行中 3已出库
         }
         updateById(orderInfo);
+
+        //创建物流数据
+        LogisticsInfos logisticsInfos = new LogisticsInfos();
+        logisticsInfos.setBusinessId(orderInfo.getId());
+        logisticsInfos.setBusinessCode(orderInfo.getCode());
+        logisticsInfos.setBusinessType(3);//销售订单出库
+        logisticsInfos.setLogisticsCompanyCode(stockWaitDetailsDto.getLogisticsCompanyCode());
+        logisticsInfos.setCode(stockWaitDetailsDto.getLogisticsCode());
+        logisticsInfos.setWarehouseId(stockWaitDetailsDto.getWarehouseId());
+        logisticsInfos.setIsKd100(0);
+        logisticsInfosService.save(logisticsInfos);
+
+        LogisticsDetails logisticsDetails = new LogisticsDetails();
+        logisticsDetails.setLogisticsInfoId(logisticsInfos.getId());
+        logisticsDetails.setLogisticsInfoCode(logisticsInfos.getCode());
+        logisticsDetails.setBusinessDetailsId(orderDetails.getId());
+        logisticsDetails.setReceiptQuantity(orderDetails.getQuantity());
+        logisticsDetailsService.save(logisticsDetails);
     }
 
 }

+ 43 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -1,11 +1,17 @@
 package com.fjhx.victoriatourist.service.purchase.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
 import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackDto;
 import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackSelectDto;
 import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
@@ -13,6 +19,8 @@ import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBackDetails;
 import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackDetailsVo;
 import com.fjhx.victoriatourist.entity.purchase.vo.PurchaseBackVo;
 import com.fjhx.victoriatourist.mapper.purchase.PurchaseBackMapper;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.fjhx.victoriatourist.service.purchase.PurchaseBackDetailsService;
 import com.fjhx.victoriatourist.service.purchase.PurchaseBackService;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
@@ -21,6 +29,7 @@ import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.*;
 import com.fjhx.wms.service.stock.*;
 import com.fjhx.wms.utils.CodeEnum;
+import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +62,12 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
     private StockJournalDetailsService stockJournalDetailsService;
     @Autowired
     private StockService stockService;
+    @Autowired
+    private PurchaseService purchaseService;
+    @Autowired
+    private LogisticsInfosService logisticsInfosService;
+    @Autowired
+    private LogisticsDetailsService logisticsDetailsService;
 
     @Override
     public Page<PurchaseBackVo> getPage(PurchaseBackSelectDto dto) {
@@ -80,9 +95,17 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         purchaseBackDetailsList.forEach(purchaseBackDetails -> purchaseBackDetails.setPurchaseBackId(purchaseBackDto.getId()));
         purchaseBackDetailsService.saveBatch(purchaseBackDetailsList);
 
+        Purchase purchase = purchaseService.getById(purchaseBackDto.getPurchaseId());
+        if (ObjectUtil.isEmpty(purchase)) {
+            throw new ServiceException("无法查询到采购信息");
+        }
+        String victoriatouristJson = purchase.getVictoriatouristJson();
+        JSONObject json = ObjectUtil.isEmpty(victoriatouristJson) ? new JSONObject() : JSONObject.parseObject(victoriatouristJson);
+
         //创建待出库记录
         StockWait stockWait = new StockWait();
         stockWait.setBusinessId(purchaseBackDto.getId());
+        stockWait.setBusinessCode(json.getString("contractCode"));
         stockWait.setType(2);//出库
         stockWait.setStatus(0);//待出库
         stockWait.setBusinessType(StockWaitType.BACK_OUT.getDetailType());//已采购退货出库
@@ -101,7 +124,7 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
 
     @Override
     @DSTransactional
-    public void backOut(StockWaitDetailsDto stockWaitDetailsDto){
+    public void backOut(StockWaitDetailsDto stockWaitDetailsDto) {
         //修改待出入库状态
         stockWaitDetailsService.changeStockWaitStatus(stockWaitDetailsDto);
         StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDetailsDto.getId());
@@ -128,6 +151,25 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 4, Arrays.asList(stock), stockWaitDetailsDto.getWarehouseId());
         //保存出入库明细
         stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+
+
+        //创建物流数据
+        LogisticsInfos logisticsInfos = new LogisticsInfos();
+        logisticsInfos.setBusinessId(byId.getId());
+        logisticsInfos.setBusinessCode(byId.getBusinessCode());
+        logisticsInfos.setBusinessType(5);//采购退货
+        logisticsInfos.setLogisticsCompanyCode(stockWaitDetailsDto.getLogisticsCompanyCode());
+        logisticsInfos.setCode(stockWaitDetailsDto.getLogisticsCode());
+        logisticsInfos.setWarehouseId(stockWaitDetailsDto.getWarehouseId());
+        logisticsInfos.setIsKd100(0);
+        logisticsInfosService.save(logisticsInfos);
+
+        LogisticsDetails logisticsDetails = new LogisticsDetails();
+        logisticsDetails.setLogisticsInfoId(logisticsInfos.getId());
+        logisticsDetails.setLogisticsInfoCode(logisticsInfos.getCode());
+        logisticsDetails.setBusinessDetailsId(stockWaitDetailsDto.getId());
+        logisticsDetails.setReceiptQuantity(stockWaitDetailsDto.getQuantity());
+        logisticsDetailsService.save(logisticsDetails);
     }
 
 }

+ 9 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitDetailsDto.java

@@ -23,4 +23,13 @@ public class StockWaitDetailsDto extends StockWaitDetails {
      * 仓库id
      */
     private Long warehouseId;
+
+    /**
+     * 物流公司编号
+     */
+    private String logisticsCompanyCode;
+    /**
+     * 物流编号
+     */
+    private String logisticsCode;
 }

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockWaitDetailsVo.java

@@ -71,4 +71,9 @@ public class StockWaitDetailsVo extends StockWaitDetails {
      */
     private BigDecimal receiptQuantity;
 
+    /**
+     * 产品自定义编码
+     */
+    private String productCustomCode;
+
 }

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/mapper/stock/StockWaitMapper.java

@@ -21,6 +21,11 @@ public interface StockWaitMapper extends BaseMapper<StockWait> {
     /**
      * 待出入库分页
      */
+    Page<StockWaitVo> getPage1(@Param("page") Page<Object> page, @Param("ew") IWrapper<StockWait> wrapper);
+
+    /**
+     * 待出入库分页
+     */
     Page<StockWaitVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<StockWait> wrapper);
 
 }

+ 2 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java

@@ -177,7 +177,8 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
         List<StockWaitDetails> stockWaitDetailsList = list(q -> q.eq(StockWaitDetails::getStockWaitId, stockWaitDetails.getStockWaitId()));
         for (StockWaitDetails waitDetails : stockWaitDetailsList) {
             //计算已经完全出库的数量
-            if (waitDetails.getReceiptQuantity().compareTo(waitDetails.getQuantity()) == 0) {
+            BigDecimal receiptQuantity1 = ObjectUtil.isEmpty(waitDetails.getReceiptQuantity()) ? BigDecimal.ZERO : waitDetails.getReceiptQuantity();
+            if (receiptQuantity1.compareTo(waitDetails.getQuantity()) == 0) {
                 statusFlag++;
             }
         }

+ 2 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -75,7 +75,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         //过滤入库/出库
         wrapper.eq(StockWait::getType, dto.getType());
         wrapper.eq(StockWait::getBusinessCode, dto.getKeyword());
-        Page<StockWaitVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        Page<StockWaitVo> page = this.baseMapper.getPage1(dto.getPage(), wrapper);
 
         List<StockWaitVo> records = page.getRecords();
         // 赋值产品属性
@@ -178,6 +178,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
                 }
                 stockWaitDetails.setProductName(productInfo.getName());
                 stockWaitDetails.setProductCode(productInfo.getCode());
+                stockWaitDetails.setProductCustomCode(productInfo.getCustomCode());
             }
         }
         result.setStockWaitDetailsList(stockWaitDetailsVos);

+ 19 - 1
hx-wms/src/main/resources/mapper/stock/StockWaitMapper.xml

@@ -1,7 +1,7 @@
 <?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.stock.StockWaitMapper">
-    <select id="getPage" resultType="com.fjhx.wms.entity.stock.vo.StockWaitVo">
+    <select id="getPage1" resultType="com.fjhx.wms.entity.stock.vo.StockWaitVo">
         SELECT
             sw.id,
             swd.id stockWaitDetailsId,
@@ -24,4 +24,22 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getPage" resultType="com.fjhx.wms.entity.stock.vo.StockWaitVo">
+        SELECT
+            sw.id,
+            sw.type,
+            sw.business_id,
+            sw.business_code,
+            sw.business_type,
+            sw.`status`,
+            sw.create_user,
+            sw.create_time,
+            sw.update_user,
+            sw.update_time,
+            sw.victoriatourist_json
+        FROM
+            stock_wait sw
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>