Browse Source

修复预算异常

v1.0
Yen 2 years ago
parent
commit
3e0d607614
  1. 2
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  2. 4
      src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java
  3. 2
      src/main/java/com/qs/serve/modules/sys/entity/SysTableTemp.java
  4. 4
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  5. 10
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  6. 2
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  7. 213
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java
  8. 13
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java
  9. 41
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  10. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  11. 80
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  12. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  13. 1
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

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

@ -313,7 +313,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
@Override
public BigDecimal getErpQuoAmount(String supplierCode) {
R<String> reqResult = seeYonRequestBaseService.getBase(ERP_CUS_AMOUNT_QUO+"?supplierCode="+supplierCode,"获取客户报价单累计["+supplierCode+"]金额");
if(reqResult==null || !reqResult.getStatus().equals(200)){
if(reqResult==null || !reqResult.getStatus().equals(200)||reqResult.getData()==null){
//有错误退出
log.warn("获取客户报价单累计金额,结果失败,cusCode:{}",supplierCode);
return null;

4
src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java

@ -70,8 +70,10 @@ public class ErpCustomerController {
amountResult.setPreAmount(new BigDecimal(amount));
if(amount.equals("-1")){
amountResult.setAmount(BigDecimal.ONE.negate());
}else {
}else if (quoAmount!=null){
amountResult.setAmount(amountResult.getPreAmount().subtract(quoAmount));
}else {
amountResult.setAmount(amountResult.getPreAmount());
}
return R.ok(amountResult);
}

2
src/main/java/com/qs/serve/modules/sys/entity/SysTableTemp.java

@ -49,6 +49,8 @@ public class SysTableTemp implements Serializable {
private Integer dealState;
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

4
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -276,13 +276,15 @@ public class TbsActivityController {
List<TbsActivitySubject> activitySubjects = activitySubjectService.list(qw);
List<TbsActivityCenter> activityCenters = activityCenterService.list(qw);
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
//成本中心关联出相关预算
for (TbsActivityCenter center : activityCenters) {
//没通过加载可选的所有预算,已通过加载出选中的预算
String subjectId = center.getSubjectId()+"";
String centerType = center.getCenterType();
String centerId = center.getCenterId();
if(activity.getCostPassFlag().equals(1)){
if(costApply.getChargeState()>0||activity.getCostPassFlag().equals(1)){
//选中的预算
String activityId = activity.getId()+"";
List<TbsScheduleItemBudget> list = tbsScheduleItemBudgetMapper.listByActivityAndSubjectAndCenter(

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

@ -495,5 +495,15 @@ public class TbsBudgetController {
return R.ok();
}
/**
* 补偿缺失的项
* @return
*/
@GetMapping("/syncMissSchItem")
public R<?> syncMissSchItem(){
tbsBudgetService.syncMissSchItem();
return R.ok();
}
}

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

@ -124,7 +124,7 @@ public class TbsCostApplyController {
@PreAuthorize("hasRole('tbs:costApply:query')")
public R<TbsBudgetTableVo> preview(Long id){
TbsCostApply costApply = tbsCostApplyService.getById(id);
TbsBudgetTableVo tableVo = tbsBudgetMatchApplication.getMatchResult(id,true).getTableVo();
TbsBudgetTableVo tableVo = tbsBudgetMatchApplication.getMatchResult(id,true,false).getTableVo();
// if(costApply.getMatchType().equals(0)){
// TbsBudgetCostResult result = budgetApplicationService.buildBudgetCostResult(id,false,true);
// tableVo = result.getTableData();

213
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java

@ -49,6 +49,7 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -85,15 +86,196 @@ public class TbsCostApplyTestController {
private TbsCostChangeInfoService tbsCostChangeInfoService;
private TbsBudgetCostItemService budgetCostItemService;
private TbsBudgetLogService budgetLogService;
private SysTableTempMapper tableTempMapper;
private SysTableTempMapper sysTableTempMapper;
@GetMapping("/rebuildAll")
//@GetMapping("/overspendRebuildAll")
public R<?> ss(){
// for (Long id : ids) {
// this.rebuildCost(id);
// }
return R.ok();
LambdaQueryWrapper<SysTableTemp> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysTableTemp::getOptionTitle,"rebuildCost");
lqw.likeRight(SysTableTemp::getResultMsg,"预算未匹配");
lqw.eq(SysTableTemp::getDealState,0);
List<SysTableTemp> sysTableTempList = sysTableTempMapper.selectList(lqw);
for (SysTableTemp tableTemp : sysTableTempList) {
overRebuildCost(Long.parseLong(tableTemp.getTableId()));
}
return R.ok(sysTableTempList.size());
}
public void saveTableTmp(SysTableTemp sysTableTemp){
sysTableTempMapper.insert(sysTableTemp);
}
//@GetMapping("/overRebuildCost")
public R<?> overRebuildCost(Long costApplyId){
SysTableTemp sysTableTemp = new SysTableTemp();
sysTableTemp.setTableName("tbs_cost_apply");
sysTableTemp.setTableId(""+costApplyId);
sysTableTemp.setOptionTitle("overRebuildCost");
TbsCostApply costApply = tbsCostApplyService.getById(costApplyId);
TbsBudgetTableResultVo resultVo = tbsBudgetMatchApplication.getMatchResult(costApplyId ,false,true);
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(costApplyId);
SysUser sysUser = sysUserService.getById(costApply.getUserId());
// 未命中预算
List<TbsCostUnItem> costUnItems = new ArrayList<>();
// 所有记录情况
List<TbsBudgetCostItem> allBudgetItem = new ArrayList<>();
// 命中的预算
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
Map<Long, TbsScheduleItemBudget> matchItemBudgetsMap = resultVo.getMatchItemBudgetsMap();
for (TbsActivityCenterGoods centerGoods : resultVo.getActivityCenterGoodsList()) {
TbsBudgetCostItem costItem = new TbsBudgetCostItem();
costItem.setCenterGoodsCode(centerGoods.getCenterGoodsCode());
costItem.setCostApplyId(centerGoods.getCostApplyId());
costItem.setActivityId(centerGoods.getActivityId());
costItem.setActivityCode(centerGoods.getActivityCode());
costItem.setSupplierId(centerGoods.getSupplierId());
costItem.setSupplierCode(centerGoods.getSupplierCode());
costItem.setSupplierName(centerGoods.getSupplierName());
costItem.setSubjectId(centerGoods.getSubjectId());
costItem.setSubjectCode(centerGoods.getSubjectCode());
costItem.setSubjectName(centerGoods.getSubjectName());
costItem.setCenterType(centerGoods.getCenterType());
costItem.setCenterId(centerGoods.getCenterId());
costItem.setCenterCode(centerGoods.getCenterCode());
costItem.setCenterName(centerGoods.getCenterName());
costItem.setCenterAmount(centerGoods.getCenterAmount());
costItem.setCenterRate(centerGoods.getCenterRate());
costItem.setCenterGoodsAmount(centerGoods.getCenterGoodsAmount());
costItem.setCenterGoodsRate(centerGoods.getCenterGoodsRate());
costItem.setTargetType(centerGoods.getTargetType());
costItem.setTargetId(centerGoods.getTargetId());
costItem.setTargetCode(centerGoods.getTargetCode());
costItem.setTargetName(centerGoods.getTargetName());
costItem.setTargetLevelPathIds(centerGoods.getTargetLevelPathIds());
costItem.setTargetLevelPathNames(centerGoods.getTargetLevelPathNames());
costItem.setActStartDate(centerGoods.getActStartDate());
costItem.setActEndDate(centerGoods.getActEndDate());
costItem.setPreStartDate(centerGoods.getPreStartDate());
costItem.setPreEndDate(centerGoods.getPreEndDate());
costItem.setPreCheckDate(centerGoods.getPreCheckDate());
costItem.setCenterGoodItemId(centerGoods.getId());
if(centerGoods.getScheduleItemBudgetId()==null){
TbsCostUnItem costUnItem = new TbsCostUnItem();
costUnItem.setCostApplyId(centerGoods.getCostApplyId());
costUnItem.setActivityId(centerGoods.getActivityId());
costUnItem.setActivityCode(centerGoods.getActivityCode());
costUnItem.setSubjectId(centerGoods.getSubjectId());
costUnItem.setSubjectCode(centerGoods.getSubjectCode());
costUnItem.setSubjectName(centerGoods.getSubjectName());
costUnItem.setCenterType(centerGoods.getCenterType());
costUnItem.setCenterId(centerGoods.getCenterId());
costUnItem.setCenterCode(centerGoods.getCenterCode());
costUnItem.setCenterName(centerGoods.getCenterName());
costUnItem.setAmount(centerGoods.getCenterGoodsAmount());
costUnItem.setTargetType(centerGoods.getTargetType());
costUnItem.setTargetId(centerGoods.getTargetId());
costUnItem.setTargetCode(centerGoods.getTargetCode());
costUnItem.setTargetName(centerGoods.getTargetName());
costUnItem.setTargetLevelPathIds(centerGoods.getTargetLevelPathIds());
costUnItem.setTargetLevelPathNames(centerGoods.getTargetLevelPathNames());
costUnItem.setActStartDate(centerGoods.getActStartDate());
costUnItem.setActEndDate(centerGoods.getActEndDate());
costUnItem.setPreStartDate(centerGoods.getPreStartDate());
costUnItem.setPreEndDate(centerGoods.getPreEndDate());
costUnItem.setPreCheckDate(centerGoods.getPreCheckDate());
costUnItem.setSupplierId(centerGoods.getSupplierId());
costUnItem.setSupplierCode(centerGoods.getSupplierCode());
costUnItem.setSupplierName(centerGoods.getSupplierName());
costUnItems.add(costUnItem);
costItem.setBudgetId(0L);
costItem.setScheduleId(0L);
costItem.setScheduleItemId(0L);
costItem.setScheduleItemAmount(BigDecimal.ZERO);
costItem.setScheduleItemAmountUsed(BigDecimal.ZERO);
costItem.setScheduleItemAmountApply(BigDecimal.ZERO);
costItem.setScheduleItemBudgetId(0L);
}else {
TbsScheduleItemBudget itemBudget = matchItemBudgetsMap.get(centerGoods.getScheduleItemBudgetId());
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(centerGoods.getActivityId().equals(activity.getId())){
currActivity = activity;
}
}
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,sysUser, costApply, itemBudget, centerGoods,centerGoods.getCenterGoodsAmount(),currActivity);
budgetLogList.add(budgetLog);
costItem.setBudgetId(itemBudget.getBudgetId());
costItem.setScheduleId(itemBudget.getScheduleId());
costItem.setScheduleItemId(itemBudget.getScheduleItemId());
costItem.setScheduleItemName(itemBudget.getItemName());
costItem.setScheduleItemAmount(itemBudget.getFinalBudgetAmount());
costItem.setScheduleItemAmountUsed(itemBudget.getUsedBudgetAmount());
costItem.setScheduleItemAmountApply(itemBudget.getUnUsedBudgetAmount());
costItem.setScheduleItemBudgetId(itemBudget.getId());
}
allBudgetItem.add(costItem);
}
//保存
if(costUnItems.size() > 0 || budgetLogList.size() < 1){
sysTableTemp.setResultMsg("预算未匹配");
StringBuilder strBuild = new StringBuilder();
for (TbsCostUnItem item : costUnItems) {
String string = "【科目:" + item.getSubjectCode() + item.getSubjectName()
+ " 成本中心:" + item.getCenterCode() + item.getCenterName()
+ " 品类:" + item.getTargetLevelPathNames()
+ " 时间:" + item.getActStartDate() + "-" + item.getActEndDate()+"】 \t ";
strBuild.append(string);
}
sysTableTemp.setRemark(strBuild.toString());
saveTableTmp(sysTableTemp);
log.error("预算未匹配:{}",costApplyId);
return R.error();
}else {
String budgetCodes = budgetLogList.stream().map(TbsBudgetLog::getBudgetCode)
.distinct().collect(Collectors.joining(","));
sysTableTemp.setResultMsg("预算超支");
sysTableTemp.setRemark("超支的预算编码:"+budgetCodes);
saveTableTmp(sysTableTemp);
log.error("预算超支:{}",costApplyId);
}
//判断是否正常数据
LambdaQueryWrapper<TbsBudgetCostItem> citemLqw = new LambdaQueryWrapper<>();
citemLqw.eq(TbsBudgetCostItem::getCostApplyId,costApplyId);
List<TbsBudgetCostItem> itemList = budgetCostItemService.list(citemLqw);
// 设置remark标记防止误删,移除旧的记录
for (TbsBudgetCostItem costItem : itemList) {
costItem.setRemark("toDel");
}
budgetCostItemService.updateBatchById(itemList);
List<Long> itemIds = itemList.stream().map(TbsBudgetCostItem::getId).collect(Collectors.toList());
budgetCostItemService.removeBatchByIds(itemIds);
//重新保存
budgetCostItemService.saveBatch(allBudgetItem);
// 设置remark标记防止误删,移除旧的记录
LambdaQueryWrapper<TbsBudgetLog> bLqw = new LambdaQueryWrapper<>();
bLqw.eq(TbsBudgetLog::getCostApplyId,costApplyId);
List<TbsBudgetLog> dbbudgetLogs = budgetLogService.list(bLqw);
for (TbsBudgetLog budgetLog : dbbudgetLogs) {
budgetLog.setRemark("toDel");
}
budgetLogService.updateBatchById(dbbudgetLogs);
List<Long> budIds = dbbudgetLogs.stream().map(TbsBudgetLog::getId).collect(Collectors.toList());
budgetLogService.removeBatchByIds(budIds);
//重新保存
if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList);
}
return R.error("预算超支");
}
/**
@ -101,7 +283,7 @@ public class TbsCostApplyTestController {
* @param costApplyId
* @return
*/
@GetMapping("/rebuild")
//@GetMapping("/rebuild")
public R<?> rebuildCost(Long costApplyId){
SysTableTemp sysTableTemp = new SysTableTemp();
@ -111,7 +293,7 @@ public class TbsCostApplyTestController {
TbsCostApply costApply = tbsCostApplyService.getById(costApplyId);
TbsBudgetTableResultVo resultVo = tbsBudgetMatchApplication.getMatchResult(costApplyId ,false);
TbsBudgetTableResultVo resultVo = tbsBudgetMatchApplication.getMatchResult(costApplyId ,false,false);
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(costApplyId);
@ -221,10 +403,11 @@ public class TbsCostApplyTestController {
//保存
if(costUnItems.size() > 0 || budgetLogList.size() < 1){
sysTableTemp.setResultMsg("预算未匹配");
tableTempMapper.insert(sysTableTemp);
saveTableTmp(sysTableTemp);
log.error("预算未匹配:{}",costApplyId);
return R.error();
}
//判断是否正常数据
LambdaQueryWrapper<TbsBudgetCostItem> citemLqw = new LambdaQueryWrapper<>();
citemLqw.eq(TbsBudgetCostItem::getCostApplyId,costApplyId);
@ -246,12 +429,12 @@ public class TbsCostApplyTestController {
}
if(isMatch){
sysTableTemp.setResultMsg("预算正常");
tableTempMapper.insert(sysTableTemp);
saveTableTmp(sysTableTemp);
return R.ok("预算正常");
}
sysTableTemp.setResultMsg("需重新生成但含释放");
tableTempMapper.insert(sysTableTemp);
saveTableTmp(sysTableTemp);
return R.ok("预算正常");
@ -291,13 +474,7 @@ public class TbsCostApplyTestController {
}
/**
* 重新核销
* @return
*/
public R<?> reBuildCheck(){
return R.ok();
}
}

13
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMapper.java

@ -17,6 +17,19 @@ import java.util.List;
*/
public interface TbsBudgetMapper extends BaseMapper<TbsBudget> {
/**
* 查询缺失tbs_schedule_item_budget的预算ID
* @return
*/
@InterceptorIgnore(tenantLine = "true")
@Select("select budget_id from ( " +
" select budget_id,tbs_schedule_item_budget.schedule_id,count(1) as count_bud from tbs_schedule_item_budget where tbs_schedule_item_budget.del_flag = 0 group by budget_id " +
") tmp1 left join ( " +
" select schedule_id,count(1) as count_sch from tbs_schedule_item where tbs_schedule_item.del_flag = 0 group by schedule_id " +
") tmp2 on tmp1.schedule_id = tmp2.schedule_id " +
" where count_bud != count_sch ")
List<Long> selectMissSchItemBudgetId();
/**
* 查询费用id
* @param budgetSo

41
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java

@ -39,7 +39,14 @@ public class TbsBudgetMatchApplication {
private final TbsBudgetMatchMapper budgetMatchMapper;
private final TbsBudgetMapper budgetMapper;
public TbsBudgetTableResultVo getMatchResult(Long costApplyId,boolean buildTable){
/**
* 构建匹配预算
* @param costApplyId
* @param buildTable
* @param overspendAmt 允许超额
* @return
*/
public TbsBudgetTableResultVo getMatchResult(Long costApplyId,boolean buildTable,boolean overspendAmt){
List<TbsActivity> activityList = activityService.listByCostApplyId(costApplyId);
@ -145,20 +152,28 @@ public class TbsBudgetMatchApplication {
}
}
//开始匹配主要逻辑
Long scheduleItemBudgetId = itemBudget.getId();
BigDecimal usableAmt = usableAmountMap.get(scheduleItemBudgetId);
if(usableAmt==null){
usableAmt = itemBudget.getUnUsedBudgetAmount();
}
if(usableAmt!=null&&usableAmt.compareTo(centerGoods.getCenterGoodsAmount())>=0){
usableAmt = usableAmt.subtract(centerGoods.getCenterGoodsAmount());
//扣减后存放map
usableAmountMap.put(scheduleItemBudgetId,usableAmt);
//标记使用那个预算
centerGoods.setScheduleItemBudgetId(itemBudget.getId());
if(overspendAmt){
//允许超预算
Long scheduleItemBudgetId = itemBudget.getId();
matchItemBudgetsMap.put(scheduleItemBudgetId,itemBudget);
centerGoods.setScheduleItemBudgetId(itemBudget.getId());
break;
}else {
//开始匹配主要逻辑
Long scheduleItemBudgetId = itemBudget.getId();
BigDecimal usableAmt = usableAmountMap.get(scheduleItemBudgetId);
if(usableAmt==null){
usableAmt = itemBudget.getUnUsedBudgetAmount();
}
if(usableAmt!=null&&usableAmt.compareTo(centerGoods.getCenterGoodsAmount())>=0){
usableAmt = usableAmt.subtract(centerGoods.getCenterGoodsAmount());
//扣减后存放map
usableAmountMap.put(scheduleItemBudgetId,usableAmt);
//标记使用那个预算
centerGoods.setScheduleItemBudgetId(itemBudget.getId());
matchItemBudgetsMap.put(scheduleItemBudgetId,itemBudget);
break;
}
}
}
}

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

@ -58,5 +58,7 @@ public interface TbsBudgetService extends IService<TbsBudget> {
void syncStopFlag();
void syncMissSchItem();
}

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

@ -353,9 +353,40 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budget.setBudgetCheckState(TbsCommonCheckState.State_2_finished);
this.updateById(budget);
SysUser sysUser = sysUserService.getById(budget.getUserId());
//补偿缺失的编码
List<TbsScheduleItem> scheduleItems = scheduleItemService.listByScheduleId(budget.getScheduleId());
LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsScheduleItemBudget::getBudgetId,id);
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetService.list(lqw);
List<TbsScheduleItemBudget> addSchItemBudgets = new ArrayList<>();
for (TbsScheduleItem item : scheduleItems) {
boolean match = false;
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgets) {
if (item.getId().equals(itemBudget.getScheduleItemId())){
match = true;
}
}
if(!match){
TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget();
itemBudget.setScheduleId(item.getScheduleId());
itemBudget.setScheduleItemId(item.getId());
itemBudget.setItemName(item.getItemName());
itemBudget.setStartDate(item.getStartDate());
itemBudget.setEndDate(item.getEndDate());
itemBudget.setBudgetId(id);
itemBudget.setBudgetAmount(BigDecimal.ZERO);
itemBudget.setPreDispatchAmount(BigDecimal.ZERO);
itemBudget.setPreDispatchAmountFirst(BigDecimal.ZERO);
addSchItemBudgets.add(itemBudget);
}
}
if(addSchItemBudgets.size()>0){
scheduleItemBudgetService.saveBatch(addSchItemBudgets);
scheduleItemBudgets.addAll(addSchItemBudgets);
}
//保存预算流水日志
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) {
@ -1164,5 +1195,54 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
this.update(numalBudget,new LambdaQueryWrapper<TbsBudget>().in(TbsBudget::getId,budgetIds2));
}
}
@Override
@Transactional
public void syncMissSchItem() {
List<Long> itemBudgetIds = baseMapper.selectMissSchItemBudgetId();
//List<Long> itemBudgetIds = Arrays.asList(654L);
for (Long budgetId : itemBudgetIds) {
TbsBudget budget = baseMapper.selectById(budgetId);
SysUser sysUser = sysUserService.getById(budget.getUserId());
List<TbsScheduleItem> scheduleItems = scheduleItemService.listByScheduleId(budget.getScheduleId());
LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsScheduleItemBudget::getBudgetId,budgetId);
List<TbsScheduleItemBudget> scheduleItemBudgets = scheduleItemBudgetService.list(lqw);
List<TbsScheduleItemBudget> addSchItemBudgets = new ArrayList<>();
for (TbsScheduleItem item : scheduleItems) {
boolean match = false;
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgets) {
if (item.getId().equals(itemBudget.getScheduleItemId())){
match = true;
}
}
if(!match){
TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget();
itemBudget.setScheduleId(item.getScheduleId());
itemBudget.setScheduleItemId(item.getId());
itemBudget.setItemName(item.getItemName());
itemBudget.setStartDate(item.getStartDate());
itemBudget.setEndDate(item.getEndDate());
itemBudget.setBudgetId(budgetId);
itemBudget.setBudgetAmount(BigDecimal.ZERO);
itemBudget.setPreDispatchAmount(BigDecimal.ZERO);
itemBudget.setPreDispatchAmountFirst(BigDecimal.ZERO);
addSchItemBudgets.add(itemBudget);
}
}
if(addSchItemBudgets.size()>0){
scheduleItemBudgetService.saveBatch(addSchItemBudgets);
}
//保存预算流水日志
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : addSchItemBudgets) {
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,BudgetLogOptFlag.State_0,scheduleItemBudget.getBudgetAmount());
budgetLogList.add(budgetLog);
}
budgetLogService.saveBatch(budgetLogList);
}
}
}

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

@ -365,7 +365,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
// result0 = budgetApplicationService.buildBudgetCostResult(tbsCostApply.getId(),true,false);
//}else if (matchType.equals(1)){
//新的匹配方式
result1 = tbsBudgetMatchApplication.getMatchResult(tbsCostApply.getId(),false);
result1 = tbsBudgetMatchApplication.getMatchResult(tbsCostApply.getId(),false,false);
//}
//恢复绑定
this.releaseCost(tbsCostApply.getId(),0);

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

@ -1056,6 +1056,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
for (TbsActivitySubject activitySubject : subjectList) {
VtbSubjectDTO subjectDTO = new VtbSubjectDTO();
subjectDTO.setKeMuName(activitySubject.getSubjectName());
subjectDTOList.add(subjectDTO);
}
List<Object> subList = new ArrayList<>();

Loading…
Cancel
Save