Browse Source

核销对接OA

mssql
Yen 3 years ago
parent
commit
67a792deed
  1. 3
      src/main/java/com/qs/serve/common/util/HttpUtil.java
  2. 1
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java
  3. 2
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java
  4. 11
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java
  5. 2
      src/main/java/com/qs/serve/modules/tbs/common/TbsActivityState.java
  6. 24
      src/main/java/com/qs/serve/modules/tbs/common/VtbVerificationState.java
  7. 21
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  8. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java
  9. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  10. 3
      src/main/java/com/qs/serve/modules/tbs/entity/vo/CtpAffairVo.java
  11. 7
      src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java
  12. 103
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  13. 12
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java
  14. 6
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  15. 6
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java
  16. 22
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

3
src/main/java/com/qs/serve/common/util/HttpUtil.java

@ -125,6 +125,9 @@ public class HttpUtil {
public static R<String> doPostResult(String url, String jsonStr, HashMap<String,String> headers){ public static R<String> doPostResult(String url, String jsonStr, HashMap<String,String> headers){
String result = HttpUtil.doPost(url,jsonStr,headers); String result = HttpUtil.doPost(url,jsonStr,headers);
log.debug("url:{},result:{}",url,result); log.debug("url:{},result:{}",url,result);
if(result==null){
Assert.throwEx("远程服务连接失败");
}
JSONObject jsonObject = JSONObject.parseObject(result); JSONObject jsonObject = JSONObject.parseObject(result);
Integer status = jsonObject.getInteger("status"); Integer status = jsonObject.getInteger("status");
String msg = jsonObject.getString("msg"); String msg = jsonObject.getString("msg");

1
src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java

@ -26,6 +26,7 @@ public class CtpAffair {
private String formRecordId; private String formRecordId;
/** 费用申请id、核销id */
private String costApplyId; private String costApplyId;
/** 评论内容 */ /** 评论内容 */

2
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java

@ -17,7 +17,7 @@ import java.util.List;
*/ */
public interface SeeYonService { public interface SeeYonService {
R<List<CtpAffairVo>> commonListAffairs(String syFormId, String tmpCode); R<List<CtpAffair>> commonListAffairs(String syFormId, String tmpCode);
R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode); R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode);

11
src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java

@ -39,7 +39,7 @@ public class SeeYonServiceImpl implements SeeYonService {
@Nullable @Nullable
@Override @Override
public R<List<CtpAffairVo>> commonListAffairs(String syFormId, String tmpCode) { public R<List<CtpAffair>> commonListAffairs(String syFormId, String tmpCode) {
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){ if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){
return R.error("当前账号未绑定致远用户信息"); return R.error("当前账号未绑定致远用户信息");
@ -47,8 +47,8 @@ public class SeeYonServiceImpl implements SeeYonService {
CtpAffairQo param = new CtpAffairQo(); CtpAffairQo param = new CtpAffairQo();
param.setFormMainId(syFormId); param.setFormMainId(syFormId);
param.setTemplateCodes(Arrays.asList(tmpCode)); param.setTemplateCodes(Arrays.asList(tmpCode));
R<List<CtpAffair>> syResult = this.listFormAffair(param); return this.listFormAffair(param);
List<CtpAffair> ctpAffairs = syResult.getData(); /*List<CtpAffair> ctpAffairs = syResult.getData();
if(ctpAffairs.size()>0){ if(ctpAffairs.size()>0){
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList()); List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds); List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
@ -64,8 +64,7 @@ public class SeeYonServiceImpl implements SeeYonService {
result.add(ctpAffairVo); result.add(ctpAffairVo);
} }
return R.ok(result); return R.ok(result);
} }*/
return null;
} }
@Override @Override
@ -174,7 +173,7 @@ public class SeeYonServiceImpl implements SeeYonService {
if(result.getStatus()!=200){ if(result.getStatus()!=200){
log.error("致远服务失败[{},{}]\nParam:{}",title,result.getMsg(),JsonUtil.objectToJson(param)); log.error("致远服务失败[{},{}]\nParam:{}",title,result.getMsg(),JsonUtil.objectToJson(param));
} }
log.debug("致远data:{}",result.getData()); log.debug("致远服务返回R<String>:{}",JsonUtil.objectToJson(result));
return result; return result;
} }

2
src/main/java/com/qs/serve/modules/tbs/common/TbsActivityState.java

@ -7,7 +7,7 @@ package com.qs.serve.modules.tbs.common;
public interface TbsActivityState { public interface TbsActivityState {
/** /**
* 活动状态0-待核销1-审批中2-完成3-冻结 * 活动状态0-待核销1-审批中2-完成3-冻结4-已释放费用
*/ */
Integer STATE_0_Todo = 0; Integer STATE_0_Todo = 0;
Integer STATE_1_Checking = 1; Integer STATE_1_Checking = 1;

24
src/main/java/com/qs/serve/modules/tbs/common/VtbVerificationState.java

@ -1,24 +0,0 @@
package com.qs.serve.modules.tbs.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author YenHex
* @since 2022/11/28
*/
@Getter
@AllArgsConstructor
public enum VtbVerificationState {
//状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止
State_0_unPublish(0),
State_1_apply(1),
State_2_actioning(2),
State_3_finished(3),
State_4_refused(4),
State_5_stop(5);
private Integer code;
}

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

@ -256,7 +256,25 @@ public class TbsCostApplyController {
return R.ok(); return R.ok();
} }
String tmpCode = TbsSeeYonConst.COST_APPLY_FORM; String tmpCode = TbsSeeYonConst.COST_APPLY_FORM;
return seeYonService.commonListAffairs(syFormId, tmpCode); R<List<CtpAffair>> syResult = seeYonService.commonListAffairs(syFormId, tmpCode);
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();
} }
/** /**
@ -336,6 +354,7 @@ public class TbsCostApplyController {
apply.setId(costApply.getId()); apply.setId(costApply.getId());
apply.setChargeState(TbsCostApplyState.State_5_stop.getCode()); apply.setChargeState(TbsCostApplyState.State_5_stop.getCode());
tbsCostApplyService.updateById(apply); tbsCostApplyService.updateById(apply);
//todo 释放预算费用
return R.ok(); return R.ok();
}else if ("next".equals(flag)){ }else if ("next".equals(flag)){
return R.ok(); return R.ok();

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCostItem.java

@ -205,6 +205,9 @@ public class TbsBudgetCostItem implements Serializable {
/** TbsActivityCenterGoods的id */ /** TbsActivityCenterGoods的id */
private Long centerGoodItemId; private Long centerGoodItemId;
/** todo 是否无效(退回,拒绝时使用) */
private Integer invalidFlag;
/** 请忽略,后端传输参数 */ /** 请忽略,后端传输参数 */
@TableField(exist = false) @TableField(exist = false)

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java

@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
public class TbsAffairCommitBo { public class TbsAffairCommitBo {
/** /**
* 费用申请id费用申请id * 费用申请id核销id
*/ */
@NotNull @NotNull
private Long costApplyId; private Long costApplyId;

3
src/main/java/com/qs/serve/modules/tbs/entity/vo/CtpAffairVo.java

@ -24,4 +24,7 @@ public class CtpAffairVo {
/** 审批人 */ /** 审批人 */
private Object userInfo; private Object userInfo;
/** 活动 */
private Object activityInfo;
} }

7
src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java

@ -11,9 +11,10 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum VtbVerificationState { public enum VtbVerificationState {
Commit(0), //状态:0=审批中;1=完成;2-中止;3-回滚
Success(1), Commiting(0),
Fail(2), Finished(1),
Stop(2),
Rollback(3); Rollback(3);
private Integer code; private Integer code;

103
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -15,12 +15,16 @@ import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.sys.service.SysAttachService;
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.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.VtbVerificationState; import com.qs.serve.modules.tbs.entity.TbsActivity;
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.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerificationChannel; import com.qs.serve.modules.vtb.entity.VtbVerificationChannel;
import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint; import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
@ -28,8 +32,10 @@ import com.qs.serve.modules.vtb.entity.so.VtbVerificationSubjectSo;
import com.qs.serve.modules.vtb.service.VtbVerificationChannelPointService; import com.qs.serve.modules.vtb.service.VtbVerificationChannelPointService;
import com.qs.serve.modules.vtb.service.VtbVerificationChannelService; import com.qs.serve.modules.vtb.service.VtbVerificationChannelService;
import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService;
import com.tencentcloudapi.as.v20180419.models.Activity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -59,6 +65,8 @@ public class VtbVerificationController {
private VtbVerificationChannelService vtbVerificationChannelService; private VtbVerificationChannelService vtbVerificationChannelService;
private VtbVerificationChannelPointService vtbVerificationChannelPointService; private VtbVerificationChannelPointService vtbVerificationChannelPointService;
private VtbVerificationSubjectService vtbVerificationSubjectService; private VtbVerificationSubjectService vtbVerificationSubjectService;
private TbsActivityService tbsActivityService;
private TbsCostApplyService tbsCostApplyService;
private SysAttachService attachService; private SysAttachService attachService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SeeYonService seeYonService; private SeeYonService seeYonService;
@ -129,13 +137,15 @@ public class VtbVerificationController {
*/ */
@GetMapping("/ListAffairs") @GetMapping("/ListAffairs")
public R<List<CtpAffairVo>> pageMemberAffair(Long verificationId){ public R<List<CtpAffairVo>> pageMemberAffair(Long verificationId){
VtbVerification verification = vtbVerificationService.getById(verificationId); VtbVerification verificationDB = vtbVerificationService.getById(verificationId);
String syFormId = verification.getSyFormId(); String syFormId = verificationDB.getSyFormId();
if(syFormId==null){ if(syFormId==null){
return R.ok(); return R.ok();
} }
String tmpCode = TbsSeeYonConst.VERIFICATION_FORM; String tmpCode = TbsSeeYonConst.VERIFICATION_FORM;
return seeYonService.commonListAffairs(syFormId, tmpCode); R<List<CtpAffair>> result = seeYonService.commonListAffairs(syFormId, tmpCode);
List<CtpAffairVo> result2 = this.buildCtpAffairVoList(result.getData());
return R.ok(result2);
} }
/** /**
@ -161,31 +171,63 @@ public class VtbVerificationController {
PageVo<CtpAffair> pageVo = syResult.getData(); PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList(); List<CtpAffair> ctpAffairs = pageVo.getList();
if(ctpAffairs.size()>0){ if(ctpAffairs.size()>0){
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList()); List<CtpAffairVo> result = this.buildCtpAffairVoList(ctpAffairs);
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds); PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result);
List<String> verificationIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList()); return R.ok(costApplyPageVo);
List<VtbVerification> vtbVerificationList = vtbVerificationService.listByIds(verificationIds); }
List<CtpAffairVo> result = new ArrayList<>(); return R.byEmptyList();
for (CtpAffair ctpAffair : ctpAffairs) { }
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (VtbVerification verification : vtbVerificationList) { @NotNull
if(verification.getId().toString().equals(ctpAffair.getCostApplyId())){ private List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs) {
ctpAffairVo.setVerification(verification); if(CollectionUtil.isEmpty(ctpAffairs)){
break; return new ArrayList<>();
}
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
List<String> verificationIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<VtbVerification> vtbVerificationList = new ArrayList<>();
List<TbsActivity> activityList = new ArrayList<>();
List<TbsCostApply> costApplyList = new ArrayList<>();
if(verificationIds.size()>0){
vtbVerificationList = vtbVerificationService.listByIds(verificationIds);
List<Long> actIds = vtbVerificationList.stream().map(VtbVerification::getActivityId).collect(Collectors.toList());
if(actIds.size()>0){
activityList = tbsActivityService.listByIds(actIds);
List<Long> costIds = activityList.stream().map(TbsActivity::getCostApplyId).distinct().collect(Collectors.toList());
costApplyList = tbsCostApplyService.listByIds(costIds);
}
}
List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (VtbVerification verification : vtbVerificationList) {
if(verification.getId().toString().equals(ctpAffair.getCostApplyId())){
ctpAffairVo.setVerification(verification);
for (TbsActivity activity : activityList) {
if(verification.getActivityId().equals(activity.getId())){
ctpAffairVo.setActivityInfo(activity);
for (TbsCostApply costApply : costApplyList) {
if(activity.getCostApplyId().equals(costApply.getId())){
ctpAffairVo.setCostApply(costApply);
}
break;
}
break;
}
} }
break;
} }
for (SysUser user : userList) { }
if(ctpAffair.getMemberId().equals(user.getSyUserId())){ for (SysUser user : userList) {
ctpAffairVo.setUserInfo(user.toSysUserVo()); if(ctpAffair.getMemberId().equals(user.getSyUserId())){
} ctpAffairVo.setUserInfo(user.toSysUserVo());
} }
ctpAffairVo.setAffairInfo(ctpAffair);
result.add(ctpAffairVo);
} }
PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result); ctpAffairVo.setAffairInfo(ctpAffair);
return R.ok(costApplyPageVo); result.add(ctpAffairVo);
} }
return R.byEmptyList(); return result;
} }
/** /**
@ -197,7 +239,7 @@ public class VtbVerificationController {
@PreAuthorize("hasRole('tbs:costApply:commit')") @PreAuthorize("hasRole('tbs:costApply:commit')")
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId()); VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId());
if(!verification.getVerificationState().equals(VtbVerificationState.State_1_apply.getCode())){ if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
return R.error("费用申请处于未非审批状态!"); return R.error("费用申请处于未非审批状态!");
} }
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.VERIFICATION_FORM); R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.VERIFICATION_FORM);
@ -208,13 +250,20 @@ public class VtbVerificationController {
if("finish".equals(flag)){ if("finish".equals(flag)){
VtbVerification vtbVer = new VtbVerification(); VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId()); vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.State_2_actioning.getCode()); vtbVer.setVerificationState(VtbVerificationState.Finished.getCode());
vtbVerificationService.updateById(vtbVer); vtbVerificationService.updateById(vtbVer);
vtbVerificationService.successCommit(verification.getId());
return R.ok();
}else if ("stop".equals(flag)){ }else if ("stop".equals(flag)){
VtbVerification vtbVer = new VtbVerification(); VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId()); vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.State_5_stop.getCode()); vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer); vtbVerificationService.updateById(vtbVer);
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());
activity.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityService.updateById(activity);
return R.ok(); return R.ok();
}else if ("next".equals(flag)){ }else if ("next".equals(flag)){
return R.ok(); return R.ok();

12
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java

@ -61,6 +61,15 @@ public class VtbVerificationSubject implements Serializable {
@Length(max = 50,message = "科目名称长度不能超过50字") @Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName; private String subjectName;
/** 客户id */
private Long supplierId;
/** 客户编码 */
private String supplierCode;
/** 客户名称 */
private String supplierName;
/** 本次核销额 */ /** 本次核销额 */
@NotNull(message = "本次核销额不能为空") @NotNull(message = "本次核销额不能为空")
private BigDecimal usedAmount; private BigDecimal usedAmount;
@ -110,5 +119,8 @@ public class VtbVerificationSubject implements Serializable {
@JsonProperty @JsonProperty
private String delFlag; private String delFlag;
/** 是否有效(0:否;1:是) */
private Integer effectiveFlag;
} }

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

@ -42,6 +42,12 @@ public interface VtbVerificationService extends IService<VtbVerification> {
*/ */
void successCommit(Long verificationId); void successCommit(Long verificationId);
/**
* 释放费用占用不更改核销状态
* @param verificationId
*/
void releaseVerification(Long verificationId);
/** /**
* 检测释放正在核销 * 检测释放正在核销
* @param activityId * @param activityId

6
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java

@ -3,6 +3,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.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter; import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
@ -83,6 +84,11 @@ public class VtbFundFlowServiceImpl extends ServiceImpl<VtbFundFlowMapper,VtbFun
boolean finished = orgActivity.getTotalAmount().compareTo(activityUsedAmount)==0; boolean finished = orgActivity.getTotalAmount().compareTo(activityUsedAmount)==0;
log.info("活动信息:{},ActId:{}",finished?"已完成":"未完成",activityId); log.info("活动信息:{},ActId:{}",finished?"已完成":"未完成",activityId);
activity.setFinishedFlag(finished?1:0); activity.setFinishedFlag(finished?1:0);
if(finished){
activity.setActivityState(TbsActivityState.STATE_1_Finished);
}else {
activity.setActivityState(TbsActivityState.STATE_0_Todo);
}
activityService.updateById(activity); activityService.updateById(activity);
} }

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

@ -8,9 +8,11 @@ import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.bms.entity.BmsChannel; import com.qs.serve.modules.bms.entity.BmsChannel;
import com.qs.serve.modules.bms.entity.BmsChannelPoint; import com.qs.serve.modules.bms.entity.BmsChannelPoint;
import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsChannelPointService; import com.qs.serve.modules.bms.service.BmsChannelPointService;
import com.qs.serve.modules.bms.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonService; import com.qs.serve.modules.seeyon.service.SeeYonService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
@ -63,6 +65,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
private final BmsSubjectService subjectService; private final BmsSubjectService subjectService;
private final BmsChannelService channelService; private final BmsChannelService channelService;
private final BmsChannelPointService channelPointService; private final BmsChannelPointService channelPointService;
private final BmsSupplierService bmsSupplierService;
private final VtbVerificationChannelService verificationChannelService; private final VtbVerificationChannelService verificationChannelService;
private final VtbVerificationChannelPointService verificationChannelPointService; private final VtbVerificationChannelPointService verificationChannelPointService;
@ -147,6 +150,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
sysUser.checkSyAccount(); sysUser.checkSyAccount();
TbsActivity activity = activityService.getById(verificationBo.getActivityId()); TbsActivity activity = activityService.getById(verificationBo.getActivityId());
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
BmsSupplier supplier = bmsSupplierService.getById(activity.getSupplierId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){ if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("当前费用状态不支持"); Assert.throwEx("当前费用状态不支持");
} }
@ -192,7 +196,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verificationChannelPointList.add(channelPoint1); verificationChannelPointList.add(channelPoint1);
} }
} }
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verificationBo, activity, costApply); List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verificationBo, activity, costApply, supplier);
//设置总金额 //设置总金额
BigDecimal totalAmount = BigDecimal.ZERO; BigDecimal totalAmount = BigDecimal.ZERO;
for (VtbVerificationSubject verificationSubject : verificationSubjects) { for (VtbVerificationSubject verificationSubject : verificationSubjects) {
@ -202,6 +206,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
//保存 //保存
this.saveOrUpdate(verification); this.saveOrUpdate(verification);
this.commitSy(sysUser,verification); this.commitSy(sysUser,verification);
this.updateById(verification);
if(verification.getSyFormId()==null||verification.getSyFlowId()==null){ if(verification.getSyFormId()==null||verification.getSyFlowId()==null){
Assert.throwEx("远程调用失败"); Assert.throwEx("远程调用失败");
} }
@ -304,7 +309,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* @param costApply * @param costApply
* @return * @return
*/ */
private List<VtbVerificationSubject> validCreateVeriSubject(VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply) { private List<VtbVerificationSubject> validCreateVeriSubject(VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply,BmsSupplier supplier) {
List<VtbVerificationSubject> verificationSubjects = new ArrayList<>(); List<VtbVerificationSubject> verificationSubjects = new ArrayList<>();
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(activity.getId()); List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(activity.getId());
List<VtbFundFlow> existFundFlowList = fundFlowService.listByActivity(activity.getId(), VtbFundFlowType.Verification); List<VtbFundFlow> existFundFlowList = fundFlowService.listByActivity(activity.getId(), VtbFundFlowType.Verification);
@ -343,6 +348,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verificationSubject.setSubjectId(subject.getId()); verificationSubject.setSubjectId(subject.getId());
verificationSubject.setSubjectCode(subject.getSubjectCode()); verificationSubject.setSubjectCode(subject.getSubjectCode());
verificationSubject.setSubjectName(subject.getSubjectName()); verificationSubject.setSubjectName(subject.getSubjectName());
verificationSubject.setSupplierId(Long.parseLong(supplier.getId()));
verificationSubject.setSubjectCode(supplier.getCode());
verificationSubject.setSubjectName(supplier.getName());
verificationSubject.setUsedAmount(subjectBo.getAmount()); verificationSubject.setUsedAmount(subjectBo.getAmount());
verificationSubject.setCountPerson(subjectBo.getCountPerson()); verificationSubject.setCountPerson(subjectBo.getCountPerson());
verificationSubject.setCountSession(subjectBo.getCountSession()); verificationSubject.setCountSession(subjectBo.getCountSession());
@ -400,7 +408,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
fundFlowService.saveBatch(addFundFlowList); fundFlowService.saveBatch(addFundFlowList);
//更新已用费用记录 //更新已用费用记录
fundFlowService.flushActivityAmount(verification.getActivityId()); fundFlowService.flushActivityAmount(verification.getActivityId());
//todo 远程调用第三方接口 //todo 更新客户金额
//fundFlow绑定考核期项,用于合计预算使用情况
}
@Override
public void releaseVerification(Long verificationId) {
//todo shi
} }
/** /**
@ -494,7 +508,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
public boolean checkCommitting(Long activityId) { public boolean checkCommitting(Long activityId) {
LambdaQueryWrapper<VtbVerification> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<VtbVerification> lqw = new LambdaQueryWrapper<>();
lqw.eq(VtbVerification::getActivityId,activityId); lqw.eq(VtbVerification::getActivityId,activityId);
lqw.eq(VtbVerification::getVerificationState, VtbVerificationState.Commit.getCode()); lqw.eq(VtbVerification::getVerificationState, VtbVerificationState.Commiting.getCode());
return this.count(lqw)>0; return this.count(lqw)>0;
} }
} }

Loading…
Cancel
Save