Browse Source

添加预算指定活动模板

v1.0
Yen 2 years ago
parent
commit
5eb850c5cb
  1. 56
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 3
      src/main/java/com/qs/serve/common/model/dto/RowParam.java
  3. 4
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  4. 64
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java
  5. 15
      src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java
  6. 4
      src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java
  7. 4
      src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java
  8. 13
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  9. 6
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java
  10. 5
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java
  11. 24
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java
  12. 70
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  13. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  14. 30
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

56
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<String> 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<String> 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

3
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) {

4
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;

64
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<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId()),rowParam);
//过滤为当前负责人
LambdaQueryWrapper<BmsMasterUser> masterLqw = new LambdaQueryWrapper<>();
masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point);
masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId());
List<BmsMasterUser> masterUsers = bmsMasterUserService.list(masterLqw);
Map<String,List<BmsMasterUser>> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType));
List<BmsMasterUser> channelMasterList = masterUsersMap.get(MasterUserType.Channel);
List<BmsMasterUser> pointMasterList = masterUsersMap.get(MasterUserType.Point);
List<String> channelIds = new ArrayList<>();
List<String> pointIds = new ArrayList<>();
channelIds.add("#");
pointIds.add("#");
if(CollectionUtil.isNotEmpty(channelMasterList)){
List<String> channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
channelIds.addAll(channelMasterIdsTmp);
}
if(CollectionUtil.isNotEmpty(pointMasterList)){
List<String> 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<BmsChannelPoint> list = bmsChannelPointService.list(lqw);
//取消,当下逻辑只加载直属负责人的数据
//过滤为当前负责人
// LambdaQueryWrapper<BmsMasterUser> masterLqw = new LambdaQueryWrapper<>();
// masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point);
// masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId());
// List<BmsMasterUser> masterUsers = bmsMasterUserService.list(masterLqw);
// Map<String,List<BmsMasterUser>> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType));
// List<BmsMasterUser> channelMasterList = masterUsersMap.get(MasterUserType.Channel);
// List<BmsMasterUser> pointMasterList = masterUsersMap.get(MasterUserType.Point);
// List<String> channelIds = new ArrayList<>();
// List<String> pointIds = new ArrayList<>();
// channelIds.add("#");
// pointIds.add("#");
// if(CollectionUtil.isNotEmpty(channelMasterList)){
// List<String> channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
// channelIds.addAll(channelMasterIdsTmp);
// }
// if(CollectionUtil.isNotEmpty(pointMasterList)){
// List<String> 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<BmsChannelPoint> list = bmsChannelPointService.list(lqw);
List<String> 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());

15
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<ErpCustomerAmountResult> 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

4
src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java

@ -38,5 +38,7 @@ public class ExlTableBo {
private List<ExlColumnConf> columnList;
/** 管理员配置 */
private ExlTableUserBo adminParam;
private ExlTableUserBo administratorParam;
private List<String> userIds;
}

4
src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java

