Browse Source

审批查询调整,政策提交审批接口

contract
Yen 2 years ago
parent
commit
76ae7d2ad4
  1. 2
      src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java
  2. 1
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java
  3. 2
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java
  4. 3
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java
  5. 9
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  6. 3
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  7. 3
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  8. 1
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java
  9. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  10. 47
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  11. 39
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  12. 7
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  13. 4
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java
  14. 1
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  15. 2
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  16. 2
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  17. 1
      src/main/resources/application.yml

2
src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java

@ -11,5 +11,5 @@ import lombok.Data;
@AllArgsConstructor @AllArgsConstructor
public class BaseCreateCallbackBo { public class BaseCreateCallbackBo {
String formType; String formType;
String targetId; String formId;
} }

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

@ -13,6 +13,7 @@ public class CtpAffairCommit {
private Integer state; private Integer state;
private String affairId; private String affairId;
private String fromRecordId;
/** /**
* 如果是state=1 同意传入member的登录账号 * 如果是state=1 同意传入member的登录账号

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

@ -19,7 +19,7 @@ public interface SeeYonService {
R<List<CtpAffair>> commonListAffairs(String targetId,String syFormId,String templateCode); R<List<CtpAffair>> commonListAffairs(String targetId,String syFormId,String templateCode);
R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode); R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode,String formRecordId);
boolean testConnection(); boolean testConnection();

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

@ -52,11 +52,12 @@ public class SeeYonServiceImpl implements SeeYonService {
} }
@Override @Override
public R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode) { public R<String> commonCommit(TbsAffairCommitBo affairCommit,String formCode,String formRecordId) {
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
sysUser.checkSyAccount(); sysUser.checkSyAccount();
CtpAffairCommit param = new CtpAffairCommit(); CtpAffairCommit param = new CtpAffairCommit();
param.setFormCode(formCode); param.setFormCode(formCode);
param.setFromRecordId(formRecordId);
param.setState(affairCommit.getState()); param.setState(affairCommit.getState());
param.setAffairId(affairCommit.getAffairId()); param.setAffairId(affairCommit.getAffairId());
param.setComment(affairCommit.getComment()); param.setComment(affairCommit.getComment());

9
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -16,9 +16,6 @@ public interface TbsSeeYonConst {
public static String Code(){ public static String Code(){
return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":""; return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":"";
} }
public static String Id(){
return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":"";
}
} }
/** 费用申请 */ /** 费用申请 */
@ -26,9 +23,6 @@ public interface TbsSeeYonConst {
public static String Code(){ public static String Code(){
return DevEnvironmentConfig.isDev()?"CostBill_Test":""; return DevEnvironmentConfig.isDev()?"CostBill_Test":"";
} }
public static String Id(){
return DevEnvironmentConfig.isDev()?"3018014149748736162":"";
}
} }
/** 核销 */ /** 核销 */
@ -36,9 +30,6 @@ public interface TbsSeeYonConst {
public static String Code(){ public static String Code(){
return DevEnvironmentConfig.isDev()?"CheckCost_Test":""; return DevEnvironmentConfig.isDev()?"CheckCost_Test":"";
} }
public static String Id(){
return DevEnvironmentConfig.isDev()?"8370474123848467567":"";
}
} }
String API_TEST = "/testConnection"; String API_TEST = "/testConnection";

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

