From 76ae7d2ad44d276cd8cb5792292fcb150acce249 Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 27 Feb 2023 16:24:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=9F=A5=E8=AF=A2=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E6=94=BF=E7=AD=96=E6=8F=90=E4=BA=A4=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seeyon/entity/BaseCreateCallbackBo.java | 2 +- .../seeyon/entity/CtpAffairCommit.java | 1 + .../modules/seeyon/service/SeeYonService.java | 2 +- .../service/impl/SeeYonServiceImpl.java | 3 +- .../modules/tbs/common/TbsSeeYonConst.java | 9 ---- .../controller/TbsCostApplyController.java | 3 +- .../tbs/entity/bo/TbsAffairCommitBo.java | 3 +- .../entity/dto/TbsBudgetItemCostResult.java | 1 + .../service/impl/TbsCostApplyServiceImpl.java | 2 +- .../modules/third/PortalOfCostController.java | 47 +++++++++++++++---- .../service/PortalOfCostApplication.java | 39 ++------------- .../tzc/controller/TzcPolicyController.java | 7 ++- .../tzc/service/TzcPolicyApplication.java | 4 +- .../controller/VtbVerificationController.java | 1 - .../service/VtbVerificationApplication.java | 2 +- .../impl/VtbVerificationServiceImpl.java | 2 +- src/main/resources/application.yml | 1 + 17 files changed, 59 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java b/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java index 6ed07eb7..eaf32ad9 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateCallbackBo.java @@ -11,5 +11,5 @@ import lombok.Data; @AllArgsConstructor public class BaseCreateCallbackBo { String formType; - String targetId; + String formId; } diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java index 64417729..a84fb1b1 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java @@ -13,6 +13,7 @@ public class CtpAffairCommit { private Integer state; private String affairId; + private String fromRecordId; /** * 如果是state=1 同意,传入member的登录账号 diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java index 8337d2b2..2e58310d 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java @@ -19,7 +19,7 @@ public interface SeeYonService { R> commonListAffairs(String targetId,String syFormId,String templateCode); - R commonCommit(TbsAffairCommitBo affairCommit,String formCode); + R commonCommit(TbsAffairCommitBo affairCommit,String formCode,String formRecordId); boolean testConnection(); diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java index b1658e64..ebec0871 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java @@ -52,11 +52,12 @@ public class SeeYonServiceImpl implements SeeYonService { } @Override - public R commonCommit(TbsAffairCommitBo affairCommit,String formCode) { + public R commonCommit(TbsAffairCommitBo affairCommit,String formCode,String formRecordId) { SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); sysUser.checkSyAccount(); CtpAffairCommit param = new CtpAffairCommit(); param.setFormCode(formCode); + param.setFromRecordId(formRecordId); param.setState(affairCommit.getState()); param.setAffairId(affairCommit.getAffairId()); param.setComment(affairCommit.getComment()); diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 328f6c30..dc7f5703 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -16,9 +16,6 @@ public interface TbsSeeYonConst { public static String Code(){ 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(){ return DevEnvironmentConfig.isDev()?"CostBill_Test":""; } - public static String Id(){ - return DevEnvironmentConfig.isDev()?"3018014149748736162":""; - } } /** 核销 */ @@ -36,9 +30,6 @@ public interface TbsSeeYonConst { public static String Code(){ return DevEnvironmentConfig.isDev()?"CheckCost_Test":""; } - public static String Id(){ - return DevEnvironmentConfig.isDev()?"8370474123848467567":""; - } } String API_TEST = "/testConnection"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index dbd30705..cf06845e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -333,7 +333,6 @@ public class TbsCostApplyController { return R.error("当前账号未绑定致远用户信息"); } param.setMemberId(sysUser.getSyUserId()); - param.setTemplateId(TbsSeeYonConst.CostApplyConf.Id()); param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code()); R> syResult = seeYonService.pageMemberAffair(param); PageVo pageVo = syResult.getData(); @@ -379,7 +378,7 @@ public class TbsCostApplyController { if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){ return R.error("费用申请处于未非审批状态!"); } - R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code()); + R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code(),costApply.getSyFormId()); boolean isBackCommit = affairCommit.getState()==2; if(result.getStatus()==200){ // 判断是否含有下个节点 diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java index f52b691d..eaed593a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java @@ -14,10 +14,9 @@ import java.util.List; public class TbsAffairCommitBo { /** - * 费用申请id、核销id + * 旧版的:费用申请id、核销id */ private Long costApplyId; - private Long policyId; /** 状态:0-否定,1-同意,2-退回 */ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java index 97c057e7..5d060f81 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java @@ -53,6 +53,7 @@ public class TbsBudgetItemCostResult { itemPolicy.setSubjectName(policyItem.getSubjectName()); itemPolicy.setCenterCode(policyItem.getCenterCode()); itemPolicy.setCenterId(policyItem.getCenterId()); + itemPolicy.setCenterType(policyItem.getCenterType()); itemPolicy.setCenterName(policyItem.getCenterName()); itemPolicy.setSupplierId(policyItem.getSupplierId()); itemPolicy.setSupplierCode(policyItem.getSupplierCode()); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index a25f5fd6..64c896ad 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -159,7 +159,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl tenant-id = 001 + * headers+ => v-token = MD5.encrypt('jslApi-'+yyyy-MM-dd) * @author YenHex * @since 2023/2/14 */ @Slf4j @AllArgsConstructor @RestController -@RequestMapping("portal/cost") +@RequestMapping("thirty/cost") public class PortalOfCostController { + private final String TOKEN_API_PARAM = "v-token"; + private final String PREFIX_MD5_VALUE = "jslApi-"; + private PortalOfCostApplication portalOfCostApplication; + /** - * 一站式创建费用(费用申请) + * 一站式创建费用(政策) * @param createBo * @return */ - //@PostMapping("createByCostApply") - public R createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo){ - portalOfCostApplication.createCostProcess(createBo); + @PostMapping("createByPolicy") + public R createCostProcess2(@Valid @RequestBody ProcessCreatePolicyCostBo createBo, HttpServletRequest request){ + checkToken(request); + portalOfCostApplication.createCostProcessByPolicy(createBo); return R.ok(); } + + /** - * 一站式创建费用(政策) + * 一站式创建费用(费用申请) * @param createBo * @return */ - @PostMapping("createByPolicy") - public R createCostProcess2(@Valid @RequestBody ProcessCreatePolicyCostBo createBo){ - portalOfCostApplication.createCostProcessByPolicy(createBo); + //@PostMapping("createByCostApply") + public R createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){ + checkToken(request); + portalOfCostApplication.createCostProcess(createBo); 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"); + } + } + } diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 34e5eb52..95698620 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -104,6 +104,7 @@ public class PortalOfCostApplication { if(policyItem==null){ Assert.throwEx("政策项不存在,请重新编辑");} BmsSupplier supplier = supplierService.getById(policyItem.getSupplierId()); BmsSubject subject = subjectService.getById(policyItem.getSubjectId()); + //TODO 校验商品信息 //发票号 String billNumber = createBo.getBillNumber(); //拦截是否已保存 @@ -266,43 +267,11 @@ public class PortalOfCostApplication { }); activityCenterGoodsService.saveBatch(activityCenterGoodsList); - //获取匹配的预算结果 - TbsBudgetCostResult budgetCostResult = budgetApplicationService.buildBudgetCostResult( - costApply.getId(), - Arrays.asList(activity), - Arrays.asList(activitySubject), - activityCenterGoodsList, - Arrays.asList(activityCenter),true,false,false); - - //不匹配的商品,保存到无预算表 - List unMatchBudgetItem = budgetCostResult.getBudgetUnMatchList(); - List costUnItemList = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(unMatchBudgetItem)){ - for (TbsBudgetCostItem budgetCostItem : unMatchBudgetItem) { - TbsCostUnItem costUnItem = budgetCostItem.toTbsCostUnItem(activity); - costUnItemList.add(costUnItem); - } - } - costUnItemService.saveBatch(costUnItemList); + // 因为政策申请已扣除预算,这里旧不需要再进行保存 + // budgetLogService.saveBatch(budgetLogList); //TODO 修改预算日志,记录政策使用情况 - //匹配的商品,生成预算日志 - List matchBudgetItem = budgetCostResult.getBudgetMatchList(); - List 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(); diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 2bda9e3e..622c36e8 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -191,7 +191,7 @@ public class TzcPolicyController { if(tzcPolicy.getSyFormId()==null){ return R.ok(); } - String templateCode = TbsSeeYonConst.CostApplyConf.Code(); + String templateCode = TbsSeeYonConst.PolicyConf.Code(); R> syResult = seeYonService.commonListAffairs(policyId+"",null,templateCode); List ctpAffairs = syResult.getData(); if(ctpAffairs.size()>0){ @@ -227,8 +227,7 @@ public class TzcPolicyController { return R.error("当前账号未绑定致远用户信息"); } param.setMemberId(sysUser.getSyUserId()); - param.setTemplateId(TbsSeeYonConst.CostApplyConf.Id()); - param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code()); + param.setTemplateCode(TbsSeeYonConst.PolicyConf.Code()); R> syResult = seeYonService.pageMemberAffair(param); PageVo pageVo = syResult.getData(); List ctpAffairs = pageVo.getList(); @@ -274,7 +273,7 @@ public class TzcPolicyController { if(!tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_1_Checking)){ return R.error("费用申请处于未非审批状态!"); } - R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code()); + R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getSyFormId()); boolean isBackCommit = affairCommit.getState()==2; if(result.getStatus()==200){ // 判断是否含有下个节点 diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java index c3ee94a4..5a4d7068 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java @@ -119,7 +119,7 @@ public class TzcPolicyApplication { tzcPolicyService.updateById(updPolicy); tzcPolicy = tzcPolicyService.getById(policyId); //移除历史记录 - tzcPolicyItemService.removeByPolicyId(policyId); + //tzcPolicyItemService.removeByPolicyId(policyId); //保存无命中条件的预算 if(CollectionUtil.isNotEmpty(result.getBudgetUnMatchList())){ List costUnItems = result.getBudgetUnMatchList().stream() @@ -167,7 +167,7 @@ public class TzcPolicyApplication { budgetLogService.saveBatch(budgetLogList); } //创建流程后回调 - BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),policyId+""); + BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),formId); seeYonService.createCallbackStatus(callbackBo); } diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index ba056e31..d60df785 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -208,7 +208,6 @@ public class VtbVerificationController { param.setState(state); param.setPageNum(pageNum); param.setPageSize(pageSize); - param.setTemplateId(TbsSeeYonConst.CostCheckConf.Id()); param.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code()); R> syResult = seeYonService.pageMemberAffair(param); PageVo pageVo = syResult.getData(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index 9f3734a5..92ef52e0 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java @@ -92,7 +92,7 @@ public class VtbVerificationApplication { } boolean isBackCommit = affairCommit.getState()==2; - R result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code()); + R result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); if(result.getStatus()==200){ // 判断是否含有下个节点 String flag = result.getData(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 20a46f95..ae0759ee 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -334,7 +334,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl