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; 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.config.DevEnvironmentConfig;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.SpringUtils; 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.entity.SysOperationLog;
import com.qs.serve.modules.sys.mapper.SysOperationLogMapper; import com.qs.serve.modules.sys.mapper.SysOperationLogMapper;
import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudget;
@ -88,12 +92,27 @@ public class AsyncFactory {
log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start------------------------------"); log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start------------------------------");
Thread.sleep(7*1000); Thread.sleep(7*1000);
TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class); TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(budgetId); 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(); TbsAffairCommitBo doParam = new TbsAffairCommitBo();
finishedParam.setTargetId(budgetId); doParam.setTargetId(budgetId);
applyOperationService.doFinished(finishedParam); 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); log.debug("--------------------------SubmitBudgetApply CallbackTimer summeryResult:{} ------------------------------",summeryResult);
} catch (Exception e) { } 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> { 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; 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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; 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.entity.DataAffairCommit;
import com.qs.serve.modules.data.service.DataAffairCommitService; import com.qs.serve.modules.data.service.DataAffairCommitService;
import com.qs.serve.modules.data.mapper.DataAffairCommitMapper; 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 @AllArgsConstructor
public class DataAffairCommitServiceImpl extends ServiceImpl<DataAffairCommitMapper,DataAffairCommit> implements DataAffairCommitService { 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){ if(val==null){
Assert.throwEx("["+columnConf.getColumnName()+"]不能为空"); Assert.throwEx("["+columnConf.getColumnName()+"]不能为空");
} }
val = val+"_"; val = val.replace("_","-")+"_";
unionId.append(val); 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 @Override
public Long countCallback(TodoVoQuery query) { public Long countCallback(TodoVoQuery query) {
int pageSize = PageUtil.getPageSize(); // int pageSize = PageUtil.getPageSize();
int startRow = PageUtil.getStartRow(); // int startRow = PageUtil.getStartRow();
query.setUserId(AuthContextUtils.getSysUserId()); query.setUserId(AuthContextUtils.getSysUserId());
query.setPageSize(pageSize); // query.setPageSize(pageSize);
query.setStartRow(startRow); // query.setStartRow(startRow);
return commonCheckMapper.countCallback(query); 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> 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); 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); centerGoods.setMatch2ScheduleItemBudgetList(scheduleItemBudgetList);
} }
//加载金额统计 //加载金额统计
this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds); this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds,costApplyId);
// 金额匹配 // 金额匹配
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
// 通过TbsActivityCenterGoods获取匹配条件的预算 // 通过TbsActivityCenterGoods获取匹配条件的预算
@ -98,9 +98,9 @@ public class TbsBudgetMatchApplication {
* @param activityCenterGoodsList * @param activityCenterGoodsList
* @param scheduleItemBudgetIds * @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){ 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> usedAmountList = budgetMatchMapper.getBudgetUsedAmount(scheduleItemBudgetIds);
List<AmountDTO> finalAmountList = budgetMatchMapper.getBudgetFinalUsedAmount(scheduleItemBudgetIds); List<AmountDTO> finalAmountList = budgetMatchMapper.getBudgetFinalUsedAmount(scheduleItemBudgetIds);
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { 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()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsBudgetChange budgetChange = this.buildBudgetChange(param, budget,sysUser); TbsBudgetChange budgetChange = this.buildBudgetChange(param, budget,sysUser);
String templateCode = TbsSeeYonConst.BudgetChangeConf.Code(); String templateCode = TbsSeeYonConst.BudgetChangeConf.Code();
Map<String,Object> data = new HashMap<>(); 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<Long> budgetScheduleIds = budgetAmtUpdateList.stream().map(TbsBudgetAmtBo::getBudgetScheduleItemId).collect(Collectors.toList());
List<TbsBudgetLogWithAmount> budgetLogWithAmountList = tbsScheduleItemBudgetMapper.getAllByScheduleItemIdList(budgetScheduleIds); List<TbsBudgetLogWithAmount> budgetLogWithAmountList = tbsScheduleItemBudgetMapper.getAllByScheduleItemIdList(budgetScheduleIds);
List<TbsScheduleItemBudget> scheduleItemBudgetList = tbsScheduleItemBudgetMapper.selectBatchIds(budgetScheduleIds); List<TbsScheduleItemBudget> scheduleItemBudgetList = tbsScheduleItemBudgetMapper.selectBatchIds(budgetScheduleIds);
List<TbsBudgetChangeScheduleItem> changeScheduleItemList = new ArrayList<>(); List<TbsBudgetChangeScheduleItem> changeScheduleItemList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgetList) { for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgetList) {
if(!scheduleItemBudget.getBudgetId().equals(budget.getId())){
Assert.throwEx("参数异常!!");
}
TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(scheduleItemBudget); TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(scheduleItemBudget);
resultItem.setChangeId(changeId); 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<>(); LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();
activityLqw.ne(TbsActivity::getActivityState,TbsActivityState.STATE_1_Finished); activityLqw.ne(TbsActivity::getActivityState,TbsActivityState.STATE_1_Finished);
activityLqw.ne(TbsActivity::getReleaseFlag,1); activityLqw.ne(TbsActivity::getReleaseFlag,1);
activityLqw.eq(TbsActivity::getCostApplyId,costApply.getId());
Long count = activityService.count(activityLqw); Long count = activityService.count(activityLqw);
if(count==0){ if(count<1){
costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode()); costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode());
costApplyService.updateById(costApply); 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=","> <foreach collection="ids" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}
</foreach> </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 GROUP BY tbg.schedule_item_budget_id
</select> </select>

Loading…
Cancel
Save