@ -333,7 +333,6 @@ public class TbsCostApplyController {
return R.error("当前账号未绑定致远用户信息"); return R.error("当前账号未绑定致远用户信息");
} }
param.setMemberId(sysUser.getSyUserId()); param.setMemberId(sysUser.getSyUserId());
param.setTemplateId(TbsSeeYonConst.CostApplyConf.Id());
param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code()); param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code());
R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param); R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData(); PageVo<CtpAffair> pageVo = syResult.getData();
@ -379,7 +378,7 @@ public class TbsCostApplyController {
if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){ if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){
return R.error("费用申请处于未非审批状态!"); return R.error("费用申请处于未非审批状态!");
} }
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code()); R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code(),costApply.getSyFormId());
boolean isBackCommit = affairCommit.getState()==2; boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){ if(result.getStatus()==200){
// 判断是否含有下个节点 // 判断是否含有下个节点

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

@ -14,10 +14,9 @@ import java.util.List;
public class TbsAffairCommitBo { public class TbsAffairCommitBo {
/** /**
* 费用申请id核销id * 旧版的费用申请id核销id
*/ */
private Long costApplyId; private Long costApplyId;
private Long policyId; private Long policyId;
/** 状态:0-否定,1-同意,2-退回 */ /** 状态:0-否定,1-同意,2-退回 */

1
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java

@ -53,6 +53,7 @@ public class TbsBudgetItemCostResult {
itemPolicy.setSubjectName(policyItem.getSubjectName()); itemPolicy.setSubjectName(policyItem.getSubjectName());
itemPolicy.setCenterCode(policyItem.getCenterCode()); itemPolicy.setCenterCode(policyItem.getCenterCode());
itemPolicy.setCenterId(policyItem.getCenterId()); itemPolicy.setCenterId(policyItem.getCenterId());
itemPolicy.setCenterType(policyItem.getCenterType());
itemPolicy.setCenterName(policyItem.getCenterName()); itemPolicy.setCenterName(policyItem.getCenterName());
itemPolicy.setSupplierId(policyItem.getSupplierId()); itemPolicy.setSupplierId(policyItem.getSupplierId());
itemPolicy.setSupplierCode(policyItem.getSupplierCode()); itemPolicy.setSupplierCode(policyItem.getSupplierCode());

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

@ -159,7 +159,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
//创建流程后回调 //创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),tbsCostApply.getId()+""); BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),formId);
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
} }

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

@ -1,6 +1,9 @@
package com.qs.serve.modules.third; package com.qs.serve.modules.third;
import cn.hutool.crypto.SecureUtil;
import com.qs.serve.common.config.DevEnvironmentConfig;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo; import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo;
import com.qs.serve.modules.third.entity.ProcessCreatePolicyCostBo; import com.qs.serve.modules.third.entity.ProcessCreatePolicyCostBo;
import com.qs.serve.modules.third.service.PortalOfCostApplication; import com.qs.serve.modules.third.service.PortalOfCostApplication;
@ -11,41 +14,67 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 第三方接口核销系统 * 第三方接口核销系统
* headers+ => tenant-id = 001
* headers+ => v-token = MD5.encrypt('jslApi-'+yyyy-MM-dd)
* @author YenHex * @author YenHex
* @since 2023/2/14 * @since 2023/2/14
*/ */
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
@RestController @RestController
@RequestMapping("portal/cost") @RequestMapping("thirty/cost")
public class PortalOfCostController { public class PortalOfCostController {
private final String TOKEN_API_PARAM = "v-token";
private final String PREFIX_MD5_VALUE = "jslApi-";
private PortalOfCostApplication portalOfCostApplication; private PortalOfCostApplication portalOfCostApplication;
/** /**
* 一站式创建费用(费用申请) * 一站式创建费用(政策)
* @param createBo * @param createBo
* @return * @return
*/ */
//@PostMapping("createByCostApply") @PostMapping("createByPolicy")
public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo){ public R<?> createCostProcess2(@Valid @RequestBody ProcessCreatePolicyCostBo createBo, HttpServletRequest request){
portalOfCostApplication.createCostProcess(createBo); checkToken(request);
portalOfCostApplication.createCostProcessByPolicy(createBo);
return R.ok(); return R.ok();
} }
/** /**
* 一站式创建费用(政策) * 一站式创建费用(费用申请)
* @param createBo * @param createBo
* @return * @return
*/ */
@PostMapping("createByPolicy") //@PostMapping("createByCostApply")
public R<?> createCostProcess2(@Valid @RequestBody ProcessCreatePolicyCostBo createBo){ public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){
portalOfCostApplication.createCostProcessByPolicy(createBo); checkToken(request);
portalOfCostApplication.createCostProcess(createBo);
return R.ok(); return R.ok();
} }
private void checkToken(HttpServletRequest request) {
String time = LocalDate.now().toString();
String match = SecureUtil.md5(PREFIX_MD5_VALUE + time);
String token = request.getHeader(TOKEN_API_PARAM);
if(token==null||token.equalsIgnoreCase(match)){
if(DevEnvironmentConfig.isDev()){
log.error("v-token==>"+match);
Assert.throwEx("请求头 v-token 为空。或token无效");
}
Assert.throwEx("err");
}
}
} }

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

@ -104,6 +104,7 @@ public class PortalOfCostApplication {
if(policyItem==null){ Assert.throwEx("政策项不存在,请重新编辑");} if(policyItem==null){ Assert.throwEx("政策项不存在,请重新编辑");}
BmsSupplier supplier = supplierService.getById(policyItem.getSupplierId()); BmsSupplier supplier = supplierService.getById(policyItem.getSupplierId());
BmsSubject subject = subjectService.getById(policyItem.getSubjectId()); BmsSubject subject = subjectService.getById(policyItem.getSubjectId());
//TODO 校验商品信息
//发票号 //发票号
String billNumber = createBo.getBillNumber(); String billNumber = createBo.getBillNumber();
//拦截是否已保存 //拦截是否已保存
@ -266,43 +267,11 @@ public class PortalOfCostApplication {
}); });
activityCenterGoodsService.saveBatch(activityCenterGoodsList); activityCenterGoodsService.saveBatch(activityCenterGoodsList);
//获取匹配的预算结果 // 因为政策申请已扣除预算,这里旧不需要再进行保存
TbsBudgetCostResult budgetCostResult = budgetApplicationService.buildBudgetCostResult( // budgetLogService.saveBatch(budgetLogList);
costApply.getId(),
Arrays.asList(activity),
Arrays.asList(activitySubject),
activityCenterGoodsList,
Arrays.asList(activityCenter),true,false,false);
//不匹配的商品,保存到无预算表
List<TbsBudgetCostItem> unMatchBudgetItem = budgetCostResult.getBudgetUnMatchList();
List<TbsCostUnItem> costUnItemList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(unMatchBudgetItem)){
for (TbsBudgetCostItem budgetCostItem : unMatchBudgetItem) {
TbsCostUnItem costUnItem = budgetCostItem.toTbsCostUnItem(activity);
costUnItemList.add(costUnItem);
}
}
costUnItemService.saveBatch(costUnItemList);
//TODO 修改预算日志,记录政策使用情况 //TODO 修改预算日志,记录政策使用情况
//匹配的商品,生成预算日志
List<TbsBudgetCostItem> matchBudgetItem = budgetCostResult.getBudgetMatchList();
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(matchBudgetItem)){
for (TbsBudgetCostItem costItem : matchBudgetItem) {
TbsBudget currBudget = null;
for (TbsBudget budget : budgetCostResult.getBudgetList()) {
if(costItem.getBudgetId().equals(budget.getId())){
currBudget = budget;
break;
}
}
TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_11,user, costApply, costItem, currBudget,costItem.getCenterGoodsAmount().negate(),activity);
budgetLogList.add(budgetLog);
}
}
budgetLogService.saveBatch(budgetLogList);
//保存核销申请 //保存核销申请
VtbVerification verification = new VtbVerification(); VtbVerification verification = new VtbVerification();

