Browse Source

预算日志底标调整

contract
Yen 2 years ago
parent
commit
8f002ac75d
  1. 35
      src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java
  2. 83
      src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java
  3. 6
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java
  4. 16
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java
  5. 12
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  6. 10
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonBaseService.java
  7. 55
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  8. 148
      src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java
  9. 15
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  10. 264
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  11. 4
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java
  12. 16
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java
  13. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  14. 75
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java
  15. 32
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  16. 12
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  17. 15
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  18. 7
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  19. 8
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  20. 16
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  21. 5
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

35
src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java

@ -1,35 +0,0 @@
package com.qs.serve.common.model.consts;
/**
* @author YenHex
* @since 2023/1/30
*/
public interface BudgetLogOptFlag {
/** 0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放;5-费用申请调增;6-费用申请调减 */
Integer State_0 = 0;
Integer State_1 = 1;
Integer State_2 = 2;
Integer State_3 = 3;
Integer State_4 = 4;
Integer State_5 = 5;
Integer State_6 = 6;
/** 7-销售区域迁移调增,8-销售区域迁移调减 */
Integer State_7 = 7;
Integer State_8 = 8;
/** 9-行政区域迁移调增,10-行政区域迁移调减 */
Integer State_9 = 9;
Integer State_10 = 10;
/** 11-政策申请 */
Integer State_11 = 11;
/** 12-政策申请调增 */
Integer State_12 = 12;
/** 13-政策申请调减 */
Integer State_13 = 13;
/** 14-政策释放(被拒绝后) */
Integer State_14 = 14;
}

83
src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java

@ -0,0 +1,83 @@
package com.qs.serve.common.model.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author YenHex
* @since 2023/1/30
* @apiNote
* 0-预算新增1-费用申请2-预算调增3-预算调减4-费用释放5-费用申请调增6-费用申请调减
7-销售区域迁移调增8-销售区域迁移调减
9-行政区域迁移调增10-行政区域迁移调减
11-政策申请
12-政策申请调增
13-政策申请调减
14-政策释放(被拒绝后)
*/
@Getter
@AllArgsConstructor
public enum BudgetLogOptFlag {
/** 0-预算新增 */
State_0(0,true),
/** 1-费用申请(费用申请,预算调减) */
State_1(1,false),
/** 2-预算调增 */
State_2(2,true),
/** 3-预算调减 */
State_3(3,false),
/** 4-费用释放(预算调增) */
State_4(4,true),
/** 5-费用申请调增(费用申请,预算调增) */
State_5(5,true),
/** 6-费用申请调减(费用申请,预算调减) */
State_6(6,false),
/** 7-销售区域迁移调增 */
State_7(7,false),
/** 8-销售区域迁移调减 */
State_8(8,false),
/** 9-行政区域迁移调增 */
State_9(9,false),
/** 10-行政区域迁移调减 */
State_10(10,false),
/** 11-政策申请 */
State_11(11,false),
/** 12-政策申请调增 */
State_12(12,false),
/** 13-政策申请调减 */
State_13(13,false),
/** 14-政策释放(被拒绝后) */
State_14(14,true),
/** 15-费用申请释放(被拒绝后,预算增加) */
State_15(15,true);
/**
* 编码
*/
private Integer code;
/**
* 是否取反添加预算
*/
private boolean addBudget;
}

6
src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java