@ -58,7 +58,7 @@ public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlT
a.setId(null);
});
columnConfService.saveBatch(columnList);
ExlTableUserBo tableUserBo = param.getAdminParam();
ExlTableUserBo tableUserBo = param.getAdministratorParam();
if(tableUserBo!=null){
tableUserBo.setTableConfId(tableConf.getId());
tableUserService.confAdmins(tableUserBo);
@ -93,7 +93,7 @@ public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlT
});
columnConfService.saveBatch(columnList);
}
ExlTableUserBo tableUserBo = param.getAdminParam();
ExlTableUserBo tableUserBo = param.getAdministratorParam();
if(tableUserBo!=null){
tableUserBo.setTableConfId(tableConf.getId());
tableUserService.confAdmins(tableUserBo);

13
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -209,6 +209,19 @@ public class TbsBudgetController {
return R.ok();
}
/**
* 更新预算指定模板
* @param param
* @return
*/
@PostMapping("/updateTemplates")
@SysLog(module = SystemModule.Budget, title = "更新预算指定模板", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:budget:update')")
public R<?> updateById(@RequestBody @Valid TbsBudgetTempBo param){
tbsBudgetService.updateTemplates(param);
return R.ok();
}
/**
* 修改周期金额
* @param param

6
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<TbsBudgetCondition> budgetConditionList;

5
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{

24
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;
}

70
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<TbsActivity> activityList = activityService.listByCostApplyId(costApplyId);
//list转map,减少循环代码
Map<Long,TbsActivity> activityMap = new HashMap<>(activityList.size());
//模板过滤-活动指定预算
Map<Long,List<Long>> activityBudgetIdsMap = new HashMap<>(activityList.size());
for (TbsActivity activity : activityList) {
activityMap.put(activity.getId(),activity);
if(StringUtils.hasText(activity.getTemplateBudgetIds())){
List<Long> budgetIdsList = Arrays.stream(activity.getTemplateBudgetIds().split(",")).map(Long::parseLong)
.collect(Collectors.toList());
activityBudgetIdsMap.put(activity.getId(),budgetIdsList);
}
}
List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId);
// 记录使用金额
@ -48,6 +61,8 @@ public class TbsBudgetMatchApplication {
// 提取命中的预算
Map<Long,TbsScheduleItemBudget> matchItemBudgetsMap = new HashMap<>();
Set<Long> scheduleItemBudgetIds = new HashSet<>();
//所有的预算
Set<Long> allBudgetIds = new HashSet<>();
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
// 通过TbsActivityCenterGoods获取匹配条件的预算
List<TbsScheduleItemBudget> scheduleItemBudgetList = this.centerGoodsMatchTbsScheduleItemBudget(centerGoods);
@ -56,17 +71,72 @@ public class TbsBudgetMatchApplication {
if(scheduleItemBudgetList.size()>0){
List<Long> sids = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getId).collect(Collectors.toList());
scheduleItemBudgetIds.addAll(sids);
List<Long> budgetIds = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList());
allBudgetIds.addAll(budgetIds);
}
centerGoods.setMatch2ScheduleItemBudgetList(scheduleItemBudgetList);
}
//加载金额统计
this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds,costApplyId);
//加载所有预算
allBudgetIds.add(0L);
// LambdaQueryWrapper<TbsBudget> budgetTemplateFlagLqw = new LambdaQueryWrapper<>();
// budgetTemplateFlagLqw.eq(TbsBudget::getTemplateFlag,1);
// budgetTemplateFlagLqw.in(TbsBudget::getId,allBudgetIds);
// budgetTemplateFlagLqw.apply(" length(template_ids)>0 ");
// List<TbsBudget> budgetTemplateFlagList = budgetMapper.selectList(budgetTemplateFlagLqw);
List<TbsBudget> allBudgetList = budgetMapper.selectBatchIds(allBudgetIds);
Map<Long,TbsBudget> allBudgetMap = new HashMap<>();
for (TbsBudget budget : allBudgetList) {
allBudgetMap.put(budget.getId(),budget);
}
// 金额匹配
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
// 通过TbsActivityCenterGoods获取匹配条件的预算
List<TbsScheduleItemBudget> scheduleItemBudgetList = centerGoods.getMatch2ScheduleItemBudgetList();
// 判断金额是否够扣
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) {
//跳过活动模板指定的预算
List<Long> 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){

3
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java

@ -33,6 +33,9 @@ public interface TbsBudgetService extends IService<TbsBudget> {
void startBudget(Long id);
/** 更新模板 */
void updateTemplates(TbsBudgetTempBo tempBo);
// void modifyByExcel(TbsBudgetExcelBo budgetBo);
//void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo);

30
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<TbsBudgetMapper,TbsBudget>
}
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<TbsBudgetMapper,TbsBudget>
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) {

Loading…
Cancel
Save