7
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -191,7 +191,7 @@ public class TzcPolicyController {
if(tzcPolicy.getSyFormId()==null){ if(tzcPolicy.getSyFormId()==null){
return R.ok(); return R.ok();
} }
String templateCode = TbsSeeYonConst.CostApplyConf.Code(); String templateCode = TbsSeeYonConst.PolicyConf.Code();
R<List<CtpAffair>> syResult = seeYonService.commonListAffairs(policyId+"",null,templateCode); R<List<CtpAffair>> syResult = seeYonService.commonListAffairs(policyId+"",null,templateCode);
List<CtpAffair> ctpAffairs = syResult.getData(); List<CtpAffair> ctpAffairs = syResult.getData();
if(ctpAffairs.size()>0){ if(ctpAffairs.size()>0){
@ -227,8 +227,7 @@ public class TzcPolicyController {
return R.error("当前账号未绑定致远用户信息"); return R.error("当前账号未绑定致远用户信息");
} }
param.setMemberId(sysUser.getSyUserId()); param.setMemberId(sysUser.getSyUserId());
param.setTemplateId(TbsSeeYonConst.CostApplyConf.Id()); param.setTemplateCode(TbsSeeYonConst.PolicyConf.Code());
param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code());
R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param); R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData(); PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList(); List<CtpAffair> ctpAffairs = pageVo.getList();
@ -274,7 +273,7 @@ public class TzcPolicyController {
if(!tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_1_Checking)){ if(!tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_1_Checking)){
return R.error("费用申请处于未非审批状态!"); return R.error("费用申请处于未非审批状态!");
} }
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code()); R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getSyFormId());
boolean isBackCommit = affairCommit.getState()==2; boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){ if(result.getStatus()==200){
// 判断是否含有下个节点 // 判断是否含有下个节点

4
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java

@ -119,7 +119,7 @@ public class TzcPolicyApplication {
tzcPolicyService.updateById(updPolicy); tzcPolicyService.updateById(updPolicy);
tzcPolicy = tzcPolicyService.getById(policyId); tzcPolicy = tzcPolicyService.getById(policyId);
//移除历史记录 //移除历史记录
tzcPolicyItemService.removeByPolicyId(policyId); //tzcPolicyItemService.removeByPolicyId(policyId);
//保存无命中条件的预算 //保存无命中条件的预算
if(CollectionUtil.isNotEmpty(result.getBudgetUnMatchList())){ if(CollectionUtil.isNotEmpty(result.getBudgetUnMatchList())){
List<TbsCostUnItemPolicy> costUnItems = result.getBudgetUnMatchList().stream() List<TbsCostUnItemPolicy> costUnItems = result.getBudgetUnMatchList().stream()
@ -167,7 +167,7 @@ public class TzcPolicyApplication {
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
//创建流程后回调 //创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),policyId+""); BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),formId);
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
} }

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

@ -208,7 +208,6 @@ public class VtbVerificationController {
param.setState(state); param.setState(state);
param.setPageNum(pageNum); param.setPageNum(pageNum);
param.setPageSize(pageSize); param.setPageSize(pageSize);
param.setTemplateId(TbsSeeYonConst.CostCheckConf.Id());
param.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code()); param.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code());
R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param); R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData(); PageVo<CtpAffair> pageVo = syResult.getData();

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

@ -92,7 +92,7 @@ public class VtbVerificationApplication {
} }
boolean isBackCommit = affairCommit.getState()==2; boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code()); R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId());
if(result.getStatus()==200){ if(result.getStatus()==200){
// 判断是否含有下个节点 // 判断是否含有下个节点
String flag = result.getData(); String flag = result.getData();

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

@ -334,7 +334,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setSyFlowId(flowId); verification.setSyFlowId(flowId);
verification.setSyFormId(formId); verification.setSyFormId(formId);
//创建流程后回调 //创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostCheckConf.Code(),verification.getId()+""); BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostCheckConf.Code(),formId);
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
} }

1
src/main/resources/application.yml

@ -18,6 +18,7 @@ project:
- /favicon.ico - /favicon.ico
- /error - /error
permits: #忽略登录 permits: #忽略登录
- /thirty/**
- /common/upload #支持API上传调整 - /common/upload #支持API上传调整
- /common/validToken #验证token - /common/validToken #验证token
- /api/** - /api/**

Loading…
Cancel
Save