diff --git a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java index 0a5f7a42..d1a9fdbc 100644 --- a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java +++ b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java @@ -70,31 +70,45 @@ public class AsyncFactory { return new TimerTask() { @Override public void run() { - String lockKey = "customer_price_lock:"+userId+":"+supplierCode; - String priceDataKey = "customer_price_data:"+userId; - RedisService redisService = SpringUtils.getBean(RedisService.class); - redisService.set(lockKey,1,30,TimeUnit.SECONDS); - log.debug("获取客户金额,cusCode:{}",supplierCode); - //请求获取金额 - SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); - R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); - if(reqResult==null || !reqResult.getStatus().equals(200)){ - //有错误退出 - log.warn("获取客户金额失败,cusCode:{}",supplierCode); - redisService.set(lockKey,0); - return; - } - String amount = reqResult.getData()==null?"0":reqResult.getData(); - //数据格式:supplierCode_&_amount 如 A235654_&_612.00 - String value = supplierCode+"_&_"+amount; - //缓存15分钟 - log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); - redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); - redisService.set(lockKey,0); + getCumSurplusPrice(userId, supplierCode); } + }; } + /** + * 获取客户帐余 + * @param userId + * @param supplierCode + * @return + */ + public static String getCumSurplusPrice(String userId, String supplierCode) { + String lockKey = "customer_price_lock:"+userId+":"+supplierCode; + String priceDataKey = "customer_price_data:"+userId; + RedisService redisService = SpringUtils.getBean(RedisService.class); + redisService.set(lockKey,1,30,TimeUnit.SECONDS); + log.debug("获取客户金额,cusCode:{}",supplierCode); + //请求获取金额 + SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); + R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); + if(reqResult==null || !reqResult.getStatus().equals(200)){ + //有错误退出 + log.warn("获取客户金额失败,cusCode:{}",supplierCode); + redisService.set(lockKey,0); + return "-1"; + } + String amount = reqResult.getData()==null?"0":reqResult.getData(); + //数据格式:supplierCode_&_amount 如 A235654_&_612.00 + String value = supplierCode+"_&_"+amount; + //缓存15分钟 + log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); + redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); + redisService.set(lockKey,0); + + // + return amount; + } + /** * 异步保存政策状态 * @param policyId diff --git a/src/main/java/com/qs/serve/common/model/dto/RowParam.java b/src/main/java/com/qs/serve/common/model/dto/RowParam.java index b0f40732..a7c491bd 100644 --- a/src/main/java/com/qs/serve/common/model/dto/RowParam.java +++ b/src/main/java/com/qs/serve/common/model/dto/RowParam.java @@ -14,7 +14,8 @@ public class RowParam { private Integer size; public RowParam(Integer startIndex, Integer size) { - + this.startIndex = startIndex; + this.size = size; } public RowParam(boolean pageable) { diff --git a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java index 1eef7d9e..33ab1a1b 100644 --- a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java +++ b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java @@ -70,7 +70,7 @@ public class CodeGenUtil { return value; } - public static String generate(SourceKey sourceKey){ + public synchronized static String generate(SourceKey sourceKey){ try { LocalDate localDateTime = LocalDate.now(); DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -102,7 +102,7 @@ public class CodeGenUtil { return digitsNum + appendZeros + appendStr+subflex; } - public static String getDataCode(SourceDataKey dataKey){ + public synchronized static String getDataCode(SourceDataKey dataKey){ String key = "code_data_index:"+dataKey.getCode(); String commonVal = getCommonValue(key); return dataKey.getPrefix() + commonVal; diff --git a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java index 8b4076da..8451df93 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java @@ -21,6 +21,7 @@ import com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo; import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper; import com.qs.serve.modules.bms.service.*; import com.qs.serve.modules.his.service.HisUserChannelPointService; +import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysUserSalesService; @@ -57,6 +58,7 @@ public class BmsChannelPointMyController { private TbsActivityChannelPointService activityChannelPointService; private BmsChannelPointMapper channelPointMapper; private HisUserChannelPointService hisUserChannelPointService; + private HisUserSupplierService hisUserSupplierService; private SysUserService sysUserService; private BmsRegionUserService bmsRegionUserService; private SysPostUserService postUserService; @@ -85,37 +87,41 @@ public class BmsChannelPointMyController { if(CollectionUtil.isNotEmpty(param.getSelectIds())){ lqw.in(BmsChannelPoint::getId, param.getSelectIds()); } + RowParam rowParam = new RowParam(param.getStartNum(),param.getExportNum()); + List list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId()),rowParam); - //过滤为当前负责人 - LambdaQueryWrapper masterLqw = new LambdaQueryWrapper<>(); - masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point); - masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId()); - List masterUsers = bmsMasterUserService.list(masterLqw); - Map> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType)); - List channelMasterList = masterUsersMap.get(MasterUserType.Channel); - List pointMasterList = masterUsersMap.get(MasterUserType.Point); - List channelIds = new ArrayList<>(); - List pointIds = new ArrayList<>(); - channelIds.add("#"); - pointIds.add("#"); - if(CollectionUtil.isNotEmpty(channelMasterList)){ - List channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); - channelIds.addAll(channelMasterIdsTmp); - } - if(CollectionUtil.isNotEmpty(pointMasterList)){ - List pointMasterIdsTmp = pointMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); - pointIds.addAll(pointMasterIdsTmp); - } - lqw.and(qw->{ - qw.in(BmsChannelPoint::getChannelId,channelIds).or().in(BmsChannelPoint::getId,pointIds); - }); - if(param.getExportNum() != null && param.getExportNum()!= 0 - && param.getStartNum() != null && param.getStartNum()!= 0){ - lqw.last(" limit "+param.getStartNum() + "," + param.getExportNum()); - } - - List list = bmsChannelPointService.list(lqw); + //取消,当下逻辑只加载直属负责人的数据 + //过滤为当前负责人 +// LambdaQueryWrapper masterLqw = new LambdaQueryWrapper<>(); +// masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point); +// masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId()); +// List masterUsers = bmsMasterUserService.list(masterLqw); +// Map> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType)); +// List channelMasterList = masterUsersMap.get(MasterUserType.Channel); +// List pointMasterList = masterUsersMap.get(MasterUserType.Point); +// List channelIds = new ArrayList<>(); +// List pointIds = new ArrayList<>(); +// channelIds.add("#"); +// pointIds.add("#"); +// if(CollectionUtil.isNotEmpty(channelMasterList)){ +// List channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); +// channelIds.addAll(channelMasterIdsTmp); +// } +// if(CollectionUtil.isNotEmpty(pointMasterList)){ +// List pointMasterIdsTmp = pointMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); +// pointIds.addAll(pointMasterIdsTmp); +// } +// lqw.and(qw->{ +// qw.in(BmsChannelPoint::getChannelId,channelIds).or().in(BmsChannelPoint::getId,pointIds); +// }); +// +// if(param.getExportNum() != null && param.getExportNum()!= 0 +// && param.getStartNum() != null && param.getStartNum()!= 0){ +// lqw.last(" limit "+param.getStartNum() + "," + param.getExportNum()); +// } +// +// List list = bmsChannelPointService.list(lqw); List bizRegionIds = new ArrayList<>(); bizRegionIds.addAll(list.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList())); bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java index caa30886..e9d585e8 100644 --- a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java +++ b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java @@ -1,8 +1,10 @@ package com.qs.serve.modules.erp.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.framework.manager.AsyncFactory; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; @@ -54,6 +56,19 @@ public class ErpCustomerController { return R.error(); } + /** + * 获取客户帐余(同步) + * @param code + * @return + */ + @GetMapping("/getAmountSync/{code}") + public R getAmountSync(@PathVariable String code){ + ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult(); + String amount = AsyncFactory.getCumSurplusPrice(AuthContextUtils.getSysUserId(),code); + amountResult.setAmount(new BigDecimal(amount)); + return R.ok(amountResult); + } + /** * 初始化客户帐余 * @param code diff --git a/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java b/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java index 74bbb832..4549f26e 100644 --- a/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java +++ b/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java @@ -38,5 +38,7 @@ public class ExlTableBo { private List columnList; /** 管理员配置 */ - private ExlTableUserBo adminParam; + private ExlTableUserBo administratorParam; + + private List userIds; } diff --git a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java index e7362b1b..8235da2e 100644 --- a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java @@ -58,7 +58,7 @@ public class ExlTableConfServiceImpl extends ServiceImpl updateById(@RequestBody @Valid TbsBudgetTempBo param){ + tbsBudgetService.updateTemplates(param); + return R.ok(); + } + /** * 修改周期金额 * @param param 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 56547150..8e69af22 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 @@ -156,10 +156,16 @@ public class TbsBudget implements Serializable { @JsonProperty private String delFlag; + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + /** 附件id */ @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) private String[] attachIds; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] templateIds; + /** 预算条件 */ @TableField(exist = false) private List budgetConditionList; 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 3ec01de6..e91b6d4f 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 @@ -76,6 +76,11 @@ public class TbsBudgetBo implements Serializable { private String[] attachIds; + private String[] templateIds; + + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + @Data public static class ScheduleItem{ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java new file mode 100644 index 00000000..e3093047 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java @@ -0,0 +1,24 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/11/16 + */ +@Data +public class TbsBudgetTempBo { + + /** id */ + @NotNull + private Long id; + + + private String[] templateIds; + + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + +} 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 e7c8e6b2..3cd6bbad 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 @@ -1,5 +1,6 @@ package com.qs.serve.modules.tbs.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.AmountDTO; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.StringUtils; @@ -7,10 +8,12 @@ import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.util.CostSort2WrapperUtil; import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; +import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.dto.TbsCenterGoodsGroupDTO; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableResultVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; +import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMatchMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -34,13 +37,23 @@ public class TbsBudgetMatchApplication { private final TbsActivityCenterGoodsService tbsActivityCenterGoodsService; private final TbsActivityService activityService; private final TbsBudgetMatchMapper budgetMatchMapper; + private final TbsBudgetMapper budgetMapper; public TbsBudgetTableResultVo getMatchResult(Long costApplyId,boolean buildTable){ + List activityList = activityService.listByCostApplyId(costApplyId); + //list转map,减少循环代码 Map activityMap = new HashMap<>(activityList.size()); + //模板过滤-活动指定预算 + Map> activityBudgetIdsMap = new HashMap<>(activityList.size()); for (TbsActivity activity : activityList) { activityMap.put(activity.getId(),activity); + if(StringUtils.hasText(activity.getTemplateBudgetIds())){ + List budgetIdsList = Arrays.stream(activity.getTemplateBudgetIds().split(",")).map(Long::parseLong) + .collect(Collectors.toList()); + activityBudgetIdsMap.put(activity.getId(),budgetIdsList); + } } List activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); // 记录使用金额 @@ -48,6 +61,8 @@ public class TbsBudgetMatchApplication { // 提取命中的预算 Map matchItemBudgetsMap = new HashMap<>(); Set scheduleItemBudgetIds = new HashSet<>(); + //所有的预算 + Set allBudgetIds = new HashSet<>(); for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { // 通过TbsActivityCenterGoods获取匹配条件的预算 List scheduleItemBudgetList = this.centerGoodsMatchTbsScheduleItemBudget(centerGoods); @@ -56,17 +71,72 @@ public class TbsBudgetMatchApplication { if(scheduleItemBudgetList.size()>0){ List sids = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getId).collect(Collectors.toList()); scheduleItemBudgetIds.addAll(sids); + List budgetIds = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList()); + allBudgetIds.addAll(budgetIds); } centerGoods.setMatch2ScheduleItemBudgetList(scheduleItemBudgetList); } //加载金额统计 this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds,costApplyId); + + //加载所有预算 + allBudgetIds.add(0L); +// LambdaQueryWrapper budgetTemplateFlagLqw = new LambdaQueryWrapper<>(); +// budgetTemplateFlagLqw.eq(TbsBudget::getTemplateFlag,1); +// budgetTemplateFlagLqw.in(TbsBudget::getId,allBudgetIds); +// budgetTemplateFlagLqw.apply(" length(template_ids)>0 "); +// List budgetTemplateFlagList = budgetMapper.selectList(budgetTemplateFlagLqw); + List allBudgetList = budgetMapper.selectBatchIds(allBudgetIds); + Map allBudgetMap = new HashMap<>(); + for (TbsBudget budget : allBudgetList) { + allBudgetMap.put(budget.getId(),budget); + } + // 金额匹配 for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { // 通过TbsActivityCenterGoods获取匹配条件的预算 List scheduleItemBudgetList = centerGoods.getMatch2ScheduleItemBudgetList(); // 判断金额是否够扣 for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) { + + + //跳过活动模板指定的预算 + List matchActBudgetIds = activityBudgetIdsMap.get(centerGoods.getActivityId()); + boolean notMatch = false; + if(CollectionUtil.isNotEmpty(matchActBudgetIds)){ + notMatch = true; + for (Long budgetId : matchActBudgetIds) { + if(itemBudget.getBudgetId().equals(budgetId)){ + notMatch = false; + break; + } + } + } + if(!notMatch){ + continue; + } + + //跳过预算指定的模板 + TbsActivity activity = activityMap.get(centerGoods.getActivityId()); + String templateId = activity.getTenantId(); + TbsBudget budget = allBudgetMap.get(itemBudget.getBudgetId()); + if (budget.getTemplateFlag().equals(1)) { + if(templateId==null||budget.getTemplateIds()==null||budget.getTemplateIds().length<1){ + continue; + } + boolean matchTemId = false; + for (String budgetTemplateId : budget.getTemplateIds()) { + if(templateId.equals(budgetTemplateId)){ + matchTemId = true; + break; + } + } + if(!matchTemId){ + continue; + } + } + + //开始匹配主要逻辑 Long scheduleItemBudgetId = itemBudget.getId(); BigDecimal usableAmt = usableAmountMap.get(scheduleItemBudgetId); if(usableAmt==null){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index b14abff2..2d59ec77 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java @@ -33,6 +33,9 @@ public interface TbsBudgetService extends IService { void startBudget(Long id); + /** 更新模板 */ + void updateTemplates(TbsBudgetTempBo tempBo); + // void modifyByExcel(TbsBudgetExcelBo budgetBo); //void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 56592a41..69fb6d22 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -33,10 +33,7 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetMoveAmountBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo; +import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; @@ -189,6 +186,16 @@ public class TbsBudgetServiceImpl extends ServiceImpl } budget.setBudgetCode(budgetBo.getBudgetCode()); budget.setSubjectId(budgetBo.getSubjectId()); + //设置指定模板 + budget.setTemplateIds(new String[]{}); + if(budget.getTemplateFlag()!=null&&budget.getTemplateFlag().equals(1)){ + if(budgetBo.getTemplateIds()!=null&&budgetBo.getTemplateIds().length>0){ + budget.setTemplateIds(budgetBo.getTemplateIds()); + } + budget.setTemplateFlag(1); + }else { + budget.setTemplateFlag(0); + } BmsSubject subject = null; if(budget.getSubjectId()!=0L){ subject = subjectService.getById(budgetBo.getSubjectId()); @@ -342,6 +349,21 @@ public class TbsBudgetServiceImpl extends ServiceImpl budgetLogService.saveBatch(budgetLogList); } + @Override + public void updateTemplates(TbsBudgetTempBo tempBo) { + TbsBudget budget = new TbsBudget(); + budget.setId(tempBo.getId()); + budget.setTemplateIds(new String[]{}); + if(budget.getTemplateFlag()!=null&&budget.getTemplateFlag().equals(1)){ + if(tempBo.getTemplateIds()!=null&&tempBo.getTemplateIds().length>0){ + budget.setTemplateIds(tempBo.getTemplateIds()); + } + budget.setTemplateFlag(1); + }else { + budget.setTemplateFlag(0); + } + this.updateById(budget); + } @Override public TbsBudget getByCode(String code) {