@ -155,14 +155,14 @@ public class BmsChannelController {
@PreAuthorize("hasRole('bms:channel:insert')") @PreAuthorize("hasRole('bms:channel:insert')")
public R<?> save(@RequestBody @Valid BmsChannel param){ public R<?> save(@RequestBody @Valid BmsChannel param){
param.setChannelCode("D"+ StringUtils.genShortId()); param.setChannelCode("D"+ StringUtils.genShortId());
boolean result = bmsChannelService.save(param); bmsChannelService.save(param);
if(result&&CollectionUtil.isNotEmpty(param.getSupplierIds())){ if(CollectionUtil.isNotEmpty(param.getSupplierIds())){
BmsSupplierChannelBo channelBo = new BmsSupplierChannelBo(); BmsSupplierChannelBo channelBo = new BmsSupplierChannelBo();
channelBo.setChannelIds(Arrays.asList(param.getId())); channelBo.setChannelIds(Arrays.asList(param.getId()));
channelBo.setSupplierIds(param.getSupplierIds()); channelBo.setSupplierIds(param.getSupplierIds());
bmsSupplierChannelController.save(channelBo); bmsSupplierChannelController.save(channelBo);
} }
return R.isTrue(result); return R.ok();
} }
/** /**

16
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java

@ -1,8 +1,7 @@
package com.qs.serve.modules.bms.service.impl; package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion;
@ -11,10 +10,9 @@ import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetConditionMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetConditionMapper;
@ -168,17 +166,17 @@ public class BmsSupplierApplicationService {
TbsGoodsType.brand TbsGoodsType.brand
}; };
//已占用预算进行调增 //已占用预算进行调增
final Integer optType4Diff = regionType.equals(TbsCenterType.saleRegion.name())? final BudgetLogOptFlag optType4Diff = regionType.equals(TbsCenterType.saleRegion.name())?
BudgetLogOptFlag.State_8:BudgetLogOptFlag.State_10; BudgetLogOptFlag.State_8:BudgetLogOptFlag.State_10;
final Integer optType4Add = regionType.equals(TbsCenterType.saleRegion.name())? final BudgetLogOptFlag optType4Add = regionType.equals(TbsCenterType.saleRegion.name())?
BudgetLogOptFlag.State_7:BudgetLogOptFlag.State_9; BudgetLogOptFlag.State_7:BudgetLogOptFlag.State_9;
List<TbsBudgetLog> budgetLog4Adds = budgetLogList.stream().map(budgetLog->{ List<TbsBudgetLog> budgetLog4Adds = budgetLogList.stream().map(budgetLog->{
TbsBudgetLog obj = CopierUtil.copy(budgetLog,new TbsBudgetLog()); TbsBudgetLog obj = CopierUtil.copy(budgetLog,new TbsBudgetLog());
obj.setId(null); obj.setId(null);
obj.setOptType(optType4Add); obj.setOptType(optType4Add.getCode());
obj.setMigrateFlag(1); obj.setMigrateFlag(1);
obj.setMigrateTime(nowTime); obj.setMigrateTime(nowTime);
obj.setAmount(obj.getAmount().negate()); obj.setAmount(TbsBudgetLogBuildUtil.buildAmount(obj.getAmount(),optType4Add));
return obj; return obj;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
//规则:品类条件比科目条件优先级更高 //规则:品类条件比科目条件优先级更高
@ -259,7 +257,7 @@ public class BmsSupplierApplicationService {
//有匹配的预算 //有匹配的预算
TbsBudgetLog newLog = CopierUtil.copy(budgetLog,new TbsBudgetLog()); TbsBudgetLog newLog = CopierUtil.copy(budgetLog,new TbsBudgetLog());
newLog.setId(null); newLog.setId(null);
newLog.setOptType(optType4Diff); newLog.setOptType(optType4Diff.getCode());
newLog.setBudgetId(matchBudget.getId()); newLog.setBudgetId(matchBudget.getId());
newLog.setBudgetCode(matchBudget.getBudgetCode()); newLog.setBudgetCode(matchBudget.getBudgetCode());
newLog.setScheduleOrgId(budgetLog.getScheduleId()); newLog.setScheduleOrgId(budgetLog.getScheduleId());

12
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -2,7 +2,6 @@ package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.consts.BudgetLogOptFlag;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsRegion2;
@ -13,11 +12,6 @@ import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsCostUnItemService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,13 +20,7 @@ import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 供应商 服务实现类 * 供应商 服务实现类

10
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonBaseService.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.seeyon.service; package com.qs.serve.modules.seeyon.service;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
/** /**
@ -10,11 +11,16 @@ public interface SeeYonBaseService {
String getTemplateCode(); String getTemplateCode();
SeeYonRequestService getRequestService(); default SeeYonRequestService getRequestService(){
return SpringUtils.getBean(SeeYonRequestService.class);
}
SysUserMapper getUserMapper(); default SysUserMapper getUserMapper(){
return SpringUtils.getBean(SysUserMapper.class);
}
default boolean testConnection(){ default boolean testConnection(){
return getRequestService().testConnection(); return getRequestService().testConnection();
} }
} }

55
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -1,32 +1,21 @@
package com.qs.serve.modules.seeyon.service; package com.qs.serve.modules.seeyon.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.seeyon.entity.CtpAffair; import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; import com.qs.serve.modules.seeyon.entity.CtpAffairQo;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeDTO; import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeDTO;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
import com.qs.serve.modules.seeyon.enums.SyAffairState;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -37,15 +26,19 @@ import java.util.stream.Collectors;
*/ */
public interface SeeYonOperationService extends SeeYonBaseService{ public interface SeeYonOperationService extends SeeYonBaseService{
/**
SysUserService getSysUserService(); * 获取提交的目标ID(因前期未规范id需要实现该接口进行补偿)
* @param affairCommit
* @return
*/
String getTargetId(TbsAffairCommitBo affairCommit);
/** /**
* 审批中 * 检查提交审批是否允许,并返回syFormId
* @param param * @param affairCommit
* @return * @return
*/ */
Object doNext(TbsAffairCommitBo param); String commitGetSyFormId(TbsAffairCommitBo affairCommit);
/** /**
* 审批退回 * 审批退回
@ -68,6 +61,17 @@ public interface SeeYonOperationService extends SeeYonBaseService{
*/ */
Object doRefuse(TbsAffairCommitBo param); Object doRefuse(TbsAffairCommitBo param);
/**
* 审批中
* @param param
* @return
*/
Object doNext(TbsAffairCommitBo param);
default SysUserService getSysUserService(){
return SpringUtils.getBean(SysUserService.class);
}
/** /**
* 加签 * 加签
* @param param * @param param
@ -92,7 +96,9 @@ public interface SeeYonOperationService extends SeeYonBaseService{
* @param targetId * @param targetId
* @return * @return
*/ */
boolean checkSyFormIdIsNotNull(String targetId); default boolean checkSyFormIdIsNotNull(String targetId){
return false;
}
/** /**
* 审批列表(用于详情页) * 审批列表(用于详情页)
@ -208,18 +214,5 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return R.ok(); return R.ok();
} }
/**
* 获取提交的目标ID(因前期未规范id需要实现该接口进行补偿)
* @param affairCommit
* @return
*/
String getTargetId(TbsAffairCommitBo affairCommit);
/**
* 检查提交审批是否允许,并返回syFormId
* @param affairCommit
* @return
*/
String commitGetSyFormId(TbsAffairCommitBo affairCommit);
} }

148
src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java

@ -0,0 +1,148 @@
package com.qs.serve.modules.tbs.common.util;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2023/5/25
*/
public class TbsBudgetLogBuildUtil {
public static BigDecimal buildAmount(BigDecimal amount,BudgetLogOptFlag optFlag){
if(amount.compareTo(BigDecimal.ZERO)>0&&!optFlag.isAddBudget()){
return amount.negate();
}else if(amount.compareTo(BigDecimal.ZERO)<0&&optFlag.isAddBudget()){
return amount.negate();
}else {
return amount;
}
}
public static TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget, BudgetLogOptFlag optType, BigDecimal amount) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(budget.getId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType.getCode());
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(buildAmount(amount,optType));
budgetLog.setScheduleId(scheduleItemBudget.getScheduleId());
budgetLog.setScheduleItemId(scheduleItemBudget.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(scheduleItemBudget.getId());
budgetLog.setItemName(scheduleItemBudget.getItemName());
budgetLog.setStartDate(scheduleItemBudget.getStartDate());
budgetLog.setEndDate(scheduleItemBudget.getEndDate());
budgetLog.setSubjectId(budget.getSubjectId());
budgetLog.setSubjectCode(budget.getSubjectCode());
budgetLog.setSubjectName(budget.getSubjectName());
budgetLog.setCenterType(budget.getCenterType());
budgetLog.setCenterId(budget.getCenterId());
budgetLog.setCenterCode(budget.getCenterCode());
budgetLog.setCenterName(budget.getCenterName());
return budgetLog;
}
/**
* 费用申请相关
* @param optType
* @param sysUser
* @param costApply
* @param item
* @param budget
* @param amount
* @param activity
* @return
*/
public static TbsBudgetLog buildTbsBudgetLog(BudgetLogOptFlag optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount, TbsActivity activity) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(item.getBudgetId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType.getCode());
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(buildAmount(amount,optType));
budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId());
budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(item.getActStartDate().atStartOfDay());
budgetLog.setEndDate(item.getActEndDate().atStartOfDay());
budgetLog.setSubjectId(item.getSubjectId());
budgetLog.setSubjectCode(item.getSubjectCode());
budgetLog.setSubjectName(item.getSubjectName());
budgetLog.setCenterId(item.getCenterId());
budgetLog.setCenterCode(item.getCenterCode());
budgetLog.setCenterName(item.getCenterName());
budgetLog.setCenterType(item.getCenterType());
budgetLog.setSupplierId(item.getSupplierId());
budgetLog.setSupplierCode(item.getSupplierCode());
budgetLog.setSupplierName(item.getSupplierName());
budgetLog.setActivityId(item.getActivityId());
budgetLog.setActivityCode(item.getActivityCode());
budgetLog.setActivityTheme(activity.getActTitle());
budgetLog.setCostApplyId(costApply.getId());
budgetLog.setCostApplyCode(costApply.getCode());
budgetLog.setCostApplyTheme(costApply.getChargeTheme());
budgetLog.setTargetType(item.getTargetType());
budgetLog.setTargetId(item.getTargetId());
budgetLog.setTargetCode(item.getTargetCode());
budgetLog.setTargetName(item.getTargetName());
budgetLog.setTargetLevelPathIds(item.getTargetLevelPathIds());
budgetLog.setTargetLevelPathNames(item.getTargetLevelPathNames());
return budgetLog;
}
/**
* 政策相关
* @param optType
* @param sysUser
* @param tzcPolicy
* @param item
* @param budget
* @param amount
* @param policyItem
* @return
*/
public static TbsBudgetLog buildTbsBudgetLog(BudgetLogOptFlag optType, SysUser sysUser, TzcPolicy tzcPolicy, TbsBudgetCostItemPolicy item, TbsBudget budget, BigDecimal amount, TzcPolicyItem policyItem) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(item.getBudgetId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType.getCode());
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(buildAmount(amount,optType));
budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId());
budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay());
budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay());
budgetLog.setSubjectId(item.getSubjectId());
budgetLog.setSubjectCode(item.getSubjectCode());
budgetLog.setSubjectName(item.getSubjectName());
budgetLog.setCenterId(item.getCenterId());
budgetLog.setCenterCode(item.getCenterCode());
budgetLog.setCenterName(item.getCenterName());
budgetLog.setCenterType(item.getCenterType());
budgetLog.setSupplierId(item.getSupplierId());
budgetLog.setSupplierCode(item.getSupplierCode());
budgetLog.setSupplierName(item.getSupplierName());
budgetLog.setPolicyId(tzcPolicy.getId());
budgetLog.setPolicyCode(tzcPolicy.getPolicyCode());
budgetLog.setPolicyTitle(tzcPolicy.getTitle());
return budgetLog;
}
}

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

