Эх сурвалжийг харах

Merge remote-tracking branch 'origin/dev' into dev

xucaiqin 2 жил өмнө
parent
commit
47497298dd

+ 5 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/CompleteLogisticsOrderParam.java

@@ -42,6 +42,11 @@ public class CompleteLogisticsOrderParam implements Serializable {
      */
     private BigDecimal actualUnloadAmount;
 
+    /**
+     * 物流订单是否已全部完结
+     */
+    private Boolean isAllComplete;
+
     /**
      * 更新用户id 需传,订单状态变化记录需要
      */

+ 2 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -17,7 +17,6 @@ import com.sckw.contract.model.dto.res.QueryListResDto;
 import com.sckw.contract.model.entity.KwcContractLogistics;
 import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
 import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
-import com.sckw.contract.model.entity.KwcContractTrade;
 import com.sckw.contract.model.vo.req.*;
 import com.sckw.contract.model.vo.res.*;
 import com.sckw.core.common.enums.enums.DictEnum;
@@ -181,7 +180,7 @@ public class KwcContractLogisticsService {
         contractLogisticsDetailResVo.setId(kwcContractLogistics.getId());
         contractLogisticsDetailResVo.setRemark(kwcContractLogistics.getRemark());
         contractLogisticsDetailResVo.setStatus(kwcContractLogistics.getStatus());
-        contractLogisticsDetailResVo.setStatusName(ContractStatusEnum.getName(kwcContractLogistics.getStatus()).getName());
+        contractLogisticsDetailResVo.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(kwcContractLogistics.getStatus())).getName());
         //基础信息
         List<KwcContractLogisticsUnit> kwcContractLogisticsUnitList = kwcContractLogisticsUnitService.queryByContractId(kwcContractLogistics.getId());
         if (CollectionUtils.isNotEmpty(kwcContractLogisticsUnitList)) {
@@ -491,7 +490,7 @@ public class KwcContractLogisticsService {
                 queryListResVo.setInitiateEntName(Objects.isNull(userCacheResDto.getEntInfo()) ? "" : userCacheResDto.getEntInfo().getFirmName());
             }
             queryListResVo.setChargingName(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(), String.valueOf(queryListResDto.getCharging())));
-            queryListResVo.setStatusName(ContractStatusEnum.getName(queryListResDto.getStatus()).getName());
+            queryListResVo.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(queryListResDto.getStatus())).getName());
             queryListResVo.setSigningWayName(DictEnum.getLabel(DictTypeEnum.SIGNING_TYPE.getType(), String.valueOf(queryListResDto.getSigningWay())));
             queryListResVo.setPerformedAmount(queryListResDto.getPerformedAmount());
             queryListResVo.setAmount(queryListResDto.getAmount());

+ 6 - 7
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeService.java

@@ -98,7 +98,7 @@ public class KwcContractTradeService {
      * @date: 2023/7/18
      */
     private List<QueryListResVo> getQueryListResVos(List<QueryListResDto> queryListResDtos) {
-        Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>();
+        Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>(8);
         List<Long> initiateByList = queryListResDtos.stream().map(QueryListResDto::getInitiateBy).toList();
         if (CollectionUtils.isNotEmpty(initiateByList)) {
             longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(initiateByList);
@@ -121,7 +121,7 @@ public class KwcContractTradeService {
                 queryListResVo.setInitiateEntName(Objects.isNull(userCacheResDto.getEntInfo()) ? "" : userCacheResDto.getEntInfo().getFirmName());
             }
             queryListResVo.setTradingName(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), String.valueOf(queryListResDto.getTrading())));
-            queryListResVo.setStatusName(ContractStatusEnum.getName(queryListResDto.getStatus()).getName());
+            queryListResVo.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(queryListResDto.getStatus())).getName());
             queryListResVo.setSigningWayName(DictEnum.getLabel(DictTypeEnum.SIGNING_TYPE.getType(), String.valueOf(queryListResDto.getSigningWay())));
             queryListResVo.setAmount(queryListResDto.getAmount());
             queryListResVo.setPerformedAmount(new BigDecimal("0"));
