Browse Source

预算审批异常修复

v1.0
Yen 2 years ago
parent
commit
1966483644
  1. 27
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 2
      src/main/java/com/qs/serve/modules/data/service/DataAffairCommitService.java
  3. 16
      src/main/java/com/qs/serve/modules/data/service/impl/DataAffairCommitServiceImpl.java
  4. 2
      src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java
  5. 8
      src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java
  6. 2
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMatchMapper.java
  7. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  8. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java
  9. 3
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  10. 3
      src/main/resources/mapper/tbs/TbsBudgetMatchMapper.xml

27
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -1,10 +1,14 @@
package com.qs.serve.common.framework.manager;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.config.DevEnvironmentConfig;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.data.entity.DataAffairCommit;
import com.qs.serve.modules.data.service.DataAffairCommitService;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.sys.entity.SysOperationLog;
import com.qs.serve.modules.sys.mapper.SysOperationLogMapper;
import com.qs.serve.modules.tbs.entity.TbsBudget;
@ -88,12 +92,27 @@ public class AsyncFactory {
log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start------------------------------");
Thread.sleep(7*1000);
TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(budgetId);
if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){
if(summeryResult.equals(SeeYonOperationService.SummeryState_Success)){
DataAffairCommitService commitService = SpringUtils.getBean(DataAffairCommitService.class);
// TbsAffairCommitBo.state 0-否定,1-同意,2-退回
Integer state = commitService.getState(applyOperationService.getTemplateCode(),budgetId+"");
//获取最后一条审批判断结果
if(state==null){
return;
}
//调用成功回调方法
TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
finishedParam.setTargetId(budgetId);
applyOperationService.doFinished(finishedParam);
TbsAffairCommitBo doParam = new TbsAffairCommitBo();
doParam.setTargetId(budgetId);
if (state==1){
applyOperationService.doFinished(doParam);
}else if (state==2){
applyOperationService.doCommitBacked(budgetId);
}else if (state==0){
applyOperationService.doRefuse(doParam);
}
}
log.debug("--------------------------SubmitBudgetApply CallbackTimer summeryResult:{} ------------------------------",summeryResult);
} catch (Exception e) {

2
src/main/java/com/qs/serve/modules/data/service/DataAffairCommitService.java

@ -10,5 +10,7 @@ import com.qs.serve.modules.data.entity.DataAffairCommit;
*/
public interface DataAffairCommitService extends IService<DataAffairCommit> {
Integer getState(String templateCode,String targetId);
}

16
src/main/java/com/qs/serve/modules/data/service/impl/DataAffairCommitServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.data.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -7,6 +8,7 @@ import org.springframework.stereotype.Service;
import com.qs.serve.modules.data.entity.DataAffairCommit;
import com.qs.serve.modules.data.service.DataAffairCommitService;
import com.qs.serve.modules.data.mapper.DataAffairCommitMapper;
import java.util.List;
/**
* 服务实现类
@ -18,5 +20,19 @@ import com.qs.serve.modules.data.mapper.DataAffairCommitMapper;
@AllArgsConstructor
public class DataAffairCommitServiceImpl extends ServiceImpl<DataAffairCommitMapper,DataAffairCommit> implements DataAffairCommitService {
@Override
public Integer getState(String templateCode, String targetId) {
LambdaQueryWrapper<DataAffairCommit> affairRecord = new LambdaQueryWrapper<>();
affairRecord.eq(DataAffairCommit::getTargetCode,templateCode);
affairRecord.eq(DataAffairCommit::getTargetId,targetId);
List<DataAffairCommit> dataAffairCommits = this.list(affairRecord);
DataAffairCommit max = null;
for (DataAffairCommit commit : dataAffairCommits) {
if(max==null||max.getCreateTime().isBefore(commit.getCreateTime())){
max = commit;
}
}
return max==null?null:max.getState();
}
}

2
src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java

@ -51,7 +51,7 @@ public class TableCreateSqlUtil {
if(val==null){
Assert.throwEx("["+columnConf.getColumnName()+"]不能为空");
}
val = val+"_";
val = val.replace("_","-")+"_";
unionId.append(val);
}
}

8
src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java

@ -75,11 +75,11 @@ public class CommonCheckServiceImpl implements CommonCheckService {
@Override
public Long countCallback(TodoVoQuery query) {
int pageSize = PageUtil.getPageSize();
int startRow = PageUtil.getStartRow();
// int pageSize = PageUtil.getPageSize();
// int startRow = PageUtil.getStartRow();
query.setUserId(AuthContextUtils.getSysUserId());
query.setPageSize(pageSize);
query.setStartRow(startRow);
// query.setPageSize(pageSize);
// query.setStartRow(startRow);
return commonCheckMapper.countCallback(query);
}

2
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetMatchMapper.java

@ -24,7 +24,7 @@ public interface TbsBudgetMatchMapper {
List<AmountDTO> getBudgetUsedAmount(@Param("ids") Set<Long> ids);
List<AmountDTO> getBudgetNotUsedAmount(@Param("ids") Set<Long> ids);
List<AmountDTO> getBudgetNotUsedAmount(@Param("ids") Set<Long> ids, @Param("costId")Long costId);
List<AmountDTO> getBudgetFinalUsedAmount(@Param("ids") Set<Long> ids);

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

@ -58,7 +58,7 @@ public class TbsBudgetMatchApplication {
centerGoods.setMatch2ScheduleItemBudgetList(scheduleItemBudgetList);
}
//加载金额统计
this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds);
this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds,costApplyId);
// 金额匹配
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
// 通过TbsActivityCenterGoods获取匹配条件的预算
@ -98,9 +98,9 @@ public class TbsBudgetMatchApplication {
* @param activityCenterGoodsList
* @param scheduleItemBudgetIds
*/
private void batchInitScheduleAmount(List<TbsActivityCenterGoods> activityCenterGoodsList, Set<Long> scheduleItemBudgetIds) {
private void batchInitScheduleAmount(List<TbsActivityCenterGoods> activityCenterGoodsList, Set<Long> scheduleItemBudgetIds,Long costApplyId) {
if(scheduleItemBudgetIds.size()>0){
List<AmountDTO> notUsedAmountList = budgetMatchMapper.getBudgetNotUsedAmount(scheduleItemBudgetIds);
List<AmountDTO> notUsedAmountList = budgetMatchMapper.getBudgetNotUsedAmount(scheduleItemBudgetIds,costApplyId);
List<AmountDTO> usedAmountList = budgetMatchMapper.getBudgetUsedAmount(scheduleItemBudgetIds);
List<AmountDTO> finalAmountList = budgetMatchMapper.getBudgetFinalUsedAmount(scheduleItemBudgetIds);
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {

5
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java

@ -80,7 +80,6 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMappe
}
}
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsBudgetChange budgetChange = this.buildBudgetChange(param, budget,sysUser);
String templateCode = TbsSeeYonConst.BudgetChangeConf.Code();
Map<String,Object> data = new HashMap<>();
@ -178,9 +177,11 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMappe
List<Long> budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getBudgetScheduleItemId).collect(Collectors.toList());
List<TbsBudgetLogWithAmount> budgetLogWithAmountList = tbsScheduleItemBudgetMapper.getAllByScheduleItemIdList(budgetScheduleIds);
List<TbsScheduleItemBudget> scheduleItemBudgetList = tbsScheduleItemBudgetMapper.selectBatchIds(budgetScheduleIds);
List<TbsBudgetChangeScheduleItem> changeScheduleItemList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgetList) {
if(!scheduleItemBudget.getBudgetId().equals(budget.getId())){
Assert.throwEx("参数异常!!");
}
TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(scheduleItemBudget);
resultItem.setChangeId(changeId);
//设置当前项调整的最终金额

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

@ -303,8 +303,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();
activityLqw.ne(TbsActivity::getActivityState,TbsActivityState.STATE_1_Finished);
activityLqw.ne(TbsActivity::getReleaseFlag,1);
activityLqw.eq(TbsActivity::getCostApplyId,costApply.getId());
Long count = activityService.count(activityLqw);
if(count==0){
if(count<1){
costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode());
costApplyService.updateById(costApply);
}

3
src/main/resources/mapper/tbs/TbsBudgetMatchMapper.xml

@ -85,6 +85,9 @@
<foreach collection="ids" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
<if test="costId!=null">
and (tbg.cost_apply_id != #{costId} or tbg.cost_apply_id is null)
</if>
GROUP BY tbg.schedule_item_budget_id
</select>

Loading…
Cancel
Save