@ -3,7 +3,7 @@ package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.exception.BusinessException; import com.qs.serve.common.framework.exception.BusinessException;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
@ -11,7 +11,7 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
@ -28,7 +28,6 @@ import javax.validation.Valid;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -151,17 +150,19 @@ public class TbsBudgetController {
itemBudget.setBudgetAmount(param.getBudgetAmount()); itemBudget.setBudgetAmount(param.getBudgetAmount());
tbsScheduleItemBudgetService.updateById(itemBudget); tbsScheduleItemBudgetService.updateById(itemBudget);
//0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 //0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放
Integer optType; BudgetLogOptFlag optType;
BigDecimal amount = null; BigDecimal amount;
if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())>0){ if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())>0){
amount = scheduleItemBudget.getBudgetAmount().subtract(param.getBudgetAmount()).negate(); amount = scheduleItemBudget.getBudgetAmount().subtract(param.getBudgetAmount());
optType = BudgetLogOptFlag.State_3; optType = BudgetLogOptFlag.State_3;
}else { }else {
amount = param.getBudgetAmount().subtract(scheduleItemBudget.getBudgetAmount()); amount = param.getBudgetAmount().subtract(scheduleItemBudget.getBudgetAmount());
optType = BudgetLogOptFlag.State_2; optType = BudgetLogOptFlag.State_2;
} }
TbsBudgetLog budgetLog = tbsBudgetService.toTbsBudgetLog(sysUser,budget,scheduleItemBudget,optType, amount); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser,budget,scheduleItemBudget,optType, amount);
if(budgetLog!=null){
tbsBudgetLogService.save(budgetLog); tbsBudgetLogService.save(budgetLog);
}
return R.ok(); return R.ok();
} }

264
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -3,7 +3,7 @@ package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
@ -12,7 +12,6 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; import com.qs.serve.modules.seeyon.entity.CtpAffairQo;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
@ -202,17 +201,6 @@ public class TbsCostApplyController {
return R.ok(); return R.ok();
} }
/**
* 补偿按钮
* @param id
* @return
*/
@PostMapping("/compensate/{id}")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:costApply:update')")
public R<?> compensate(@PathVariable("id") String id){
return tbsCostApplyCompensateService.runCompensate(id);
}
/** /**
* 更新 * 更新
@ -348,85 +336,6 @@ public class TbsCostApplyController {
return tbsCostApplyOperationServiceImpl.pageAffair(costApplyId); return tbsCostApplyOperationServiceImpl.pageAffair(costApplyId);
} }
/**
* 审批列表(用于详情页)
* @param costApplyId
* @return
*/
//@GetMapping("/ListAffairs")
public R<List<CtpAffairVo>> pageMemberAffair_old(Long costApplyId){
TbsCostApply costApplyParam = tbsCostApplyService.getById(costApplyId);
if(costApplyParam.getSyFormId()==null){
return R.ok();
}
String templateCode = TbsSeeYonConst.CostApplyConf.Code();
R<List<CtpAffair>> syResult = seeYonService.commonListAffairs(costApplyId+"",null,templateCode);
List<CtpAffair> ctpAffairs = syResult.getData();
if(ctpAffairs.size()>0){
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
ctpAffairVo.setAffairInfo(ctpAffair);
for (SysUser user : userList) {
if(ctpAffair.getMemberId().equals(user.getSyUserId())){
ctpAffairVo.setUserInfo(user.toSysUserVo());
}
}
result.add(ctpAffairVo);
}
return R.ok(result);
}
return R.ok();
}
/**
* 审批列表(翻页)
* @param param
* @return
*/
//@GetMapping("/pageMemberAffair")
public R<PageVo<CtpAffairVo>> pageMemberAffair_old(CtpAffairQo param){
param.setTitle(param.getChargeTheme());
param.setApplyUserName(param.getUserName());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){
return R.error("当前账号未绑定致远用户信息");
}
param.setMemberId(sysUser.getSyUserId());
param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code());
R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList();
if(ctpAffairs.size()>0){
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
List<String> costApplyIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<TbsCostApply> costApplyList = tbsCostApplyService.listByIds(costApplyIds);
List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (TbsCostApply costApply : costApplyList) {
if(costApply.getId().toString().equals(ctpAffair.getCostApplyId())){
ctpAffairVo.setCostApply(costApply);
break;
}
}
for (SysUser user : userList) {
if(ctpAffair.getMemberId().equals(user.getSyUserId())){
ctpAffairVo.setUserInfo(user.toSysUserVo());
}
}
ctpAffairVo.setAffairInfo(ctpAffair);
result.add(ctpAffairVo);
}
PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result);
return R.ok(costApplyPageVo);
}
return R.byEmptyList();
}
/** /**
* 审批列表(翻页) * 审批列表(翻页)
* @param param * @param param
@ -436,7 +345,6 @@ public class TbsCostApplyController {
public R<PageVo<CtpAffairVo>> pageMemberAffair(CtpAffairQo param){ public R<PageVo<CtpAffairVo>> pageMemberAffair(CtpAffairQo param){
return tbsCostApplyOperationServiceImpl.pageMemberAffair(param); return tbsCostApplyOperationServiceImpl.pageMemberAffair(param);
} }
/** /**
* 提交审批节点 * 提交审批节点
* @return * @return
@ -445,82 +353,93 @@ public class TbsCostApplyController {
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:costApply:commit')") @PreAuthorize("hasRole('tbs:costApply:commit')")
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
seeYonService.testConnection(); return tbsCostApplyOperationServiceImpl.commitAffair(affairCommit);
TbsCostApply costApply = tbsCostApplyService.getById(affairCommit.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){
return R.error("费用申请处于未非审批状态!");
}
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code(),costApply.getSyFormId());
boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){
// 判断是否含有下个节点
String flag = result.getData();
//审批中(next)、完成(finish)、拒绝(refused)
if("finish".equals(flag)){
TbsCostApply apply = new TbsCostApply();
apply.setId(costApply.getId());
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
tbsCostApplyService.updateById(apply);
//更新活动通过时间
TbsActivity tbsActivity = new TbsActivity();
tbsActivity.setCostPassTime(LocalDateTime.now());
tbsActivity.setCostPassFlag(1);
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
actLqw.eq(TbsActivity::getCostApplyId,costApply.getId());
tbsActivityService.update(tbsActivity,actLqw);
return R.ok();
}else if ("stop".equals(flag)){
if(isBackCommit){
TbsCostApply apply = new TbsCostApply();
apply.setId(costApply.getId());
apply.setChargeState(TbsCostApplyState.State_4_refused.getCode());
tbsCostApplyService.updateById(apply);
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
logLqw.select(TbsBudgetLog::getId);
logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_0);
List<TbsBudgetLog> budgetLogList = tbsBudgetLogService.list(logLqw);
budgetLogList.forEach(a->a.setRollbackFlag(BudgetLogRollbackFlag.State_1));
tbsBudgetLogService.updateBatchById(budgetLogList);
return R.ok();
}else {
TbsCostApply apply = new TbsCostApply();
apply.setId(costApply.getId());
apply.setChargeState(TbsCostApplyState.State_5_stop.getCode());
tbsCostApplyService.updateById(apply);
tbsCostApplyService.releaseCost(costApply.getId(), 1);
//移除日志
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
List<TbsBudgetLog> oldLogList = tbsBudgetLogService.list(logLqw);
List<TbsBudgetLog> oldLogList4Upd = oldLogList.stream().map(a->{
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setId(a.getId());
budgetLog.setRollbackFlag(BudgetLogRollbackFlag.State_3);
return budgetLog;
}).collect(Collectors.toList());
tbsBudgetLogService.updateBatchById(oldLogList4Upd);
for (TbsBudgetLog budgetLog : oldLogList) {
budgetLog.setCreateBy(null);
budgetLog.setCreateTime(null);
budgetLog.setUpdateBy(null);
budgetLog.setUpdateTime(null);
budgetLog.setId(null);
budgetLog.setAmount(budgetLog.getAmount().negate());
budgetLog.setOptType(BudgetLogOptFlag.State_5);
}
tbsBudgetLogService.saveBatch(oldLogList);
return R.ok();
}
}else if ("next".equals(flag)){
return R.ok();
}
}else if (result.getStatus()==500){
return result;
}
return R.error("远程调用失败");
} }
/**
* 提交审批节点
* @return
*/
//@PostMapping("/commitAffair")
// @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE)
// @PreAuthorize("hasRole('tbs:costApply:commit')")
// public R<?> commitAffair_old(@RequestBody @Valid TbsAffairCommitBo affairCommit){
// seeYonService.testConnection();
// TbsCostApply costApply = tbsCostApplyService.getById(affairCommit.getCostApplyId());
// if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){
// return R.error("费用申请处于未非审批状态!");
// }
// R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code(),costApply.getSyFormId());
// boolean isBackCommit = affairCommit.getState()==2;
// if(result.getStatus()==200){
// // 判断是否含有下个节点
// String flag = result.getData();
// //审批中(next)、完成(finish)、拒绝(refused)
// if("finish".equals(flag)){
// TbsCostApply apply = new TbsCostApply();
// apply.setId(costApply.getId());
// apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
// tbsCostApplyService.updateById(apply);
// //更新活动通过时间
// TbsActivity tbsActivity = new TbsActivity();
// tbsActivity.setCostPassTime(LocalDateTime.now());
// tbsActivity.setCostPassFlag(1);
// LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
// actLqw.eq(TbsActivity::getCostApplyId,costApply.getId());
// tbsActivityService.update(tbsActivity,actLqw);
// return R.ok();
// }else if ("stop".equals(flag)){
// if(isBackCommit){
// TbsCostApply apply = new TbsCostApply();
// apply.setId(costApply.getId());
// apply.setChargeState(TbsCostApplyState.State_4_refused.getCode());
// tbsCostApplyService.updateById(apply);
// LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
// logLqw.select(TbsBudgetLog::getId);
// logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
// logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_0);
// List<TbsBudgetLog> budgetLogList = tbsBudgetLogService.list(logLqw);
// budgetLogList.forEach(a->a.setRollbackFlag(BudgetLogRollbackFlag.State_1));
// tbsBudgetLogService.updateBatchById(budgetLogList);
// return R.ok();
// }else {
// TbsCostApply apply = new TbsCostApply();
// apply.setId(costApply.getId());
// apply.setChargeState(TbsCostApplyState.State_5_stop.getCode());
// tbsCostApplyService.updateById(apply);
// tbsCostApplyService.releaseCost(costApply.getId(), 1);
// //移除日志
// LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
// logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
// List<TbsBudgetLog> oldLogList = tbsBudgetLogService.list(logLqw);
// List<TbsBudgetLog> oldLogList4Upd = oldLogList.stream().map(a->{
// TbsBudgetLog budgetLog = new TbsBudgetLog();
// budgetLog.setId(a.getId());
// budgetLog.setRollbackFlag(BudgetLogRollbackFlag.State_3);
// return budgetLog;
// }).collect(Collectors.toList());
// tbsBudgetLogService.updateBatchById(oldLogList4Upd);
// for (TbsBudgetLog budgetLog : oldLogList) {
// budgetLog.setCreateBy(null);
// budgetLog.setCreateTime(null);
// budgetLog.setUpdateBy(null);
// budgetLog.setUpdateTime(null);
// budgetLog.setId(null);
// budgetLog.setAmount(budgetLog.getAmount().negate());
// budgetLog.setOptType(BudgetLogOptFlag.State_5);
// }
// tbsBudgetLogService.saveBatch(oldLogList);
// return R.ok();
// }
// }else if ("next".equals(flag)){
// return R.ok();
// }
// }else if (result.getStatus()==500){
// return result;
// }
// return R.error("远程调用失败");
// }
/** /**
* 补偿接口 * 补偿接口
* @param param * @param param
@ -533,6 +452,17 @@ public class TbsCostApplyController {
return R.ok(); return R.ok();
} }
/**
* 补偿按钮
* @param id
* @return
*/
@PostMapping("/compensate/{id}")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE)
public R<?> compensate(@PathVariable("id") String id){
return tbsCostApplyCompensateService.runCompensate(id);
}
/** /**
* 加签 * 加签
* @param param * @param param

4
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java

@ -1,6 +1,5 @@
package com.qs.serve.modules.tbs.entity; package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -9,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -43,7 +43,7 @@ public class TbsBudgetLog implements Serializable {
/** 类型 /** 类型
* 0-预算新增1-费用申请2-预算调增3-预算调减4-费用释放5-费用申请调增6-费用申请调减 * 0-预算新增1-费用申请2-预算调增3-预算调减4-费用释放5-费用申请调增6-费用申请调减
* {@link com.qs.serve.common.model.consts.BudgetLogOptFlag} * {@link BudgetLogOptFlag}
**/ **/
@NotNull(message = "类型不能为空") @NotNull(message = "类型不能为空")
private Integer optType; private Integer optType;