@@ -254,7 +254,7 @@ public class KwcContractTradeService {
 
         ContractTradeDetailResVo contractTradeDetailResVo = new ContractTradeDetailResVo();
         contractTradeDetailResVo.setStatus(kwcContractTrade.getStatus());
-        contractTradeDetailResVo.setStatusName(ContractStatusEnum.getName(kwcContractTrade.getStatus()).getName());
+        contractTradeDetailResVo.setStatusName(Objects.requireNonNull(ContractStatusEnum.getName(kwcContractTrade.getStatus())).getName());
         contractTradeDetailResVo.setRemark(kwcContractTrade.getRemark());
 
 
@@ -281,18 +281,17 @@ public class KwcContractTradeService {
 
         //标的信息
         List<KwcContractTradeGoods> kwcContractTradeGoodsList = kwcContractTradeGoodsService.queryGoodsInfoByContractId(id);
-        List<Long> goodsIdList = kwcContractTradeGoodsList.stream().map(KwcContractTradeGoods::getGoodsId).toList();
-        Map<Long, KwpGoods> goodsMap = goodsInfoService.getGoodsByIds(goodsIdList);
+        Map<Long, KwpGoods> goodsMap = new HashMap<>(8);
         if (CollectionUtils.isNotEmpty(kwcContractTradeGoodsList)) {
             List<TradeGoodsInfoResVo> tradeGoodsInfoResVoList = new ArrayList<>();
-
+            List<Long> goodsIdList = kwcContractTradeGoodsList.stream().map(KwcContractTradeGoods::getGoodsId).toList();
+            goodsMap = goodsInfoService.getGoodsByIds(goodsIdList);
             StringBuilder keys = new StringBuilder();
             for (KwcContractTradeGoods item : kwcContractTradeGoodsList) {
                 keys.append(DictTypeEnum.UNIT_TYPE.getType()).append(Global.POUND).append(item.getUnit()).append(Global.COMMA);
             }
             Map<String, SysDictResDto> stringSysDictResDtoMap = remoteSystemService.queryDictMapByTypeValues(keys.toString());
 
-
             for (KwcContractTradeGoods kwcContractTradeGoods : kwcContractTradeGoodsList) {
                 TradeGoodsInfoResVo tradeGoodsInfoResVo = new TradeGoodsInfoResVo();
                 tradeGoodsInfoResVo.setAmount(kwcContractTradeGoods.getAmount());

+ 10 - 8
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -156,6 +156,9 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
         if (Objects.isNull(entrustAmount) || Objects.isNull(actualLoadAmount) || Objects.isNull(actualUnloadAmount)) {
             return HttpResult.error("任务量或装卸量不能为空!");
         }
+        if (Objects.isNull(param.getIsAllComplete())) {
+            return HttpResult.error("物流订单是否已全部完结不能为空!");
+        }
         String lockKey = String.format(RedisConstant.TORDER_UPDATE_AMOUNT_KEY, id);
         if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
             return HttpResult.error("业务繁忙,请稍后再试!");
@@ -176,14 +179,13 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
                 totalActualAmount = Objects.isNull(order.getActualAmount()) ? actualUnloadAmount : order.getActualAmount().add(actualUnloadAmount);
             }
             order.setEntrustAmount(totalEntrustAmount).setActualAmount(totalActualAmount).setUpdateBy(param.getUpdateBy());
-            //todo 自动完结订单规则缺少
-//            if (amount.compareTo(addActualAmount) == 0) {
-//                order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
-//                KwoTradeOrderTrack track = new KwoTradeOrderTrack();
-//                track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
-//                        .setCreateBy(updateBy).setUpdateBy(updateBy);
-//                kwoTradeOrderTrackService.insert(track);
-//            }
+            if (param.getIsAllComplete() && totalActualAmount.compareTo(order.getAmount()) >= 0) {
+                order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
+                KwoTradeOrderTrack track = new KwoTradeOrderTrack();
+                track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
+                        .setCreateBy(updateBy).setUpdateBy(updateBy);
+                kwoTradeOrderTrackService.insert(track);
+            }
             kwoTradeOrderService.updateById(order);
             //更新mongodb
             SckwTradeOrder updateParam = new SckwTradeOrder();

+ 3 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -44,6 +44,9 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
 
     @Override
     public Map<Long, KwpGoods> getGoodsByIds(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return Collections.emptyMap();
+        }
         List<KwpGoods> list = BeanUtils.copyToList(kwpGoodsService.selectByIds(ids), KwpGoods.class);
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyMap();