From 21ad1f462683e4d51f2f32a37e527897c5dc25a2 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 3 Jul 2024 17:24:35 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=E9=A2=84=E7=AE=97=E6=A0=B8=E9=94=80?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=EF=BC=9B=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/service/impl/OmsOrderServiceImpl.java | 1 + .../tbs/controller/TbsBudgetController.java | 9 + .../entity/TbsBudgetChangeScheduleItem.java | 3 + .../modules/tbs/entity/bo/TbsBudgetAmtBo.java | 5 +- .../impl/TbsBudgetBatchServiceImpl.java | 256 +++++++++--------- .../TbsBudgetChangeOperationServiceImpl.java | 2 + .../impl/TbsBudgetChangeServiceImpl.java | 13 +- .../resources/mapper/goods/GoodsSpuMapper.xml | 8 +- 8 files changed, 158 insertions(+), 139 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 962cb0d9..1dde486b 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -553,6 +553,7 @@ public class OmsOrderServiceImpl extends ServiceImpl i order.setBrandRuleName(categoryRule.getLabel()); } + order.setOrderSource(confirmOrder.getOrderSource()); order.setCdOrderRemark(createOrderParam.getCdOrderRemark()); order.setOrderType(confirmOrder.getOrderType()); order.setSupplierId(Long.parseLong(supplier.getId())); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 4ad3eba4..7fcd61e4 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -436,6 +436,15 @@ public class TbsBudgetController { if(tbsBudgetCostItemService.count(lqw)>0){ return R.error("预算已被使用"); } + long countUnPub = tbsBudgetService.count( + new LambdaQueryWrapper() + .in(TbsBudget::getId,idsLong) + .eq(TbsBudget::getBudgetState,0) + .eq(TbsBudget::getBudgetCheckState,TbsCommonCheckState.State_0_unPublish) + ); + if(countUnPub>0){ + return R.error("预算状态不支持删除"); + } boolean result = tbsBudgetService.removeByIds(idsLong); //移除考核期预算 LambdaQueryWrapper rmItemBudget = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java index 1174dd4d..344c5b88 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java @@ -34,6 +34,9 @@ public class TbsBudgetChangeScheduleItem implements Serializable { /** 更变记录id */ private Long changeId; + /** 和原来记录做对比,判断是否更变 */ + private Integer changeFlag; + /** TbsScheduleItemBudget.id */ private Long sourceId; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java index 9f8d60b4..b1fa5323 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java @@ -11,7 +11,10 @@ import java.math.BigDecimal; @Data public class TbsBudgetAmtBo { - private Long budgetScheduleItemId; + /** + * scheduleItemBudgetId + */ + private Long scheduleItemId; private BigDecimal preDispatchAmount; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java index 7417cf93..5983b5f3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java @@ -279,7 +279,6 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl scheduleMap, Map subjectMap, Map centerDtoMap, Map categoryMap, TbsBudgetBatchBo.BudgetMain paramItem, Long budgetId) { + private void toUpdateBudgetInfo(Long batchId,SysUser sysUser, Map scheduleMap, + Map subjectMap, Map centerDtoMap, + Map categoryMap, TbsBudgetBatchBo.BudgetMain paramItem, Long budgetId) { //tbsBudgetService.removeById(budgetId); tbsBudgetConditionService.remove( new LambdaQueryWrapper() @@ -363,19 +364,19 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl categoryMap, TbsBudget budget, TbsBudgetBatchBo.BudgetMain paramItem, Long budgetId, Long changeId) { if(budget.getConditionFlag().equals(1)){ - List existingConditionList = tbsBudgetConditionService - .list(new LambdaQueryWrapper() - .eq(TbsBudgetCondition::getBudgetId, budgetId)); +// List existingConditionList = tbsBudgetConditionService +// .list(new LambdaQueryWrapper() +// .eq(TbsBudgetCondition::getBudgetId, budgetId)); String bandNames = paramItem.getBrandNames(); String categoryNames = paramItem.getCategoryNames(); String seriesNames = paramItem.getSeriesNames(); //设置changeConditionList参数 List changeConditionList = new ArrayList<>(); - this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, existingConditionList, + this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, null, bandNames, TbsGoodsType.brand.name()); - this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, existingConditionList, + this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, null, categoryNames, TbsGoodsType.category.name()); - this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, existingConditionList, + this.buildChangeConditionList(categoryMap, budgetId, changeId, changeConditionList, null, seriesNames, TbsGoodsType.series.name()); if(CollUtil.isNotEmpty(changeConditionList)){ tbsBudgetChangeConditionService.saveBatch(changeConditionList); @@ -407,18 +408,17 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpla.getTargetName().equals(val)||a.getTargetCode().equals(val) - ); - if(!exist){ - GoodsCategory goodsCategory = categoryMap.get(val); - if(goodsCategory!=null){ - TbsBudgetChangeCondition budgetChangeCondition = new TbsBudgetChangeCondition(); - budgetChangeCondition.setChangeId(changeId); - budgetChangeCondition.setBudgetId(budgetId); - budgetChangeCondition.setTargetType(targetType); - budgetChangeCondition.setTargetId(goodsCategory.getId()); - budgetChangeCondition.setTargetCode(goodsCategory.getCode()); - budgetChangeCondition.setTargetName(goodsCategory.getName()); - budgetChangeCondition.setTargetLevelPathIds(goodsCategory.getLevelPath()); - budgetChangeCondition.setTargetLevelPathNames(goodsCategory.getLevelPathNames()); - changeConditionList.add(budgetChangeCondition); - } + GoodsCategory goodsCategory = categoryMap.get(targetType+"_"+val); + if(goodsCategory!=null){ + TbsBudgetChangeCondition budgetChangeCondition = new TbsBudgetChangeCondition(); + budgetChangeCondition.setChangeId(changeId); + budgetChangeCondition.setBudgetId(budgetId); + budgetChangeCondition.setTargetType(targetType); + budgetChangeCondition.setTargetId(goodsCategory.getId()); + budgetChangeCondition.setTargetCode(goodsCategory.getCode()); + budgetChangeCondition.setTargetName(goodsCategory.getName()); + budgetChangeCondition.setTargetLevelPathIds(goodsCategory.getLevelPath()); + budgetChangeCondition.setTargetLevelPathNames(goodsCategory.getLevelPathNames()); + changeConditionList.add(budgetChangeCondition); } } } @@ -456,7 +451,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl loadGoodsCategoryMap(TbsBudgetBatchBo param) { List paramBudgetList = param.getBudgetList(); - Set goodsCategoryNames = new HashSet<>(); + //初始化三个维度的品类 + List allBandNameList = new ArrayList<>(), + allCategoryNameList = new ArrayList<>(), + allSeriesNameList = new ArrayList<>(); for (TbsBudgetBatchBo.BudgetMain budgetMain : paramBudgetList) { String bandNames = budgetMain.getBrandNames(); String categoryNames = budgetMain.getCategoryNames(); String seriesNames = budgetMain.getSeriesNames(); - initCategorySet(goodsCategoryNames, bandNames); - initCategorySet(goodsCategoryNames, categoryNames); - initCategorySet(goodsCategoryNames, seriesNames); + allBandNameList.addAll(initCategorySet(bandNames)); + allCategoryNameList.addAll(initCategorySet(categoryNames)); + allSeriesNameList.addAll(initCategorySet(seriesNames)); } - if(goodsCategoryNames.size()<1){ + if(CollUtil.isEmpty(allBandNameList) + && CollUtil.isEmpty(allCategoryNameList) + && CollUtil.isEmpty(allSeriesNameList)){ return new HashMap<>(); } - List goodsCategories = goodsCategoryService.list( - new LambdaQueryWrapper() - .in(GoodsCategory::getName,goodsCategoryNames) - .or() - .in(GoodsCategory::getCode,goodsCategoryNames) - ); - if(goodsCategories.size()!= goodsCategoryNames.size()){ - for (String categoryName : goodsCategoryNames) { - List tempList = goodsCategories.stream() - .filter(a->a.getName().equals(categoryName)).collect(Collectors.toList()); - if(tempList.size()<1){ - for (TbsBudgetBatchBo.BudgetMain budgetMain : paramBudgetList) { - boolean bandNamesFlag = budgetMain.getBrandNames() != null && budgetMain.getBrandNames().contains(categoryName); - boolean categoryNamesFlag = budgetMain.getCategoryNames() != null && budgetMain.getCategoryNames().contains(categoryName); - boolean seriesNamesFlag = budgetMain.getSeriesNames() != null && budgetMain.getSeriesNames().contains(categoryName); - if(bandNamesFlag){ - budgetMain.getErrorInfos().add("无效的品牌:"+categoryName); - param.setErrorFlag(true); - break; - } - if(categoryNamesFlag){ - budgetMain.getErrorInfos().add("无效的品类:"+categoryName); - param.setErrorFlag(true); - break; - } - if(seriesNamesFlag){ - budgetMain.getErrorInfos().add("无效的系列:"+categoryName); - param.setErrorFlag(true); - break; - } - } + //查询类目 + List bandList = this.queryCategory(1,allBandNameList); + List categoryList = this.queryCategory(2,allCategoryNameList); + List seriesList = this.queryCategory(3,allSeriesNameList); + + for (TbsBudgetBatchBo.BudgetMain budgetMain : paramBudgetList) { + String bandNames = budgetMain.getBrandNames(); + String categoryNames = budgetMain.getCategoryNames(); + String seriesNames = budgetMain.getSeriesNames(); + + List bandNameItemList = initCategorySet(bandNames); + List categoryNameItemList = initCategorySet(categoryNames); + List seriesNameItemList = initCategorySet(seriesNames); + checkMchError(1,param, budgetMain,bandList, bandNameItemList); + checkMchError(2,param, budgetMain,categoryList, categoryNameItemList); + checkMchError(3,param, budgetMain,seriesList, seriesNameItemList); + } + + Map categoryMap = new HashMap<>(); + for (GoodsCategory category : bandList) { + categoryMap.put(TbsGoodsType.brand.name()+"_"+category.getName(),category); + } + for (GoodsCategory category : categoryList) { + categoryMap.put(TbsGoodsType.category.name()+"_"+category.getName(),category); + } + for (GoodsCategory category : seriesList) { + categoryMap.put(TbsGoodsType.series.name()+"_"+category.getName(),category); + } + return categoryMap; + } + + /** + * 校验查询结果 + * @param level + * @param param + * @param budgetMain + * @param bandList + * @param cateNames + */ + private void checkMchError(int level,TbsBudgetBatchBo param, + TbsBudgetBatchBo.BudgetMain budgetMain, + List bandList, + List cateNames) { + for (String name : cateNames) { + boolean mch = false; + for (GoodsCategory category : bandList) { + if(name.equals(category.getName())){ + mch = true; + break; } } - }else{ - for (String categoryName : goodsCategoryNames) { - List tempList = goodsCategories.stream() - .filter(a->a.getName().equals(categoryName)).collect(Collectors.toList()); - for (TbsBudgetBatchBo.BudgetMain budgetMain : paramBudgetList) { - boolean bandNamesFlag = budgetMain.getBrandNames() != null && budgetMain.getBrandNames().contains(categoryName); - boolean categoryNamesFlag = budgetMain.getCategoryNames() != null && budgetMain.getCategoryNames().contains(categoryName); - boolean seriesNamesFlag = budgetMain.getSeriesNames() != null && budgetMain.getSeriesNames().contains(categoryName); - if(bandNamesFlag){ - boolean isTrue = false; - for (GoodsCategory category : tempList) { - if(category.getLevel().equals(1)){ - isTrue = true; - break; - } - } - if(!isTrue){ - budgetMain.getErrorInfos().add("无效的品牌:"+categoryName); - param.setErrorFlag(true); - } - } - if(categoryNamesFlag){ - boolean isTrue = false; - for (GoodsCategory category : tempList) { - if(category.getLevel().equals(2)){ - isTrue = true; - break; - } - } - if(!isTrue){ - budgetMain.getErrorInfos().add("无效的品类:"+categoryName); - param.setErrorFlag(true); - } - } - if(seriesNamesFlag){ - boolean isTrue = false; - for (GoodsCategory category : tempList) { - if(category.getLevel().equals(3)){ - isTrue = true; - break; - } - } - if(!isTrue){ - budgetMain.getErrorInfos().add("无效的系列:"+categoryName); - param.setErrorFlag(true); - } - } + if(!mch){ + if(level==1){ + budgetMain.getErrorInfos().add("无效的品牌:"+name); + }else if (level==2){ + budgetMain.getErrorInfos().add("无效的品类:"+name); + }else { + budgetMain.getErrorInfos().add("无效的系列:"+name); } + param.setErrorFlag(true); } } - Map categoryMap = new HashMap<>(goodsCategories.size()); - for (GoodsCategory category : goodsCategories) { - categoryMap.put(category.getName(),category); + } + + /** + * 查询品类 + * @param level 等级1-品牌 2-类目 3-系列 + * @param nameOrCodes + * @return + */ + private List queryCategory(int level,List nameOrCodes) { + if(CollUtil.isEmpty(nameOrCodes)){ + return new ArrayList<>(); } - return categoryMap; + List list = goodsCategoryService.list( + new LambdaQueryWrapper() + .eq(GoodsCategory::getLevel,level) + .and(cn->{ + cn.in(GoodsCategory::getName,nameOrCodes) + .or() + .in(GoodsCategory::getCode,nameOrCodes); + }) + ); + return list; } /** * 初始化set - * @param goodsCategories * @param categoryString */ - private void initCategorySet(Set goodsCategories, String categoryString) { + private List initCategorySet(String categoryString) { if(StringUtils.hasText(categoryString)){ String[] values = categoryString .replace(",",",") .split(","); - goodsCategories.addAll(Arrays.asList(values)); + return Arrays.asList(values); } + return new ArrayList<>(); } private Map loadScheduleMap(List scheduleNames,TbsBudgetBatchBo param) { diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java index 3fcfde25..05928335 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java @@ -130,6 +130,8 @@ public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationServi } //更新金额 List changeScheduleItemList = tbsBudgetChangeScheduleItemService.listByChangeId(budgetChange.getId()); + //过滤更变金额 + changeScheduleItemList = changeScheduleItemList.stream().filter(a->a.getChangeFlag().equals(1)).collect(Collectors.toList()); if(CollectionUtil.isNotEmpty(changeScheduleItemList)){ List scheduleItemBudgetIds = changeScheduleItemList.stream().map(TbsBudgetChangeScheduleItem::getSourceId).collect(Collectors.toList()); List scheduleItemBudgetList = tbsScheduleItemBudgetService.listByIds(scheduleItemBudgetIds); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java index 6e3a448b..c1207454 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java @@ -270,16 +270,21 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl budgetAmtUpdateList = param.getBudgetAmtUpdateList(); if(CollectionUtil.isNotEmpty(budgetAmtUpdateList)){ - List budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getBudgetScheduleItemId).collect(Collectors.toList()); + //更变的周期项 + List budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getScheduleItemId).collect(Collectors.toList()); List budgetLogWithAmountList = tbsScheduleItemBudgetMapper.getSumAmtInList(budgetScheduleIds,Arrays.asList(0,2,3)); - List scheduleItemBudgetList = tbsScheduleItemBudgetMapper.selectBatchIds(budgetScheduleIds); + //所有的周期项 + List allScheduleItemBudgetList = tbsScheduleItemBudgetMapper + .selectList(new LambdaQueryWrapper().eq(TbsScheduleItemBudget::getBudgetId,budget.getId())); List changeScheduleItemList = new ArrayList<>(); - for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgetList) { + for (TbsScheduleItemBudget scheduleItemBudget : allScheduleItemBudgetList) { if(!scheduleItemBudget.getBudgetId().equals(budget.getId())){ Assert.throwEx("参数异常!!"); } + boolean isChange = budgetScheduleIds.stream().anyMatch(a->a.equals(scheduleItemBudget.getId())); TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(scheduleItemBudget); resultItem.setChangeId(changeId); + resultItem.setChangeFlag(isChange?1:0); //设置当前项调整的最终金额 for (TbsBudgetLogWithAmount withAmount : budgetLogWithAmountList) { if(withAmount.getId().equals(scheduleItemBudget.getId())){ @@ -289,7 +294,7 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl and ( `sku`.`sku_code` like concat('%', #{query.keyword},'%') or @@ -295,7 +295,7 @@ UNION ALL SELECT sku.*,1 as rn FROM goods_sku sku left join goods_spu spu on sku.spu_id = spu.id - WHERE sku.special_flag = 1 and sku.del_flag = 0 + WHERE sku.special_flag = 1 and sku.del_flag = 0 and sku.enable = 1 and ( `sku`.`sku_code` like concat('%', #{query.keyword},'%') or @@ -337,7 +337,7 @@ SELECT sku.*,ROW_NUMBER() OVER(PARTITION BY sku.spu_id ORDER BY sku.belong_sort) AS rn FROM goods_sku sku left join goods_spu spu on sku.spu_id = spu.id - WHERE sku.order_flag = 1 AND sku.special_flag = 0 + WHERE sku.order_flag = 1 AND sku.special_flag = 0 and sku.enable = 1 and ( `sku`.`sku_code` like concat('%', #{query.keyword},'%') or @@ -365,7 +365,7 @@ UNION ALL SELECT sku.*,1 as rn FROM goods_sku sku left join goods_spu spu on sku.spu_id = spu.id - WHERE sku.special_flag = 1 + WHERE sku.special_flag = 1 and sku.enable = 1 and ( `sku`.`sku_code` like concat('%', #{query.keyword},'%') or From ff9fc63312f1e6f6f8fead10c193b668a25a5dfe Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 4 Jul 2024 10:09:49 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=E6=8B=93=E5=B1=95=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=A0=B8=E9=94=80=E6=9F=A5=E8=AF=A2=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/so/VtbVerificationBatchQuery.java | 54 +++++++++ .../VtbVerificationBatchController.java | 14 +++ .../vtb/entity/VtbVerificationBatch.java | 3 + .../vtb/entity/vo/VtbVerificationBatchVo.java | 51 +++++++++ .../mapper/VtbVerificationBatchMapper.java | 7 ++ .../service/VtbVerificationBatchService.java | 4 + ...VerificationBatchOperationServiceImpl.java | 7 +- .../impl/VtbVerificationBatchServiceImpl.java | 8 ++ .../mapper/vtb/VtbVerificationBatchMapper.xml | 105 ++++++++++++++++++ 9 files changed, 251 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbVerificationBatchVo.java create mode 100644 src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java new file mode 100644 index 00000000..d2b62b72 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java @@ -0,0 +1,54 @@ +package com.qs.serve.modules.tbs.entity.so; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * @author YenHex + * @since 2024/7/3 + */ +@Data +public class VtbVerificationBatchQuery { + + + /** 批次编码 */ + private String vtbBatchCode; + + /** 状态:0-审批中;1-通过;2-拒绝;3-回退 */ + private Integer vtbBatchStatus; + + private String costCode; + + /** 客户编码 */ + private String supplierCode; + + /** 客户名称 */ + private String supplierName; + + private String supplierBizRegionFirstName; + + private String supplierBizRegionSecondName; + + private String supplierBizRegionThirdName; + + /** 申请人 */ + private String userCode; + + /** 申请人 */ + private String userName; + + /** 创建时间 */ + private LocalDateTime batchStartTime; + + /** 创建时间 */ + private LocalDateTime batchEndTime; + +} diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java index 83d81a6c..0ebf8358 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java @@ -18,10 +18,12 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.entity.so.VtbVerificationBatchQuery; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerificationYard; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo; +import com.qs.serve.modules.vtb.entity.vo.VtbVerificationBatchVo; import com.qs.serve.modules.vtb.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -67,6 +69,18 @@ public class VtbVerificationBatchController { return R.byPageHelperList(list); } + /** + * 翻页2(连表查询-left join tbs_cost_apply) + * @param query + * @return + */ + @GetMapping("/page2") + public R> getPage2(VtbVerificationBatchQuery query){ + PageUtil.startPage(); + List list = vtbVerificationBatchService.list2(query); + return R.byPageHelperList(list); + } + /** * ID查询 * @param id diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java index 158cd03a..e97f47b7 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java @@ -107,6 +107,9 @@ public class VtbVerificationBatch implements Serializable { /** 申请时的金额合计 */ private BigDecimal applyCheckAmount; + /** 申请时的金额合计 */ + private BigDecimal resultCheckAmount; + /** 客户id */ @NotNull(message = "客户id不能为空") private String supplierId; diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbVerificationBatchVo.java b/src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbVerificationBatchVo.java new file mode 100644 index 00000000..b74d2429 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/vo/VtbVerificationBatchVo.java @@ -0,0 +1,51 @@ +package com.qs.serve.modules.vtb.entity.vo; + +import com.baomidou.mybatisplus.annotation.SqlCondition; +import com.baomidou.mybatisplus.annotation.TableField; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.entity.VtbVerificationBatch; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2024/7/3 + */ +@Data +public class VtbVerificationBatchVo extends VtbVerificationBatch { + + private String costCode; + + /** 主题 */ + private String chargeTheme; + + /** 状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废;7-异动 @{link TbsCostApplyState} */ + private Integer chargeState; + + private String supplierBizRegionFirstName; + + private String supplierBizRegionSecondName; + + private String supplierBizRegionThirdName; + + /** 统计活动数量 */ + private Integer totalActivity; + + /** 统计所有活动申请的金额 */ + private BigDecimal totalActivityAmount; + + /** 统计所有活动预估发货的金额 */ + private BigDecimal totalActivityPreAmount; + + /** 统计所有活动预估不发货的金额 */ + private BigDecimal totalActivityPreNotAmount; + + /** 统计所有活动使用的金额 */ + private BigDecimal totalActivityUsedAmount; + + +} diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationBatchMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationBatchMapper.java index fe24dce8..a7148889 100644 --- a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationBatchMapper.java +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationBatchMapper.java @@ -1,10 +1,14 @@ package com.qs.serve.modules.vtb.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tbs.entity.so.VtbVerificationBatchQuery; import com.qs.serve.modules.vtb.entity.VtbVerificationBatch; +import com.qs.serve.modules.vtb.entity.vo.VtbVerificationBatchVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; +import java.util.List; + /** * Mapper * @author YenHex @@ -25,5 +29,8 @@ public interface VtbVerificationBatchMapper extends BaseMapper selectList2(@Param("query") VtbVerificationBatchQuery query); + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java index b7ece5b1..0c66722e 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java @@ -1,9 +1,11 @@ package com.qs.serve.modules.vtb.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tbs.entity.so.VtbVerificationBatchQuery; import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerificationBatch; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo; +import com.qs.serve.modules.vtb.entity.vo.VtbVerificationBatchVo; import java.util.List; @@ -22,5 +24,7 @@ public interface VtbVerificationBatchService extends IService listVerifications(Long batchId); + List list2(VtbVerificationBatchQuery query); + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java index e22e2df2..0c5fba90 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java @@ -80,11 +80,14 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification List verificationList = vtbVerificationBatchService.listVerifications(batch.getId()); batch.setVtbBatchStatus(VtbVerificationBatch.BatchState.CHECK_OK); batch.setBackedTime(LocalDateTime.now()); - vtbVerificationBatchService.updateById(batch); + BigDecimal totalAmt = BigDecimal.ZERO; for (VtbVerification verification : verificationList) { //循环调用每个核销 vtbVerificationService.successCommit(verification.getId()); + totalAmt.add(verification.getAmount()); } + batch.setResultCheckAmount(totalAmt); + vtbVerificationBatchService.updateById(batch); return null; } @@ -126,7 +129,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification //保存到每个核销 for (VtbVerification verification : verificationList) { DataAffairCommit affairCommit = CopierUtil.copy(dataAffairCommit,new DataAffairCommit()); - affairCommit.setId(null); + affairCommit.setId(IdUtil.nanoId()); affairCommit.setTargetId(verification.getId()+""); affairCommit.setTargetCode(verification.getVerificationCode()); dataAffairCommitMapper.insert(affairCommit); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java index ba1d90cf..3af517aa 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java @@ -35,6 +35,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivityCenter; import com.qs.serve.modules.tbs.entity.TbsActivitySubject; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; +import com.qs.serve.modules.tbs.entity.so.VtbVerificationBatchQuery; import com.qs.serve.modules.tbs.service.TbsActivityCenterService; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivitySubjectService; @@ -44,6 +45,7 @@ import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.bo.*; import com.qs.serve.modules.vtb.entity.dto.VtbSubjectDTO; +import com.qs.serve.modules.vtb.entity.vo.VtbVerificationBatchVo; import com.qs.serve.modules.vtb.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -165,6 +167,7 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl() .eq(VtbVerification::getBatchId,batchId)); } + + @Override + public List list2(VtbVerificationBatchQuery query) { + return baseMapper.selectList2(query); + } } diff --git a/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml b/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml new file mode 100644 index 00000000..faa30744 --- /dev/null +++ b/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vtb_verification_batch.`id`, + vtb_verification_batch.`vtb_batch_code`, + vtb_verification_batch.`vtb_batch_status`, + vtb_verification_batch.`finished_time`, + vtb_verification_batch.`cost_apply_id`, + vtb_verification_batch.`remark`, + vtb_verification_batch.`create_time`, + vtb_verification_batch.`update_time`, + vtb_verification_batch.`tenant_id`, + vtb_verification_batch.`create_by`, + vtb_verification_batch.`update_by`, + vtb_verification_batch.`del_flag`, + vtb_verification_batch.`sy_form_id`, + vtb_verification_batch.`sy_flow_id`, + vtb_verification_batch.`supplier_id`, + vtb_verification_batch.`supplier_code`, + vtb_verification_batch.`supplier_name`, + vtb_verification_batch.`user_id`, + vtb_verification_batch.`user_code`, + vtb_verification_batch.`user_name`, + vtb_verification_batch.`ext_user_id`, + vtb_verification_batch.`ext_user_code`, + vtb_verification_batch.`ext_user_name`, + vtb_verification_batch.`backed_time`, + vtb_verification_batch.`refuse_time`, + vtb_verification_batch.`way_id`, + vtb_verification_batch.`way_title`, + vtb_verification_batch.`apply_check_amount`, + vtb_verification_batch.`result_check_amount` + + + + From 2f7726f4b5b76ab61970f17c47760911860a6210 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 4 Jul 2024 10:42:09 +0800 Subject: [PATCH 3/7] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serve/modules/tbs/controller/TbsBudgetController.java | 6 ++++++ .../com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 7fcd61e4..92c57d09 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -166,6 +166,12 @@ public class TbsBudgetController { List voList = new ArrayList<>(); for (TbsBudget budget : list) { TbsBudgetVo budgetVo = tbsBudgetService.toVoEntity(budget); + if(budgetVo.getBudgetCheckState().equals(TbsCommonCheckState.State_2_finished)){ + long count = tbsBudgetMapper.countLastChange(budgetVo.getId()); + if(count>0){ + budgetVo.setBudgetCheckState(TbsCommonCheckState.State_1_apply); + } + } voList.add(budgetVo); } return R.byPageHelperList(list,voList); diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java index 5d885359..fb358f09 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java @@ -45,6 +45,14 @@ public interface TbsBudgetMapper extends BaseMapper { @Update("update tbs_budget set center_combo = concat(center_type,'_',center_id) where id = #{budgetId}") int updateBudgetComboCenter(@Param("budgetId")Long budgetId); + /** + * 查询最新的审批申请是否在审批中 + * @param budgetId + * @return + */ + @Select("select count(1) from tbs_budget_change where budget_id = #{budgetId} and id = ( " + + " select max(id) from tbs_budget_change where budget_id = #{budgetId} and del_flag=0 ) and budget_check_state = 1") + long countLastChange(@Param("budgetId")Long budgetId); @InterceptorIgnore(tenantLine = "true") @Select("select tbs_budget.id from tbs_budget " + From 76ba98a889465e492387ccaa4afb16f0a124f38f Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 4 Jul 2024 16:22:33 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=88=91=E7=9A=84?= =?UTF-8?q?=E9=80=80=E5=9B=9E=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/so/VtbVerificationBatchQuery.java | 4 ++ .../VtbVerificationBatchController.java | 24 +++++++-- .../mapper/seeyon/CommonCheckMapper.xml | 51 ++++++++++++++++++- .../mapper/vtb/VtbVerificationBatchMapper.xml | 13 +++++ 4 files changed, 88 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java index d2b62b72..5c00ef6c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/VtbVerificationBatchQuery.java @@ -10,6 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import java.util.List; /** * @author YenHex @@ -18,6 +19,7 @@ import java.time.LocalDateTime; @Data public class VtbVerificationBatchQuery { + private Integer loadChild; /** 批次编码 */ private String vtbBatchCode; @@ -51,4 +53,6 @@ public class VtbVerificationBatchQuery { /** 创建时间 */ private LocalDateTime batchEndTime; + private List userIds; + } diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java index 0ebf8358..c8237601 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java @@ -14,6 +14,7 @@ import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; import com.qs.serve.modules.seeyon.entity.dto.CtpAffairPageSo; import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn; import com.qs.serve.modules.tbs.entity.TbsCostApply; @@ -49,6 +50,7 @@ import java.util.Map; @RequestMapping("vtb/verificationBatch") public class VtbVerificationBatchController { + private SysPostUserService postUserService; private SeeYonRequestService seeYonService; private VtbVerificationBatchService vtbVerificationBatchService; private VtbVerificationService vtbVerificationService; @@ -81,6 +83,25 @@ public class VtbVerificationBatchController { return R.byPageHelperList(list); } + /** + * 翻页2(连表查询-left join tbs_cost_apply) + * @param query + * @return + */ + @GetMapping("/pageMy") + public R> getPageMy(VtbVerificationBatchQuery query){ + String userId = AuthContextUtils.getSysUserId(); + List userIds = new ArrayList<>(); + if(query.getLoadChild()!=null&&query.getLoadChild().equals(1)){ + userIds = postUserService.listByChildIds(userId); + query.setUserIds(userIds); + } + userIds.add(userId); + PageUtil.startPage(); + List list = vtbVerificationBatchService.list2(query); + return R.byPageHelperList(list); + } + /** * ID查询 * @param id @@ -89,9 +110,6 @@ public class VtbVerificationBatchController { @GetMapping("/getById/{id}") public R getById(@PathVariable("id") String id){ VtbVerificationBatch batch = vtbVerificationBatchService.getById(id); - if(batch.getVtbBatchStatus().equals(VtbVerificationBatch.BatchState.CHECKING)){ - //TODO 补偿回调 - } List verificationList = vtbVerificationService .list(new LambdaQueryWrapper() .eq(VtbVerification::getBatchId,batch.getId())); diff --git a/src/main/resources/mapper/seeyon/CommonCheckMapper.xml b/src/main/resources/mapper/seeyon/CommonCheckMapper.xml index f4c7bbb9..652e0fad 100644 --- a/src/main/resources/mapper/seeyon/CommonCheckMapper.xml +++ b/src/main/resources/mapper/seeyon/CommonCheckMapper.xml @@ -118,6 +118,32 @@ + + select + 'BatchCheckCost' as target_type, + vtb_verification_batch.id as target_id, + vtb_verification_batch.vtb_batch_code as target_code, + vtb_verification_batch.vtb_batch_code as title, + vtb_verification_batch.create_time as `time` + from vtb_verification_batch + where vtb_verification_batch.vtb_batch_status = 3 + and vtb_verification_batch.user_id = #{query.userId} + and vtb_verification_batch.del_flag = 0 + + and vtb_verification_batch.batch_title like concat('%',#{query.title},'%') + + + and vtb_verification_batch.vtb_batch_code like concat('%',#{query.targetCode},'%') + + + and vtb_verification_batch.create_time >= #{query.startDate} + + + and vtb_verification_batch.create_time <= #{query.endDate} + + + + select 'CostBill' as target_type, @@ -222,6 +248,29 @@ and budget_change.submit_time <= #{query.endDate} + union + select + 'BatchCheckCost' as target_type, + vtb_verification_batch.id as target_id, + vtb_verification_batch.vtb_batch_code as target_code, + vtb_verification_batch.vtb_batch_code as title, + vtb_verification_batch.create_time as `time` + from vtb_verification_batch + where vtb_verification_batch.vtb_batch_status = 3 + and vtb_verification_batch.user_id = #{query.userId} + and vtb_verification_batch.del_flag = 0 + + and vtb_verification_batch.batch_title like concat('%',#{query.title},'%') + + + and vtb_verification_batch.vtb_batch_code like concat('%',#{query.targetCode},'%') + + + and vtb_verification_batch.create_time >= #{query.startDate} + + + and vtb_verification_batch.create_time <= #{query.endDate} + limit #{query.startRow},#{query.pageSize} @@ -397,7 +446,7 @@ and vtb_verification_batch.batch_title like concat('%',#{query.title},'%') - and vtb_verification_batch.batch_code like concat('%',#{query.targetCode},'%') + and vtb_verification_batch.vtb_batch_code like concat('%',#{query.targetCode},'%') and vtb_verification_batch.create_time >= #{query.startDate} diff --git a/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml b/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml index faa30744..29e857f0 100644 --- a/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml +++ b/src/main/resources/mapper/vtb/VtbVerificationBatchMapper.xml @@ -72,6 +72,7 @@ , tbs_cost_apply.`code` as cost_code, tbs_cost_apply.`charge_theme`, + tbs_cost_apply.`charge_state`, tbs_cost_apply.`supplier_biz_region_first_name`, tbs_cost_apply.`supplier_biz_region_second_name`, tbs_cost_apply.`supplier_biz_region_third_name`, @@ -95,11 +96,23 @@ and `vtb_verification_batch`.`create_time` >= #{query.batchStartTime} and `vtb_verification_batch`.`create_time` <= #{query.batchEndTime} + + and ( `vtb_verification_batch`.`user_id` in + + #{selectId} + + or `vtb_verification_batch`.`ext_user_id` in + + #{selectId} + ) + + and `tbs_cost_apply`.`code` like concat('%', #{query.costCode},'%') and `tbs_cost_apply`.`supplier_biz_region_first_name` like concat('%', #{query.supplierBizRegionFirstName},'%') and `tbs_cost_apply`.`supplier_biz_region_second_name` like concat('%',#{query.supplierBizRegionSecondName},'%') and `tbs_cost_apply`.`supplier_biz_region_third_name` like concat('%',#{query.supplierBizRegionThirdName},'%') + order by vtb_verification_batch.id desc From 1d5589ac334a13371f547585e34db19b033eda65 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 5 Jul 2024 15:46:28 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E6=A0=B8=E9=94=80=E7=8A=B6=E6=80=81=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qs/serve/common/util/HttpUtil.java | 7 ++ .../GoodsCustomerPriceController.java | 11 +++ .../goods/entity/dto/InventoryCusPrice.java | 2 + .../service/GoodsCustomerPriceService.java | 7 ++ .../impl/GoodsCustomerPriceServiceImpl.java | 78 +++++++++++++++++++ .../modules/tbs/common/TbsSeeYonConst.java | 1 + .../vtb/mapper/VtbVerificationMapper.java | 4 + ...VerificationBatchOperationServiceImpl.java | 5 +- .../impl/VtbVerificationServiceImpl.java | 10 ++- 9 files changed, 122 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/qs/serve/common/util/HttpUtil.java b/src/main/java/com/qs/serve/common/util/HttpUtil.java index d6b8790f..42f28786 100644 --- a/src/main/java/com/qs/serve/common/util/HttpUtil.java +++ b/src/main/java/com/qs/serve/common/util/HttpUtil.java @@ -8,6 +8,7 @@ import org.apache.http.HttpEntity; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; @@ -54,6 +55,12 @@ public class HttpUtil { post.addHeader(key,headers.get(key)); } } + post.setConfig( + RequestConfig.custom() + //连接超时60秒 + .setConnectTimeout(60*1000) + .build() + ); //执行post请求 response = client.execute(post); //访问成功状态码为200 diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java index 62f87127..bfad5de4 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java @@ -115,5 +115,16 @@ public class GoodsCustomerPriceController { return R.isTrue(result); } + + /** + * 同步客户特殊价 + * @return + */ + @GetMapping("/sync") + public R syncCusInvPrice(){ + goodsCustomerPriceService.syncCustomerPrice(); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java index 749bc890..65d3baa2 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java @@ -13,6 +13,8 @@ import java.util.Date; @Data public class InventoryCusPrice { + private Long rowId; + private String cusCode; private String invCode; diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java index 3220663c..033fa3a4 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java @@ -24,7 +24,14 @@ public interface GoodsCustomerPriceService extends IService GoodsCustomerPrice getBySupplierIdAndCode(String supplierId,String skuCode); + GoodsCustomerPrice getByCusCodeAndSkuCode(String supplierCode,String skuCode); + List getBySupplierCodeAndCode(String supplierCode, List skuCode); + /** + * 同步客户特殊价 + */ + void syncCustomerPrice(); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java index b87da564..f74e1847 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java @@ -2,16 +2,24 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.JsonUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.bo.GoodsCustomerPriceBo; import com.qs.serve.modules.goods.entity.bo.GoodsCustomerPriceSingleBo; +import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; +import com.qs.serve.modules.seeyon.service.SeeYonRequestService; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; +import com.qs.serve.modules.sys.entity.SysDictData; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysDictDataMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -34,9 +42,11 @@ import java.util.stream.Collectors; @AllArgsConstructor public class GoodsCustomerPriceServiceImpl extends ServiceImpl implements GoodsCustomerPriceService { + private final SysDictDataMapper sysDictDataMapper; private final BmsSupplierMapper bmsSupplierMapper; private final GoodsSkuMapper goodsSkuMapper; private final SysUserMapper sysUserMapper; + private final SeeYonRequestBaseService seeYonRequestBaseService; @Override public List selectGoodsCustomerPriceList(GoodsCustomerPrice query) { @@ -125,6 +135,14 @@ public class GoodsCustomerPriceServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(GoodsCustomerPrice::getSupplierCode,supplierCode) + .eq(GoodsCustomerPrice::getSkuCode,skuCode); + return this.getOne(lqw,false); + } + @Override public List getBySupplierCodeAndCode(String supplierCode, List skuCodes) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); @@ -133,5 +151,65 @@ public class GoodsCustomerPriceServiceImpl extends ServiceImpl() + .eq(SysDictData::getGroupKey,DICT_KEY)); + Long maxId = 0L; + if(dictData!=null&&dictData.getKeyVal()!=null){ + maxId = Long.parseLong(dictData.getKeyVal()); + } + List cusPriceList = new ArrayList<>(); + + R res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_LAST_UPD+"/"+maxId,null,"查询最近更新的客户特殊价"); + if(res.getStatus().equals(200)){ + cusPriceList = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); + } + + assert cusPriceList != null; + for (InventoryCusPrice cusPrice : cusPriceList) { + if(maxId==null || cusPrice.getRowId() > maxId){ + maxId = cusPrice.getRowId(); + } + GoodsCustomerPrice customerPrice = this.getByCusCodeAndSkuCode(cusPrice.getCusCode(),cusPrice.getInvCode()); + if(customerPrice==null){ + GoodsSku goodsSku = goodsSkuMapper.selectBySkuCode(cusPrice.getInvCode()); + BmsSupplier supplier = bmsSupplierMapper.selectOne(new LambdaQueryWrapper() + .eq(BmsSupplier::getCode,cusPrice.getCusCode())); + customerPrice = new GoodsCustomerPrice(); + customerPrice.setSupplierId(supplier.getId()); + customerPrice.setSupplierCode(supplier.getCode()); + customerPrice.setSupplierName(supplier.getName()); + customerPrice.setSkuId(goodsSku.getId()+""); + customerPrice.setSkuCode(goodsSku.getSkuCode()); + customerPrice.setSkuName(goodsSku.getSkuName()); + customerPrice.setSkuUnit(goodsSku.getUnitName()); + customerPrice.setInitPrice(cusPrice.getPrice()); + customerPrice.setRealPrice(cusPrice.getPrice()); + this.save(customerPrice); + }else { + customerPrice.setRealPrice(cusPrice.getPrice()); + this.updateById(customerPrice); + } + } + if(maxId!=0){ + if(dictData==null){ + dictData = new SysDictData(); + dictData.setDictId(0L); + dictData.setGroupKey(DICT_KEY); + dictData.setKeyVal(maxId+""); + dictData.setLabel("同步客户特殊价最大值ID"); + dictData.setSort(0); + dictData.setRemark("同步客户特殊价最大值ID"); + sysDictDataMapper.insert(dictData); + }else { + dictData.setKeyVal(maxId+""); + sysDictDataMapper.updateById(dictData); + } + } + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index f786feba..7aa0e3c7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -105,6 +105,7 @@ public interface TbsSeeYonConst { String ERP_CUS_AMOUNT = "/erp/customer/amount"; String ERP_CUS_AMOUNT_QUO = "/erp/customer/quoAmount"; String ERP_CUS_INV_PRICE = "/erp/inventory/invPrices"; + String ERP_CUS_INV_LAST_UPD = "/erp/inventory/lastUpdateCusInvPrices"; String ERP_CUS_INV_STAND = "/erp/inventory/standList"; String ERP_CUS_INV_SYNC_PRICE = "/erp/inventory/syncPrice"; String ERP_CUS_INV_SPECIAL = "/erp/inventory/specialSyncCrm"; diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java index 9a52a32e..2a36fdf3 100644 --- a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java @@ -18,6 +18,10 @@ import java.util.List; */ public interface VtbVerificationMapper extends BaseMapper { + + @Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and batchId = #{batchId} ") + BigDecimal totalVtbAmtByBatchId(@Param("batchId")Long batchId); + @Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and activity_id = #{activityId} and verification_state = 1") BigDecimal totalActivityVerification(@Param("activityId")String activityId); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java index 0c5fba90..34e46eae 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java @@ -16,6 +16,7 @@ import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.vo.VtbVerificationActReleaseVo; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; import com.qs.serve.modules.vtb.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -39,6 +40,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification private final VtbVerificationBatchService vtbVerificationBatchService; private final VtbVerificationService vtbVerificationService; + private final VtbVerificationMapper vtbVerificationMapper; private final SysUserService sysUserService; private final VtbVerificationApplication verificationApplication; private final VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService; @@ -80,12 +82,11 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification List verificationList = vtbVerificationBatchService.listVerifications(batch.getId()); batch.setVtbBatchStatus(VtbVerificationBatch.BatchState.CHECK_OK); batch.setBackedTime(LocalDateTime.now()); - BigDecimal totalAmt = BigDecimal.ZERO; for (VtbVerification verification : verificationList) { //循环调用每个核销 vtbVerificationService.successCommit(verification.getId()); - totalAmt.add(verification.getAmount()); } + BigDecimal totalAmt = vtbVerificationMapper.totalVtbAmtByBatchId(batch.getId()); batch.setResultCheckAmount(totalAmt); vtbVerificationBatchService.updateById(batch); return null; diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index c4f9d140..dae59b2b 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -1428,7 +1428,15 @@ public class VtbVerificationServiceImpl extends ServiceImpl Date: Tue, 9 Jul 2024 09:36:29 +0800 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=A2=84?= =?UTF-8?q?=E7=AE=97=E4=B8=8D=E8=BF=90=E4=BD=9C=E7=8A=B6=E6=80=81=EF=BC=9B?= =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=88=E5=B9=B6=E6=A0=B8=E9=94=80?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=BC=82=E5=B8=B8=EF=BC=9Bfix=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95=E5=85=B3=E8=81=94=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/controller/OmsOrderController.java | 4 +-- .../oms/controller/api/OmsOrderApi.java | 9 ++++--- .../impl/SeeYonRequestBaseService.java | 2 +- .../tbs/controller/TbsBudgetController.java | 14 +++++++++++ .../serve/modules/tbs/entity/TbsBudget.java | 5 +++- .../modules/tbs/entity/bo/TbsBudgetAmtBo.java | 5 +--- .../modules/tbs/entity/bo/TbsBudgetBo.java | 3 +++ .../tbs/entity/bo/TbsBudgetStateBo.java | 3 +++ .../modules/tbs/entity/so/TbsBudgetSo.java | 3 +++ .../impl/TbsBudgetChangeServiceImpl.java | 4 +-- .../service/impl/TbsBudgetServiceImpl.java | 1 + .../service/impl/TbsCostApplyServiceImpl.java | 25 ++++++++++++++++++- .../VtbVerificationBatchController.java | 4 +++ .../vtb/mapper/VtbVerificationMapper.java | 2 +- .../impl/VtbVerificationServiceImpl.java | 5 ++++ .../resources/mapper/tbs/TbsBudgetMapper.xml | 1 + 16 files changed, 74 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java index 90c268ea..177948bd 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java @@ -76,9 +76,9 @@ public class OmsOrderController { Set userIds = list.stream().map(OmsOrder::getCheckUserId).collect(Collectors.toSet()); List userList = sysUserService.listByIds(userIds); - Set orderIds = list.stream().map(OmsOrder::getId).collect(Collectors.toSet()); - List orderItems = omsOrderItemService.list(new LambdaQueryWrapper().eq(OmsOrderItem::getOrderId,orderIds)); + orderIds.add(0L); + List orderItems = omsOrderItemService.list(new LambdaQueryWrapper().in(OmsOrderItem::getOrderId,orderIds)); Map> orderItemsMap = orderItems.stream().collect(Collectors.groupingBy(OmsOrderItem::getOrderId)); for (OmsOrder order : list) { BmsSupplierAddress supplierAddress = null; diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index 00e4e8e4..c72ce3cd 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -142,9 +142,7 @@ public class OmsOrderApi { PageUtil.startPage(); LambdaQueryWrapper orderWrapper = new LambdaQueryWrapper<>(param); List list = omsOrderService.list(orderWrapper); - for (OmsOrder omsOrder : list) { - omsOrderService.checkMsOrderStatus(omsOrder); - } + this.buildOrderVoInfo(list); return R.byPageHelperList(list); } @@ -161,7 +159,11 @@ public class OmsOrderApi { orderWrapper.eq(OmsOrder::getOrderType,param.getOrderType()==null?0:param.getOrderType()); orderWrapper.orderByDesc(OmsOrder::getId); List list = omsOrderService.list(orderWrapper); + this.buildOrderVoInfo(list); + return R.byPageHelperList(list); + } + private void buildOrderVoInfo(List list) { List userIds = list.stream().map(OmsOrder::getCheckUserId).collect(Collectors.toList()); List sysUserList = new ArrayList<>(); if(userIds.size()>0){ @@ -198,7 +200,6 @@ public class OmsOrderApi { order.setOrderItems(itemsMap.get(order.getId())); } - return R.byPageHelperList(list); } /** diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestBaseService.java b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestBaseService.java index 0291f8cc..64fde847 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestBaseService.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestBaseService.java @@ -48,7 +48,7 @@ public class SeeYonRequestBaseService { if(result.getStatus()!=200){ log.error("致远服务失败[{},{}]\nParam:{}",title,result.getMsg(),JsonUtil.objectToJson(param)); } - log.debug("致远服务返回R:{}",JsonUtil.objectToJson(result)); + log.info("致远服务返回R:{}",JsonUtil.objectToJson(result)); return result; } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 92c57d09..6ea47170 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tbs.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.dto.PageVo; @@ -223,6 +224,19 @@ public class TbsBudgetController { return R.ok(); } + /** + * 更新预算的不运作状态 + * @param param + * @return + */ + @PostMapping("/updateInactiveFlag") + @SysLog(module = SystemModule.Budget, title = "预算不运作状态", biz = BizType.UPDATE) + public R updateInactiveFlag(@RequestBody @Valid TbsBudgetStateBo param){ + tbsBudgetService.update(new LambdaUpdateWrapper() + .set(TbsBudget::getInactiveFlag,param.getInactiveFlag()) + .eq(TbsBudget::getId,param.getId())); + return R.ok(); + } /** * 更新跨年状态 diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java index a3126cbf..10c770ad 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java @@ -43,7 +43,10 @@ public class TbsBudget implements Serializable { /** 费用启用状态 0/1 */ private Integer budgetState; - /** 停用状态 0/1 */ + /** 不活动的 0/1 用于随意关停预算 */ + private Integer inactiveFlag; + + /** 停用状态 0/1 用于标记跨年停用预算 */ private Integer stopFlag; /** 是否允许跨年,控制停用状态 */ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java index b1fa5323..9f8d60b4 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java @@ -11,10 +11,7 @@ import java.math.BigDecimal; @Data public class TbsBudgetAmtBo { - /** - * scheduleItemBudgetId - */ - private Long scheduleItemId; + private Long budgetScheduleItemId; private BigDecimal preDispatchAmount; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java index 6f484666..44675e6c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java @@ -41,6 +41,9 @@ public class TbsBudgetBo implements Serializable { /** 是否允许跨年,控制停用状态 */ private Integer crossYearFlag; + /** 不活动的 0/1 */ + private Integer inactiveFlag; + /** * 成本中心类型: center, diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetStateBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetStateBo.java index c6093002..a99df0b8 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetStateBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetStateBo.java @@ -22,4 +22,7 @@ public class TbsBudgetStateBo { /** 是否允许跨年,控制停用状态 */ private Integer crossYearFlag; + /** 是否允许跨年,控制停用状态 */ + private Integer inactiveFlag; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java index c5bbdbdc..e9c26930 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java @@ -31,6 +31,9 @@ public class TbsBudgetSo implements Serializable { /** 停用状态 0/1 */ private Integer stopFlag; + /** 不活动的 0/1 */ + private Integer inactiveFlag; + /** 是否允许跨年,控制停用状态 */ private Integer crossYearFlag; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java index c1207454..111c3853 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java @@ -271,7 +271,7 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl budgetAmtUpdateList = param.getBudgetAmtUpdateList(); if(CollectionUtil.isNotEmpty(budgetAmtUpdateList)){ //更变的周期项 - List budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getScheduleItemId).collect(Collectors.toList()); + List budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getBudgetScheduleItemId).collect(Collectors.toList()); List budgetLogWithAmountList = tbsScheduleItemBudgetMapper.getSumAmtInList(budgetScheduleIds,Arrays.asList(0,2,3)); //所有的周期项 List allScheduleItemBudgetList = tbsScheduleItemBudgetMapper @@ -294,7 +294,7 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl budget.setBudgetCode(budgetBo.getBudgetCode()); budget.setSubjectId(budgetBo.getSubjectId()); budget.setAttachIds(budgetBo.getAttachIds()); + budget.setInactiveFlag(budgetBo.getInactiveFlag()); //设置指定模板 budget.setTemplateIds(new String[]{}); if(budgetBo.getTemplateFlag()!=null&&budgetBo.getTemplateFlag().equals(1)){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 0b706741..935d5057 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -430,7 +430,26 @@ public class TbsCostApplyServiceImpl extends ServiceImpl flowIdResult = null; //启用新方法开关 if( tbsCostApply.getContractFlag().equals(1)){ + List uploadFileList = new ArrayList<>(); + + List actFileIds = new ArrayList<>(); + for (TbsActivity activity : activityList) { + if (CollectionUtil.isNotEmpty(activity.getAttachIds())){ + actFileIds.addAll(Arrays.asList(activity.getAttachIds())); + } + } + if(CollectionUtil.isNotEmpty(actFileIds)){ + List attachList = sysAttachService.listByIds(actFileIds); + for (SysAttach sysAttach : attachList) { + OaUploadFile uploadFile = new OaUploadFile(); + uploadFile.setField("file"); + uploadFile.setName("活动附件"+sysAttach.getName()); + uploadFile.setUrl("https://qsjslservice.oss-cn-guangzhou.aliyuncs.com/"+sysAttach.getRelativePath()); + uploadFileList.add(uploadFile); + } + } + if(CollectionUtil.isNotEmpty(oaAttachmentsIdList)){ List attachList = sysAttachService.listByIds(oaAttachmentsIdList); for (SysAttach sysAttach : attachList) { @@ -451,6 +470,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl activityList, List payConditions, BmsSupplier supplier, SysUser sysUser, Map data,List contracts,List costTodoList ,Map newWayData) { + private void buildContractApplyData(String id, TbsCostApply tbsCostApply, List activityList, + List payConditions, BmsSupplier supplier, SysUser sysUser, + Map data,List contracts, + List costTodoList ,Map newWayData) { data.put("title", tbsCostApply.getChargeTheme()); data.put("orgId", tbsCostApply.getId().toString()); data.put("costApplyCode", tbsCostApply.getCode()); diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java index c8237601..7f2ab350 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java @@ -110,6 +110,10 @@ public class VtbVerificationBatchController { @GetMapping("/getById/{id}") public R getById(@PathVariable("id") String id){ VtbVerificationBatch batch = vtbVerificationBatchService.getById(id); + if(batch.getVtbBatchStatus().equals(VtbVerificationBatch.BatchState.CHECKING)){ + vtbVerificationBatchOperationService.runCompensate(id); + batch = vtbVerificationBatchService.getById(id); + } List verificationList = vtbVerificationService .list(new LambdaQueryWrapper() .eq(VtbVerification::getBatchId,batch.getId())); diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java index 2a36fdf3..e095e67c 100644 --- a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java @@ -19,7 +19,7 @@ import java.util.List; public interface VtbVerificationMapper extends BaseMapper { - @Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and batchId = #{batchId} ") + @Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and batch_id = #{batchId} ") BigDecimal totalVtbAmtByBatchId(@Param("batchId")Long batchId); @Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and activity_id = #{activityId} and verification_state = 1") diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index dae59b2b..20580a8b 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -1584,6 +1584,11 @@ public class VtbVerificationServiceImpl extends ServiceImpl and `tbs_budget`.`budget_number` like concat('%',#{query.budgetNumber},'%') and `tbs_budget`.`budget_state` = #{query.budgetState} and `tbs_budget`.`cross_year_flag` = #{query.crossYearFlag} + and `tbs_budget`.`inactive_flag` = #{query.inactiveFlag} and `tbs_budget`.`budget_check_state` = #{query.budgetCheckState} and `tbs_budget`.`budget_code` like concat('%',#{query.budgetCode},'%') From ff8e70c081c8c5e9d3c11bf24fca68b44e2b0241 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 9 Jul 2024 10:23:30 +0800 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=A2=84?= =?UTF-8?q?=E7=AE=97=E4=B8=8D=E8=BF=90=E4=BD=9C=E7=8A=B6=E6=80=81,?= =?UTF-8?q?=E6=8B=A6=E6=88=AA=E8=B4=B9=E7=94=A8=E7=94=B3=E8=AF=B7=E5=92=8C?= =?UTF-8?q?=E6=94=BF=E7=AD=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serve/modules/tbs/service/TbsBudgetMatchApplication.java | 3 ++- .../tzc/service/impl/TzcPolicyApplicationServiceImpl.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java index 576213f7..b57e8ed1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java @@ -98,7 +98,8 @@ public class TbsBudgetMatchApplication { //不是回退和异动,需要过滤停用条件 if(!costApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())&& !costApply.getChargeState().equals(TbsCostApplyState.State_7_changed.getCode())){ - if(budget.getStopFlag().equals(1)){ + //跨年和不运作状态时跳过 + if(budget.getStopFlag().equals(1)||budget.getInactiveFlag().equals(1)){ continue; } } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index b36022f4..69c94095 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -673,6 +673,8 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ ); budgetLqw.in(TbsBudget::getCenterId,centerIds); budgetLqw.eq(TbsBudget::getBudgetState,1); + budgetLqw.eq(TbsBudget::getStopFlag,0); + budgetLqw.eq(TbsBudget::getInactiveFlag,0); budgetLqw.eq(TbsBudget::getTemplateFlag,0); budgetList = tbsBudgetMapper.selectList(budgetLqw); }else {