16
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.tbs.service; package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicy;
@ -15,20 +16,5 @@ import java.math.BigDecimal;
*/ */
public interface TbsBudgetLogService extends IService<TbsBudgetLog> { public interface TbsBudgetLogService extends IService<TbsBudgetLog> {
/**
* 建立日志申请和释放时通用方法
* @param optType
* @param sysUser
* @param costApply
* @param item
* @param budget
* @param amount
* @return
*/
TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount, TbsActivity activity);
TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TzcPolicy tzcPolicy, TbsBudgetCostItemPolicy item, TbsBudget budget, BigDecimal amount, TzcPolicyItem policyItem);
} }

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

@ -1,6 +1,7 @@
package com.qs.serve.modules.tbs.service; package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
@ -38,7 +39,5 @@ public interface TbsBudgetService extends IService<TbsBudget> {
TbsBudgetVo toVoEntity(TbsBudget budget); TbsBudgetVo toVoEntity(TbsBudget budget);
TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget, Integer optType, BigDecimal amount);
} }

75
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.tbs.service.impl; package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicy;
@ -8,6 +10,7 @@ import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.omg.CORBA.DynAnyPackage.Invalid;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
@ -24,78 +27,6 @@ import java.math.BigDecimal;
@AllArgsConstructor @AllArgsConstructor
public class TbsBudgetLogServiceImpl extends ServiceImpl<TbsBudgetLogMapper,TbsBudgetLog> implements TbsBudgetLogService { public class TbsBudgetLogServiceImpl extends ServiceImpl<TbsBudgetLogMapper,TbsBudgetLog> implements TbsBudgetLogService {
@NotNull
@Override
public TbsBudgetLog buildTbsBudgetLog(Integer optType,SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount, TbsActivity activity) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(item.getBudgetId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType);
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(amount);
budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId());
budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(item.getActStartDate().atStartOfDay());
budgetLog.setEndDate(item.getActEndDate().atStartOfDay());
budgetLog.setSubjectId(item.getSubjectId());
budgetLog.setSubjectCode(item.getSubjectCode());
budgetLog.setSubjectName(item.getSubjectName());
budgetLog.setCenterId(item.getCenterId());
budgetLog.setCenterCode(item.getCenterCode());
budgetLog.setCenterName(item.getCenterName());
budgetLog.setCenterType(item.getCenterType());
budgetLog.setSupplierId(item.getSupplierId());
budgetLog.setSupplierCode(item.getSupplierCode());
budgetLog.setSupplierName(item.getSupplierName());
budgetLog.setActivityId(item.getActivityId());
budgetLog.setActivityCode(item.getActivityCode());
budgetLog.setActivityTheme(activity.getActTitle());
budgetLog.setCostApplyId(costApply.getId());
budgetLog.setCostApplyCode(costApply.getCode());
budgetLog.setCostApplyTheme(costApply.getChargeTheme());
budgetLog.setTargetType(item.getTargetType());
budgetLog.setTargetId(item.getTargetId());
budgetLog.setTargetCode(item.getTargetCode());
budgetLog.setTargetName(item.getTargetName());
budgetLog.setTargetLevelPathIds(item.getTargetLevelPathIds());
budgetLog.setTargetLevelPathNames(item.getTargetLevelPathNames());
return budgetLog;
}
@Override
public TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TzcPolicy tzcPolicy, TbsBudgetCostItemPolicy item, TbsBudget budget, BigDecimal amount, TzcPolicyItem policyItem) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(item.getBudgetId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType);
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(amount);
budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId());
budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay());
budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay());
budgetLog.setSubjectId(item.getSubjectId());
budgetLog.setSubjectCode(item.getSubjectCode());
budgetLog.setSubjectName(item.getSubjectName());
budgetLog.setCenterId(item.getCenterId());
budgetLog.setCenterCode(item.getCenterCode());
budgetLog.setCenterName(item.getCenterName());
budgetLog.setCenterType(item.getCenterType());
budgetLog.setSupplierId(item.getSupplierId());
budgetLog.setSupplierCode(item.getSupplierCode());
budgetLog.setSupplierName(item.getSupplierName());
budgetLog.setPolicyId(tzcPolicy.getId());
budgetLog.setPolicyCode(tzcPolicy.getPolicyCode());
budgetLog.setPolicyTitle(tzcPolicy.getTitle());
return budgetLog;
}
} }

