Browse Source

fix: 费用释放调整

v1.0
Yen 1 year ago
parent
commit
107a73cdfb
  1. 4
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 7
      src/main/java/com/qs/serve/modules/sys/entity/SysUser.java
  3. 3
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  4. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostTodoService.java
  5. 8
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoServiceImpl.java
  6. 31
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  7. 2
      src/main/java/com/qs/serve/modules/third/entity/ProcessReleaseContractBo.java
  8. 25
      src/main/java/com/qs/serve/modules/third/entity/ProcessUnPayContractBo.java
  9. 20
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  10. 8
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  11. 12
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  12. 11
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  13. 2
      src/main/resources/mapper/sys/SysUserMapper.xml

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

@ -303,7 +303,7 @@ public class AsyncFactory {
* @param totalAmount * @param totalAmount
* @return * @return
*/ */
public static TimerTask saveVtbSubmit(Long verificationId, BigDecimal totalAmount,Integer state,boolean realaseFlag) { public static TimerTask saveVtbSubmit(String userCode,Long verificationId, BigDecimal totalAmount,Integer state,boolean realaseFlag) {
log.warn("费用释放---verificationId:{} totalAmount:{} state:{} realaseFlag:{}",verificationId,totalAmount,state,realaseFlag); log.warn("费用释放---verificationId:{} totalAmount:{} state:{} realaseFlag:{}",verificationId,totalAmount,state,realaseFlag);
return new TimerTask() { return new TimerTask() {
@Override @Override
@ -331,7 +331,7 @@ public class AsyncFactory {
return; return;
} }
if(realaseFlag){ if(realaseFlag){
vtbVerificationService.release(verification.getActivityId(),false); vtbVerificationService.release(verification.getActivityId(),userCode,false);
} }
} }
} catch (Exception e) { } catch (Exception e) {

7
src/main/java/com/qs/serve/modules/sys/entity/SysUser.java

@ -125,6 +125,9 @@ public class SysUser implements Serializable {
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime; private LocalDateTime updateTime;
/** 更新人 */ /** 更新人 */
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
private String updateBy; private String updateBy;
@ -137,6 +140,10 @@ public class SysUser implements Serializable {
@JsonIgnore @JsonIgnore
private String tenantId; private String tenantId;
/** 在职状态【0->离职;1->在职;】 */
@TableField(exist = false)
private Integer servingQueryState;
/** 查询参数:部门ID多选 */ /** 查询参数:部门ID多选 */
@TableField(exist = false) @TableField(exist = false)
private List<String> multiDeptIds; private List<String> multiDeptIds;

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

@ -437,7 +437,8 @@ public class TbsActivityController {
@SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE) @SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:activity:release')") @PreAuthorize("hasRole('tbs:activity:release')")
public R<?> release(@PathVariable("id") Long id){ public R<?> release(@PathVariable("id") Long id){
verificationService.release(id,true); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
verificationService.release(id,sysUser.getCode(),true);
return R.ok(); return R.ok();
} }

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

@ -13,6 +13,8 @@ import java.util.List;
*/ */
public interface TbsCostTodoService extends IService<TbsCostTodo> { public interface TbsCostTodoService extends IService<TbsCostTodo> {
List<TbsCostTodo> listByCostId(Long costId);
List<TbsCostTodo> selectTbsCostTodoList(TbsCostTodo query); List<TbsCostTodo> selectTbsCostTodoList(TbsCostTodo query);
} }

8
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoServiceImpl.java

@ -1,5 +1,6 @@
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.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;
@ -21,6 +22,13 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class TbsCostTodoServiceImpl extends ServiceImpl<TbsCostTodoMapper,TbsCostTodo> implements TbsCostTodoService { public class TbsCostTodoServiceImpl extends ServiceImpl<TbsCostTodoMapper,TbsCostTodo> implements TbsCostTodoService {
@Override
public List<TbsCostTodo> listByCostId(Long costId) {
LambdaQueryWrapper<TbsCostTodo> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsCostTodo::getCostApplyId,costId);
return baseMapper.selectList(lqw);
}
@Override @Override
public List<TbsCostTodo> selectTbsCostTodoList(TbsCostTodo query) { public List<TbsCostTodo> selectTbsCostTodoList(TbsCostTodo query) {
return baseMapper.selectTbsCostTodoList(query); return baseMapper.selectTbsCostTodoList(query);

31
src/main/java/com/qs/serve/modules/third/PortalOfCostController.java

@ -113,7 +113,7 @@ public class PortalOfCostController {
} }
/** /**
* 协议类费用 释放接口释放合同不再支付的金额 * 协议类费用 释放接口
* @param contractBo * @param contractBo
* @return * @return
*/ */
@ -141,6 +141,35 @@ public class PortalOfCostController {
return R.error("支付异常"); return R.error("支付异常");
} }
/**
* 协议类费用 释放接口
* @param contractBo
* @return
*/
@PostMapping("releaseContractNoPay")
public R<?> releaseContractNoPay(@Valid @RequestBody ProcessReleaseContractBo contractBo, HttpServletRequest request){
SysSyncLog syncLog = new SysSyncLog();
syncLog.setFromPlat("协议类不再支付");
syncLog.setUrl(request.getRequestURI());
syncLog.setRequestJson(JsonUtil.objectToJson(contractBo));
syncLog.setEntityClass(ProcessCreateCostApplyBo.class.getName());
try {
ThirdTokenUtil.checkToken(request);
portalOfCostApplication.releaseContractCost(contractBo);
syncLog.setSuccessStatus(1);
} catch (Exception e) {
log.error("协议类不再支付===>{}", JsonUtil.objectToJson(contractBo));
syncLog.setFailReason(e.getMessage());
sysSyncLogService.save(syncLog);
return R.error(e.getMessage());
}
sysSyncLogService.save(syncLog);
if(syncLog.getSuccessStatus()!=null&&syncLog.getSuccessStatus().equals(1)){
return R.ok();
}
return R.error("不再支付异常");
}
/** /**
* 一站式创建费用(费用申请根据东哥的数据关联政策生成) * 一站式创建费用(费用申请根据东哥的数据关联政策生成)
* @param createBo * @param createBo

2
src/main/java/com/qs/serve/modules/third/entity/ProcessReleaseContractBo.java

@ -17,4 +17,6 @@ public class ProcessReleaseContractBo {
/** 核销与支付备注 */ /** 核销与支付备注 */
private String remark; private String remark;
/** 业务操作人 */
private String userCode;
} }

25
src/main/java/com/qs/serve/modules/third/entity/ProcessUnPayContractBo.java

@ -0,0 +1,25 @@
package com.qs.serve.modules.third.entity;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2023/11/13
*/
@Data
public class ProcessUnPayContractBo {
/** 核销编码 */
private String checkCode;
/** 不再支付金额 */
private BigDecimal noPayAmt;
/** 核销与支付备注 */
private String remark;
/** 业务操作人 */
private String userCode;
}

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

@ -53,10 +53,13 @@ import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper;
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.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbFundFlow;
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;
import com.qs.serve.modules.vtb.mapper.VtbVerificationSubjectMapper; import com.qs.serve.modules.vtb.mapper.VtbVerificationSubjectMapper;
import com.qs.serve.modules.vtb.service.VtbFundFlowService;
import com.qs.serve.modules.vtb.service.VtbVerificationService; import com.qs.serve.modules.vtb.service.VtbVerificationService;
import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -87,6 +90,11 @@ public class PortalOfCostApplication {
private final SysSyncLogService sysSyncLogService; private final SysSyncLogService sysSyncLogService;
private SysTableTempMapper sysTableTempMapper; private SysTableTempMapper sysTableTempMapper;
private TbsCostTodoService tbsCostTodoService;
private final TbsActivityPayConditionService activityPayConditionService;
private final TbsBudgetService budgetService;
private final TbsBudgetCostItemService budgetCostItemService;
private final VtbFundFlowService fundFlowService;
private TbsActivityService activityService; private TbsActivityService activityService;
private TbsActivityCenterService activityCenterService; private TbsActivityCenterService activityCenterService;
private TbsActivitySubjectService activitySubjectService; private TbsActivitySubjectService activitySubjectService;
@ -122,6 +130,7 @@ public class PortalOfCostApplication {
private TzcPolicyItemService policyItemServiceService; private TzcPolicyItemService policyItemServiceService;
private TzcPolicyItemLogService policyItemLogService; private TzcPolicyItemLogService policyItemLogService;
private TzcPolicyGoodsSyncService tzcPolicyGoodsSyncService; private TzcPolicyGoodsSyncService tzcPolicyGoodsSyncService;
private SysUserService sysUserService;
private final XiaoLuTonService xiaoLuTonService; private final XiaoLuTonService xiaoLuTonService;
private ProjectApisProperties projectApisProperties; private ProjectApisProperties projectApisProperties;
@ -1230,7 +1239,16 @@ public class PortalOfCostApplication {
* @param contractBo * @param contractBo
*/ */
public void releaseContractCost(ProcessReleaseContractBo contractBo){ public void releaseContractCost(ProcessReleaseContractBo contractBo){
TbsCostApply costApply = costApplyService.getByCode(contractBo.getCostCode());
TbsActivity activity = activityService.listByCostApplyId(costApply.getId()).get(0);
List<TbsCostTodo> costTodoList = tbsCostTodoService.listByCostId(costApply.getId());
for (TbsCostTodo costTodo : costTodoList) {
if(costTodo.getCheckStatus().equals(1)){
Assert.throwEx("协议条款审批中,不在支付失败");
}
}
SysUser sysUser = sysUserService.getByAccount(contractBo.getCostCode());
verificationService.release(activity.getId(),sysUser.getCode(),true);
} }
/** /**

8
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -177,11 +177,11 @@ public class VtbVerificationApplication {
@NotNull @NotNull
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R commitAffairSuccess(TbsAffairCommitBo affairCommit, VtbVerification verification, boolean isBackCommit, String flag) { public R commitAffairSuccess(TbsAffairCommitBo affairCommit, VtbVerification verification, boolean isBackCommit, String flag) {
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = sysUserService.getById(userId);
try { try {
//保存记录 //保存记录
// 判断是否含有下个节点 // 判断是否含有下个节点
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = sysUserService.getById(userId);
DataAffairCommit dataAffairCommit = new DataAffairCommit(); DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(TbsSeeYonConst.CostCheckConf.Code()); dataAffairCommit.setTargetCode(TbsSeeYonConst.CostCheckConf.Code());
dataAffairCommit.setTargetId(verification.getId()+""); dataAffairCommit.setTargetId(verification.getId()+"");
@ -223,7 +223,7 @@ public class VtbVerificationApplication {
if (isStop){ if (isStop){
backCommitAndStop(verification, isBackCommit); backCommitAndStop(verification, isBackCommit);
if(isRelease){ if(isRelease){
vtbVerificationService.release(verification.getActivityId(),false); vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
} }
}else if (!isFinish && !isNext){ }else if (!isFinish && !isNext){
return R.error("远程调用返回,非指定状态"); return R.error("远程调用返回,非指定状态");
@ -381,7 +381,7 @@ public class VtbVerificationApplication {
if(isFinish){ if(isFinish){
finishCallBack(verification, totalAmount); finishCallBack(verification, totalAmount);
if(isRelease){ if(isRelease){
vtbVerificationService.release(verification.getActivityId(),false); vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
} }
}else { }else {
//更新金额 //更新金额

12
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java

@ -9,6 +9,7 @@ import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -37,7 +38,7 @@ public interface VtbVerificationService extends IService<VtbVerification> {
* 释放活动费用 * 释放活动费用
* @param activityId * @param activityId
*/ */
void release(Long activityId,Boolean throwEx); void release(Long activityId,String userCode,Boolean throwEx);
/** /**
* 取消释放 * 取消释放
@ -101,5 +102,14 @@ public interface VtbVerificationService extends IService<VtbVerification> {
void toPayRequest(Long verificationId); void toPayRequest(Long verificationId);
/**
* 释放前校验活动返回释放金额
* @param activity
* @param filterActTime 拦截活动结束
* @param isCurrentCommit 是否当前活动占用提交
* @return
*/
BigDecimal validActivity(boolean cotractFlag, TbsActivity activity, boolean filterActTime, boolean isCurrentCommit);
} }

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

@ -462,7 +462,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void release(Long activityId,Boolean throwEx) { public void release(Long activityId,String userCode,Boolean throwEx) {
String url = "unknown"; String url = "unknown";
try { try {
HttpServletRequest request = ServletUtils.getRequest(); HttpServletRequest request = ServletUtils.getRequest();
@ -471,7 +471,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
e.printStackTrace(); e.printStackTrace();
} }
log.warn("费用释放 activityId:{} url:{}",activityId,url); log.warn("费用释放 activityId:{} url:{}",activityId,url);
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getByAccount(userCode);
TbsActivity activity = activityService.getById(activityId); TbsActivity activity = activityService.getById(activityId);
if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){ if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){
if(!throwEx){ if(!throwEx){
@ -486,7 +486,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){ if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("状态不支持释放活动费用"); Assert.throwEx("状态不支持释放活动费用");
} }
BigDecimal releaseAmount = validActivity(costApply.getContractFlag()!=null BigDecimal releaseAmount = this.validActivity(costApply.getContractFlag()!=null
&&costApply.getContractFlag().equals(1),activity,false,false); &&costApply.getContractFlag().equals(1),activity,false,false);
TbsActivity param = new TbsActivity(); TbsActivity param = new TbsActivity();
param.setId(activityId); param.setId(activityId);
@ -860,7 +860,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
// costApply.setLogCheckState(costApply.getCheckState()); // costApply.setLogCheckState(costApply.getCheckState());
// costApplyService.updateById(costApply); // costApplyService.updateById(costApply);
//判断是否直接跳过审批的申请 //判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification.getId(), totalAmount,1,false)); AsyncManager.me().execute(AsyncFactory.saveVtbSubmit( sysUser.getCode(),verification.getId(), totalAmount,1,false));
} }
@ -1134,7 +1134,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* @param isCurrentCommit 是否当前活动占用提交 * @param isCurrentCommit 是否当前活动占用提交
* @return * @return
*/ */
private BigDecimal validActivity(boolean cotractFlag,TbsActivity activity,boolean filterActTime,boolean isCurrentCommit){ @Override
public BigDecimal validActivity(boolean cotractFlag,TbsActivity activity,boolean filterActTime,boolean isCurrentCommit){
LocalDate nowDate = LocalDate.now(); LocalDate nowDate = LocalDate.now();
boolean isOverTime = boolean isOverTime =
(activity.getPreCheckDate()!=null&&nowDate.isAfter(activity.getPreCheckDate())&&activity.getPreEndDateBack()==null) (activity.getPreCheckDate()!=null&&nowDate.isAfter(activity.getPreCheckDate())&&activity.getPreEndDateBack()==null)

2
src/main/resources/mapper/sys/SysUserMapper.xml

@ -79,6 +79,8 @@
<if test="query.superFlag != null"> and sys_user.super_flag = #{query.superFlag}</if> <if test="query.superFlag != null"> and sys_user.super_flag = #{query.superFlag}</if>
<if test="query.loginEnable != null"> and sys_user.login_enable = #{query.loginEnable}</if> <if test="query.loginEnable != null"> and sys_user.login_enable = #{query.loginEnable}</if>
<if test="query.servingState != null"> and sys_user.serving_state = #{query.servingState}</if> <if test="query.servingState != null"> and sys_user.serving_state = #{query.servingState}</if>
<if test="query.servingQueryState != null and query.servingQueryState = 0"> and sys_user.serving_state = 0 </if>
<if test="query.servingQueryState != null and query.servingQueryState = 1"> and sys_user.serving_state in (1,2)</if>
<if test="query.salesFlag != null"> and sys_user.sales_flag = #{query.salesFlag}</if> <if test="query.salesFlag != null"> and sys_user.sales_flag = #{query.salesFlag}</if>
<if test="query.identityNo != null and query.identityNo != ''"> and sys_user.identity_no = #{query.identityNo}</if> <if test="query.identityNo != null and query.identityNo != ''"> and sys_user.identity_no = #{query.identityNo}</if>
<if test="query.remark != null and query.remark != ''"> and sys_user.remark = #{query.remark}</if> <if test="query.remark != null and query.remark != ''"> and sys_user.remark = #{query.remark}</if>

Loading…
Cancel
Save