32
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
@ -19,6 +20,7 @@ import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum; 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.*;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; 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.TbsBudgetExcelBo;
@ -237,38 +239,14 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
//保存预算流水日志 //保存预算流水日志
List<TbsBudgetLog> budgetLogList = new ArrayList<>(); List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) {
TbsBudgetLog budgetLog = this.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,0,scheduleItemBudget.getBudgetAmount()); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,BudgetLogOptFlag.State_0,scheduleItemBudget.getBudgetAmount());
if (budgetLog!=null){
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
}
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
@NotNull
@Override
public TbsBudgetLog toTbsBudgetLog(SysUser sysUser, TbsBudget budget, TbsScheduleItemBudget scheduleItemBudget,Integer optType, BigDecimal amount) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(budget.getId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType);
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(amount);
budgetLog.setScheduleId(scheduleItemBudget.getScheduleId());
budgetLog.setScheduleItemId(scheduleItemBudget.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(scheduleItemBudget.getId());
budgetLog.setItemName(scheduleItemBudget.getItemName());
budgetLog.setStartDate(scheduleItemBudget.getStartDate());
budgetLog.setEndDate(scheduleItemBudget.getEndDate());
budgetLog.setSubjectId(budget.getSubjectId());
budgetLog.setSubjectCode(budget.getSubjectCode());
budgetLog.setSubjectName(budget.getSubjectName());
budgetLog.setCenterType(budget.getCenterType());
budgetLog.setCenterId(budget.getCenterId());
budgetLog.setCenterCode(budget.getCenterCode());
budgetLog.setCenterName(budget.getCenterName());
return budgetLog;
}
@Override @Override
public TbsBudget getByCode(String code) { public TbsBudget getByCode(String code) {

12
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -1,28 +1,24 @@
package com.qs.serve.modules.tbs.service.impl; package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.seeyon.entity.CtpAffair; import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.entity.CtpAffairQo;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -149,8 +145,8 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
budgetLog.setUpdateBy(null); budgetLog.setUpdateBy(null);
budgetLog.setUpdateTime(null); budgetLog.setUpdateTime(null);
budgetLog.setId(null); budgetLog.setId(null);
budgetLog.setAmount(budgetLog.getAmount().negate()); budgetLog.setOptType(BudgetLogOptFlag.State_15.getCode());
budgetLog.setOptType(BudgetLogOptFlag.State_5); budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),BudgetLogOptFlag.State_15));
} }
tbsBudgetLogService.saveBatch(oldLogList); tbsBudgetLogService.saveBatch(oldLogList);
return null; return null;

15
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -2,7 +2,7 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -17,6 +17,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
@ -185,14 +186,13 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
budgetCostItemService.saveBatch(allBudgetItem); budgetCostItemService.saveBatch(allBudgetItem);
//TODO 无匹配的预算item保存到 TbsCostUnItem //TODO 无匹配的预算item保存到 TbsCostUnItem
//保存预算使用日志 //保存预算使用日志
if(tbsCostApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())){
List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, costApply, result.getBudgetMatchList(),result.getActivityList()); List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, costApply, result.getBudgetMatchList(),result.getActivityList());
if(tbsCostApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())){
if(CollectionUtil.isNotEmpty(budgetLogList)){ if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
}else { }else {
//排除历史记录 //排除历史记录
List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, costApply, result.getBudgetMatchList(),result.getActivityList());
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); logLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId());
logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1); logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1);
@ -211,10 +211,13 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
budgetLog.setUpdateTime(null); budgetLog.setUpdateTime(null);
budgetLog.setId(null); budgetLog.setId(null);
budgetLog.setAmount(budgetLog.getAmount().negate()); budgetLog.setAmount(budgetLog.getAmount().negate());
budgetLog.setOptType(BudgetLogOptFlag.State_5); BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_5;
budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),optFlag));
budgetLog.setOptType(optFlag.getCode());
} }
budgetLogService.saveBatch(oldLogList); budgetLogService.saveBatch(oldLogList);
budgetLogList.forEach(a->a.setOptType(BudgetLogOptFlag.State_6)); //将1改6
budgetLogList.forEach(a->a.setOptType(BudgetLogOptFlag.State_6.getCode()));
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
//创建流程后回调 //创建流程后回调
@ -253,7 +256,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
currActivity = activity; currActivity = activity;
} }
} }
TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_1,sysUser, costApply, item, budget,item.getCenterGoodsAmount().negate(),currActivity); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,sysUser, costApply, item, budget,item.getCenterGoodsAmount(),currActivity);
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
return budgetLogList; return budgetLogList;

7
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -1,7 +1,7 @@
package com.qs.serve.modules.third.service; package com.qs.serve.modules.third.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.ResultFlag; import com.qs.serve.common.model.consts.ResultFlag;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSubject;
@ -26,6 +26,7 @@ import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
@ -34,14 +35,12 @@ import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo;
import com.qs.serve.modules.third.entity.ProcessCreatePolicyCostBo; import com.qs.serve.modules.third.entity.ProcessCreatePolicyCostBo;
import com.qs.serve.modules.third.entity.ProcessGoodsItem; import com.qs.serve.modules.third.entity.ProcessGoodsItem;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync; import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.entity.TzcPolicyItemLog; import com.qs.serve.modules.tzc.entity.TzcPolicyItemLog;
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsSyncService; import com.qs.serve.modules.tzc.service.TzcPolicyGoodsSyncService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemLogService; import com.qs.serve.modules.tzc.service.TzcPolicyItemLogService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
@ -743,7 +742,7 @@ public class PortalOfCostApplication {
break; break;
} }
} }
TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_1,user, costApply, costItem, currBudget,costItem.getCenterGoodsAmount().negate(),activity); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,user, costApply, costItem, currBudget,costItem.getCenterGoodsAmount(),activity);
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
} }

8
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -2,7 +2,7 @@ package com.qs.serve.modules.tzc.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
@ -17,6 +17,7 @@ import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
@ -347,8 +348,9 @@ public class TzcPolicyController {
budgetLog.setUpdateBy(null); budgetLog.setUpdateBy(null);
budgetLog.setUpdateTime(null); budgetLog.setUpdateTime(null);
budgetLog.setId(null); budgetLog.setId(null);
budgetLog.setAmount(budgetLog.getAmount().negate()); BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_12;
budgetLog.setOptType(BudgetLogOptFlag.State_12); budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),optFlag));
budgetLog.setOptType(optFlag.getCode());
} }
tbsBudgetLogService.saveBatch(oldLogList); tbsBudgetLogService.saveBatch(oldLogList);
return R.ok(); return R.ok();

16
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -1,7 +1,7 @@
package com.qs.serve.modules.tzc.service.impl; package com.qs.serve.modules.tzc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -20,6 +20,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetCostUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetCostUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetItemCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetItemCostResult;
@ -221,11 +222,16 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
budgetLog.setUpdateBy(null); budgetLog.setUpdateBy(null);
budgetLog.setUpdateTime(null); budgetLog.setUpdateTime(null);
budgetLog.setId(null); budgetLog.setId(null);
budgetLog.setAmount(budgetLog.getAmount().negate()); BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_12;
budgetLog.setOptType(BudgetLogOptFlag.State_12); budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),optFlag));
budgetLog.setOptType(optFlag.getCode());
} }
budgetLogService.saveBatch(oldLogList); budgetLogService.saveBatch(oldLogList);
budgetLogList.forEach(a->a.setOptType(BudgetLogOptFlag.State_13)); BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_13;
budgetLogList.forEach(a->{
a.setOptType(optFlag.getCode());
a.setAmount(TbsBudgetLogBuildUtil.buildAmount(a.getAmount(),optFlag));
});
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
//创建流程后回调 //创建流程后回调
@ -836,7 +842,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
currPolicyItem = policyItem; currPolicyItem = policyItem;
} }
} }
TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_11,sysUser, tzcPolicy, item, budget,item.getPolicyItemAmount().negate(),currPolicyItem); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_11,sysUser, tzcPolicy, item, budget,item.getPolicyItemAmount().negate(),currPolicyItem);
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
return budgetLogList; return budgetLogList;

5
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -2,7 +2,7 @@ package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString; import com.qs.serve.common.util.model.DateFormatString;
@ -25,6 +25,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
@ -149,7 +150,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
} }
BigDecimal amount = centerGoods.getCenterGoodsAmount().subtract(centerGoods.getUsedAmount()); BigDecimal amount = centerGoods.getCenterGoodsAmount().subtract(centerGoods.getUsedAmount());
TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_4,sysUser,costApply,currCostItem,currentBudget,amount,activity); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_4,sysUser,costApply,currCostItem,currentBudget,amount,activity);
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
if(CollectionUtil.isNotEmpty(budgetLogList)){ if(CollectionUtil.isNotEmpty(budgetLogList)){

Loading…
Cancel
Save