From 6af8f470c2853570df3c60d11e923444dceed622 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Fri, 10 May 2024 16:17:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=95=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91=20as=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=B0=83=E6=95=B4=20=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsArrearsoutApplyService.java | 4 +- .../AsBusrepairBillReverseSettleService.java | 4 +- .../AsOldparthandleApplyService.java | 4 +- .../AsOldpartreturnApplyService.java | 4 +- .../as/feign/flowable/flow/FlowableFeign.java | 10 - .../as/feign/flowable/flow/ProcDefEnum.java | 111 +----- .../pms/apiadmin/pms/PmsPurchaseBillRest.java | 57 +++ .../pms/apiadmin/pms/PmsSupplierInfoRest.java | 4 +- .../pms/pmspurchasebill/PmsPurchaseBill.java | 5 + .../PmsPurchaseBillDetailsVo.java | 5 + .../pmspurchasebill/PmsPurchaseBillDto.java | 5 + .../PmsPurchaseBillMapper.java | 3 + .../pmspurchasebill/PmsPurchaseBillMapper.xml | 18 +- .../PmsPurchaseBillService.java | 331 +++++++++++++++++- .../flowable/PmsPurchaseBillCompleteDto.java | 37 ++ .../PmsPurchaseBillDelegateQuery.java | 26 ++ .../flowable/PmsPurchaseBillNodeQuery.java | 25 ++ .../flowable/PmsPurchaseBillNodeVo.java | 26 ++ .../flowable/PmsPurchaseBillTaskQuery.java | 48 +++ .../flowable/SubmitPmsPurchaseBillDto.java | 24 ++ .../PmsPurchaseBillInvoiceDetailsVo.java | 2 +- .../PmsPurchaseBillInvoiceDto.java | 2 +- .../PmsSupplierInfoService.java | 5 +- .../flowable/flow/BusinessVariables.java | 65 ++++ .../flowable/flow/FlowProcessMapQuery.java | 27 ++ .../feign/flowable/flow/FlowableFeign.java | 38 ++ .../pms/feign/flowable/flow/ProcDefEnum.java | 38 ++ .../flowable/flow/UpdateFlowFieldVo.java | 68 ++++ .../flowable/flow2/FlowDelegateQuery.java | 23 ++ .../pms/feign/flowable/flow2/FlowFeign.java | 36 ++ .../flowable/flowtask/FlowTaskFeign.java | 31 ++ .../feign/flowable/flowtask/FlowTaskVo.java | 53 +++ .../feign/flowable/flowtask/LatestTaskVo.java | 34 ++ .../yxt/pms/feign/message/MessageFeign.java | 26 ++ .../yxt/pms/feign/message/MessageFlowVo.java | 21 ++ .../feign/message/MessageFlowableQuery.java | 32 ++ .../pms/feign/message/PushMessageQuery.java | 34 ++ .../sysorganization/SysOrganization.java | 92 +++++ .../sysorganization/SysOrganizationFeign.java | 6 + 39 files changed, 1245 insertions(+), 139 deletions(-) create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillCompleteDto.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillDelegateQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillTaskQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/SubmitPmsPurchaseBillDto.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/BusinessVariables.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowProcessMapQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowableFeign.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/UpdateFlowFieldVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowDelegateQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowFeign.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskFeign.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/LatestTaskVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFeign.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowableQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/PushMessageQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganization.java diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asarrearsoutapply/AsArrearsoutApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asarrearsoutapply/AsArrearsoutApplyService.java index c1d6159c83..c6cd24e506 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asarrearsoutapply/AsArrearsoutApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asarrearsoutapply/AsArrearsoutApplyService.java @@ -222,7 +222,7 @@ public class AsArrearsoutApplyService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); + ResultBean voResultBean = flowFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); //极光推送 @@ -299,7 +299,7 @@ public class AsArrearsoutApplyService extends MybatisBaseService resultBean = flowableFeign.handleProsess(bv); + ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java index f41778c58d..07c856a324 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java @@ -496,7 +496,7 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); + ResultBean voResultBean = flowFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); //极光推送 @@ -573,7 +573,7 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService resultBean = flowableFeign.handleProsess(bv); + ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldparthandleapply/AsOldparthandleApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldparthandleapply/AsOldparthandleApplyService.java index 1750155bb6..4e4bae5409 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldparthandleapply/AsOldparthandleApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldparthandleapply/AsOldparthandleApplyService.java @@ -288,7 +288,7 @@ public class AsOldparthandleApplyService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); + ResultBean voResultBean = flowFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); //极光推送 @@ -365,7 +365,7 @@ public class AsOldparthandleApplyService extends MybatisBaseService resultBean = flowableFeign.handleProsess(bv); + ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldpartreturnapply/AsOldpartreturnApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldpartreturnapply/AsOldpartreturnApplyService.java index 3406d159b9..bd75acfc3d 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldpartreturnapply/AsOldpartreturnApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asoldpartreturnapply/AsOldpartreturnApplyService.java @@ -304,7 +304,7 @@ public class AsOldpartreturnApplyService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); + ResultBean voResultBean = flowFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); //极光推送 @@ -381,7 +381,7 @@ public class AsOldpartreturnApplyService extends MybatisBaseService resultBean = flowableFeign.handleProsess(bv); + ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/FlowableFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/FlowableFeign.java index 564fac1aaa..c52294da5e 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/FlowableFeign.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/FlowableFeign.java @@ -16,21 +16,11 @@ import java.util.Map; path = "v1/flow") public interface FlowableFeign { - @ApiOperation(value = "启动流程") - @PostMapping(value = "/startProcess") - @ResponseBody - ResultBean startProcess(@RequestBody BusinessVariables dto); - @ApiOperation(value = "获取map") @PostMapping(value = "/getMap") @ResponseBody ResultBean> getMap(@RequestBody FlowProcessMapQuery query); - @ApiOperation(value = "处理流程") - @PostMapping(value = "/handleProsess") - @ResponseBody - ResultBean handleProsess(@RequestBody BusinessVariables bv); - @ApiOperation(value = "驳回流程") @PostMapping(value = "/taskReject") @ResponseBody diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java index e8b9a41dbd..0ddd97eaf5 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java @@ -7,120 +7,11 @@ public enum ProcDefEnum { /***************************正式流程id***********************************/ - - DEFAUL_TADMIN_SID("默认的管理员sid", "427a2fb0-60c5-409f-bea4-4eb441041ae6"), - - ORDERDEPOSITAPPROVE("简易订单-订金收取", "process_60lvxwuh:1:960004"), - ORDERDEPOSITVEHICLEAPPROVE("简易订单-车辆预定", "process_pkyns85b:5:575008"), - ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"), - SALESPOLICY("销售政策审批流程", "process_biw9gfh7:3:917504"), - FINBILLAPPLICATION("开票申请流程", "process_hxys3ap3:7:8387504"), - QKFINBILLAPPLICATION("欠款开票申请流程", "process_q4evu61h:5:8387508"), - QKLPFINBILLAPPLICATION("欠款领票申请流程", "process_x9r8epty:7:7265008"), - ARREARSCARRYVEHICLE("欠款提车审批流程", "process_f2dkbvny:5:4975004"), - VEHICLEAPPLY("排产申请流程", "process_9egcg169:14:3120004"), - SCMCARTRANSFER("库存地点变更申请", "process_3bc4p2em:9:1865007"), - // BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:8:725012"), - BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:9:4087504"), - FINCOSTAPPLY("费用申请", "process_u0pahv0s:6:725016"), - FINPAYAPPLY("付款申请", "process_gin2tntb:4:725020"), - RECORDAPPLICATION("入库申请", "process_xbwq2c7p:5:1742504"), - SCMVEHICLERETURN("采购退库", "process_md8aeoap:2:722508"), - SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064"), - SALESORDER("销售订单审批流程", "process_p5ils2rn:10:1250008"), - BASEOUTSOURCINGAPPLICATION("外采申请", "process_5tqysnjc:7:3100008"), - // BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:8:1865012"), - BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:10:4035008"), - BASEINTERNALPURCHASE("调车申请", "process_i6luw5xq:3:722516"), - BASEACCADJAPPLY("调账申请", "process_r6pyzqoz:4:1362508"), - // BUSDELIVEREDAPPLY("出库申请", "process_wgt1n66l:10:1700004"), - BUSDELIVEREDAPPLY("出库申请", "process_30ixry76:2:5357504"), - QKBUSDELIVEREDAPPLY("欠款出库申请", "process_161otrwo:3:7192504"), - BASESHUNINVOICAPPLY("调车开票申请", "process_u4xrvaso:1:400008"), - BASEVEHINSTALLMODPRICE("上装调价申请", "process_s0a0svth:1:492508"), - SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:1:535004"), - SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:1:560004"), - SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:1:590004"), - SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:1:590008"), - SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请", "process_h3w1aval:1:615004"), - SCMCOLLECTIONREBATEWITHAPPLY("回款返利预提申请", "process_k4lodiyg:1:630004"), - SCMCOLLECTIONREBATECHECKAPPLY("回款返利核对申请", "process_fgrv1mbv:1:630008"), - CONTRACTAPPLY("合同审核", "process_gd8c9xd5:2:932504"), - BASEDISPACKAGEAPPLY("优惠包申请流程", "process_ncifet6k:4:1747504"), - BUSSALESORDERRETURNVEHAPPLY("销售订单退车申请", "process_tzjjs03y:1:1012504"), - BASETRAILEROUTAPPLY("挂车出库申请", "process_tkw6vhfw:1:1705004"), - FINFUNDSAPPLY("款项结转申请", "process_ypafrrvg:1:2257504"), - BUSHANDOVER("交车确认", "process_e8feloik:6:2675004"), - LOANFINPOLICYRECORDAPPLY("金融产品政策备案", "process_u45lo7qc:1:2272516"), - LOANOTHERPOLICYRECORDAPPLY("其它融产品备案", "process_7pptyzfc:1:2272524"), - LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:2:5212504"), - DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:9:6652504"), - LOANTEMPLATEAPPLY("定制金融方案", "process_9q5omebi:2:2685008"), - LOANDIFFAPPLY("放款差额确认", "process_f70x5q33:1:6845004"), - LOANHOMEVISITAPPEALAPPLY("家访考察申诉", "process_8ujil3h3:1:3665004"), - BUSVALCUSTFILING("价值客户备案申请", "process_n8fwpitk:2:5085004"), - LOANCUSTOMERRECORD("欠款客户备案", "process_x6o0chx9:4:6055004"), - BUSSOLUTIONSCHANGE("金融方案变更", "process_x6edjfoj:2:6055008"), - LOANBUCKLEAPPLLY("划扣申请", "process_50xtaucg:1:6757504"), - COLLECTIONPAYMENT("代收代付申请", "process_6upfyv8i:1:6972504"), - BEPADSINCEREAPPLY("逾期垫款申请", "process_h1mcb548:1:6712504"), - BECOLLECTIONAPPLY("催收措施申请", "process_7xz17xva:1:7417504"), - MONTHLYACCRUAL("当月应收计提申请", "process_7zpo52qj:1:7367504"), - LOANOVERDUEFIN("逾期对账申请(财务)", "process_b0i03acl:1:7672504"), - LOANOVERDUEBANK("逾期对账申请(资方)", "process_wwb7q95x:1:7672508"), - LOANVEHCLEARANCEAPPLY("车辆远程解控申请", "process_zbzenr9b:2:7782504"), - LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"), - LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"), - LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"), - LOANSUBLETAPPLY("交回车辆二次转租申请", "process_lu7pdwzs:1:7940004"), - LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", "process_14spbdx8:1:7982504"), - LOANSECONDSALEAPPLY("交车车辆二次销售申请", "process_6kb1z0pe:4:8110004"), - LOANSETTLEAPPLY("结清申请", "process_ob34xgz2:1:8222504"), - LOANREPURCHASEAPPLY("回购申请", "process_1ozjarxl:1:8207504"), - LOANCASEAPPEALAPPLY("案件上诉申请", "process_0r2ruoxm:1:8215004"), - LOANCASEEXECUTEAPPLY("案件执行立案申请", "process_aeho48ap:1:8220004"), - LOANCASECLOSEAPPLY("案件结案申请", "process_llaxpwkd:1:8220008"), - LOANLAWSUITAPPLY("诉讼申请", "process_xc4lp97d:1:8380004"), - LOANCASEENTRUSTLAWYERAPPLY("案件委托律师", "process_oe3nvzgn:1:8525004"), ASARREARSOUTAPPLY("欠款出厂申请", "process_u14c671d:1:10442504"), ASOLDPARTRETURNAPPLY("旧件返厂申请", "process_6de5c2r8:1:10640004"), ASOLDPARTHANDLEAPPLY("旧件处理申请", "process_sshks74p:1:10887504"), REVERSESETTLEAPPLY("工单反结算申请", "process_g3r02po8:1:10975004"), - - /******************************测试流程id*********************************************/ - - /*ORDERDEPOSITAPPROVE("简易订单-订金收取", "process_rlj1kzfi:1:952504"), - ORDERDEPOSITVEHICLEAPPROVE("简易订单-车辆预定", "process_pkyns85b:5:575008"), - ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"), - SALESPOLICY("销售政策审批流程", "process_biw9gfh7:3:917504"), - FINBILLAPPLICATION("开票申请流程", "process_hxys3ap3:1:1180004"), - BUSCENTERADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"), - ARREARSCARRYVEHICLE("欠款提车审批流程", "process_8ax1xxn3:1:795004"), - VEHICLEAPPLY("排产申请流程", "process_9egcg169:12:735004"), - SCMCARTRANSFER("库存地点变更申请", "process_3bc4p2em:8:725008"), - BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:8:725012"), - FINCOSTAPPLY("费用申请", "process_u0pahv0s:6:725016"), - FINPAYAPPLY("付款申请", "process_gin2tntb:4:725020"), - RECORDAPPLICATION("入库申请", "process_xbwq2c7p:3:675024"), - SCMVEHICLERETURN("采购退库", "process_md8aeoap:2:722508"), - SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064"), - SALESORDER("销售订单审批流程", "process_p5ils2rn:8:1070004"), - BASEOUTSOURCINGAPPLICATION("外采申请", "process_5tqysnjc:5:722504"), - BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:7:722512"), - BASEINTERNALPURCHASE("调车申请", "process_i6luw5xq:3:722516"), - BASEACCADJAPPLY("调账申请", "process_r6pyzqoz:2:722520"), - BUSDELIVEREDAPPLY("出库申请", "process_wgt1n66l:3:770004"), - BASESHUNINVOICAPPLY("调车开票申请", "process_u4xrvaso:1:400008"), - BASEVEHINSTALLMODPRICE("上装调价申请", "process_s0a0svth:1:492508"), - SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:1:535004"), - SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:1:560004"), - SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:1:590004"), - SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:1:590008"), - SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请", "process_h3w1aval:1:615004"), - SCMCOLLECTIONREBATEWITHAPPLY("回款返利预提申请", "process_k4lodiyg:1:630004"), - SCMCOLLECTIONREBATECHECKAPPLY("回款返利核对申请", "process_fgrv1mbv:1:630008"), - CONTRACTAPPLY("合同审核", "process_gd8c9xd5:2:932504"), - BASEDISPACKAGEAPPLY("优惠包申请流程", "process_l8i6tqho:1:967504"),*/; + ; ProcDefEnum(String proDefName, String proDefId) { diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java index 78781a3dd8..8e6b2ee4df 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java @@ -25,17 +25,23 @@ *********************************************************/ package com.yxt.pms.apiadmin.pms; +import cn.hutool.core.bean.BeanUtil; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.pms.biz.pms.pmspurchasebill.*; +import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*; +import com.yxt.pms.feign.flowable.flow.BusinessVariables; +import com.yxt.pms.feign.flowable.flow.ProcDefEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; @@ -94,4 +100,55 @@ public class PmsPurchaseBillRest { PmsPurchaseBillDetailsVo vo = pmsPurchaseBillService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @ApiOperation("提交审批流程") + @PostMapping("/submit") + public ResultBean submit(@RequestBody @Valid SubmitPmsPurchaseBillDto dto) { + return pmsPurchaseBillService.submit(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody PmsPurchaseBillCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBILL.getProDefId()); + return pmsPurchaseBillService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap PmsPurchaseBillNodeQuery query) { + return pmsPurchaseBillService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap PmsPurchaseBillNodeQuery query) { + return pmsPurchaseBillService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody PmsPurchaseBillTaskQuery query) { + return pmsPurchaseBillService.reject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody PmsPurchaseBillTaskQuery query) { + return pmsPurchaseBillService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody PmsPurchaseBillTaskQuery query) { + return pmsPurchaseBillService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody PmsPurchaseBillDelegateQuery query) { + return pmsPurchaseBillService.delegate(query); + } } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsSupplierInfoRest.java b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsSupplierInfoRest.java index fac5fbc986..2786908d37 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsSupplierInfoRest.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsSupplierInfoRest.java @@ -89,9 +89,9 @@ public class PmsSupplierInfoRest { @ApiOperation("选择供应商") @PostMapping("/choiceSupplierInfo") - public ResultBean> choiceSupplierInfo(@RequestParam("orgPath") String orgPath){ + public ResultBean> choiceSupplierInfo(@RequestParam("orgSid") String orgSid){ ResultBean rb = ResultBean.fireFail(); - List baseSupplierInfoChoiceList = pmsSupplierInfoService.choiceSupplierInfo(orgPath); + List baseSupplierInfoChoiceList = pmsSupplierInfoService.choiceSupplierInfo(orgSid); return rb.success().setData(baseSupplierInfoChoiceList); } } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBill.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBill.java index 2a16e69552..1befdf5239 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBill.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBill.java @@ -101,6 +101,11 @@ public class PmsPurchaseBill extends BaseEntity { @ApiModelProperty("应付金额(=采购金额+运费-优惠金额)") private BigDecimal payableAmount; + @ApiModelProperty("当前预付款项金额") + private BigDecimal prepaymentAmount; + @ApiModelProperty("累计欠款金额") + private BigDecimal owedAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java index 5273068ac8..f19ffddef5 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDetailsVo.java @@ -121,6 +121,11 @@ public class PmsPurchaseBillDetailsVo implements Vo { @ApiModelProperty("应付金额(=采购金额+运费-优惠金额)") private BigDecimal payableAmount; + @ApiModelProperty("当前预付款项金额") + private BigDecimal prepaymentAmount; + @ApiModelProperty("累计欠款金额") + private BigDecimal owedAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java index 1ed10a4295..3bd23f9b65 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillDto.java @@ -111,6 +111,11 @@ public class PmsPurchaseBillDto implements Dto { @ApiModelProperty("应付金额(=采购金额+运费-优惠金额)") private BigDecimal payableAmount; + @ApiModelProperty("当前预付款项金额") + private BigDecimal prepaymentAmount; + @ApiModelProperty("累计欠款金额") + private BigDecimal owedAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java index e516e18cb1..3db68a919f 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java @@ -36,6 +36,7 @@ import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; +import java.util.Map; /** * Project: yxt-pms(采购)
@@ -56,4 +57,6 @@ public interface PmsPurchaseBillMapper extends BaseMapper { IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); String selectNum(String billNo); + + int updateFlowFiled(Map map); } \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml index 5b521ea682..726cc4792c 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml @@ -7,6 +7,7 @@ SELECT ppb.`sid`, ppb.`nodeState`, + ppb.billNo, ppb.`createOrgName`, ppb.`deptName`, ppb.`createTime`, @@ -16,7 +17,7 @@ ppb.`payTypeValue`, ppb.`supplierName`, IF(ppbi.`isInvoicing` = 1, '是','否') AS isInvoicing, - COUNT(ppbd.`amount`) AS amount, + SUM(ppbd.`amount`) AS amountCount, ppb.`payableAmount` FROM pms_purchase_bill ppb @@ -34,4 +35,19 @@ order by billNo desc limit 1 + + + UPDATE pms_purchase_bill + SET nodeState=#{nodeState}, nodeId=#{taskDefKey}, finishTime = NOW() + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid=#{sid} + \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java index ca31a3a204..1ab179153b 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java @@ -27,9 +27,11 @@ package com.yxt.pms.biz.pms.pmspurchasebill; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.common.core.result.ResultBean; +import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDetailsVo; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDto; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailService; @@ -43,8 +45,19 @@ import com.yxt.pms.biz.pms.pmspurchasepay.PmsPurchasePayDetailsVo; import com.yxt.pms.biz.pms.pmspurchasepay.PmsPurchasePayDto; import com.yxt.pms.biz.pms.pmspurchasepay.PmsPurchasePayService; import com.yxt.pms.feign.base.Rule; +import com.yxt.pms.feign.flowable.flow.*; +import com.yxt.pms.feign.flowable.flow2.FlowDelegateQuery; +import com.yxt.pms.feign.flowable.flow2.FlowFeign; +import com.yxt.pms.feign.flowable.flowtask.FlowTaskFeign; +import com.yxt.pms.feign.flowable.flowtask.FlowTaskVo; +import com.yxt.pms.feign.flowable.flowtask.LatestTaskVo; +import com.yxt.pms.feign.message.MessageFeign; +import com.yxt.pms.feign.message.MessageFlowVo; +import com.yxt.pms.feign.message.MessageFlowableQuery; +import com.yxt.pms.feign.portal.sysorganization.SysOrganization; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.pms.feign.portal.sysstafforg.SysStaffOrgFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -54,9 +67,8 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * Project: yxt-pms(采购)
@@ -82,6 +94,16 @@ public class PmsPurchaseBillService extends MybatisBaseService listPageVo(PagerQuery pq) { PmsPurchaseBillQuery query = pq.getParams(); @@ -134,6 +156,14 @@ public class PmsPurchaseBillService extends MybatisBaseService pmsPurchaseBillDetailList = dto.getPmsPurchaseBillDetailList(); + String deptSid = dto.getDeptSid(); + SysOrganization sysOrganization = sysOrganizationFeign.selectBySid(deptSid).getData(); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(sysOrganization.getOrgSidPath()).getData(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dto.setUseOrgSid(useOrgSid); + dto.setUseOrgName(organizationVo.getName()); + dto.setCreateOrgSid(useOrgSid); + dto.setCreateOrgName(organizationVo.getName()); if (StringUtils.isBlank(dtoSid)) { //生成单据编号 String billNo = ""; @@ -176,6 +206,7 @@ public class PmsPurchaseBillService extends MybatisBaseService variables = new HashMap<>(); + //用户的部门全路径sid + SysOrganization sysOrganization = sysOrganizationFeign.selectBySid(pmsPurchaseBill.getDeptSid()).getData(); + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(pmsPurchaseBill.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.PMSPURCHASEBILL.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + pmsPurchaseBill = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + messageFlowableQuery.setMsgContent(pmsPurchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(pmsPurchaseBill.getTaskId()); + bv.setTaskDefKey(pmsPurchaseBill.getNodeId()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private synchronized int submitBusinessData(SubmitPmsPurchaseBillDto dto, PmsPurchaseBill pmsPurchaseBill) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (pmsPurchaseBill != null) { + String businessTaskId = pmsPurchaseBill.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + + } + return r; + } + + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + PmsPurchaseBill pmsPurchaseBill = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(pmsPurchaseBill.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(pmsPurchaseBill.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + SysOrganization sysOrganization = sysOrganizationFeign.selectBySid(pmsPurchaseBill.getDeptSid()).getData(); + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + if (bv.getTaskId().equals(pmsPurchaseBill.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + + } else { + //极光推送 + pmsPurchaseBill = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(pmsPurchaseBill.getProcDefId()); + ufVo.setProcInsId(pmsPurchaseBill.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + messageFlowableQuery.setMsgContent(pmsPurchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(PmsPurchaseBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBILL.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), PmsPurchaseBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(PmsPurchaseBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBILL.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), PmsPurchaseBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(PmsPurchaseBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + PmsPurchaseBill pmsPurchaseBill = fetchBySid(businessSid); + if (pmsPurchaseBill == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = pmsPurchaseBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + pmsPurchaseBill = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = pmsPurchaseBill.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(pmsPurchaseBill.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购单申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(pmsPurchaseBill.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(pmsPurchaseBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("采购单申请"); + messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(PmsPurchaseBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + PmsPurchaseBill pmsPurchaseBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = pmsPurchaseBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(PmsPurchaseBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + PmsPurchaseBill pmsPurchaseBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = pmsPurchaseBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(pmsPurchaseBill.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean delegate(PmsPurchaseBillDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillCompleteDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillCompleteDto.java new file mode 100644 index 0000000000..f7abff6a91 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillCompleteDto.java @@ -0,0 +1,37 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 14:57 + * @Description + */ +@Data +public class PmsPurchaseBillCompleteDto implements Dto { + private static final long serialVersionUID = 6378752532534735663L; + + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id(PC)") + private String instanceId; + @ApiModelProperty(value = "流程id(移动)") + private String procInsId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + + private String orgPath; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillDelegateQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillDelegateQuery.java new file mode 100644 index 0000000000..eb3c71b84d --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class PmsPurchaseBillDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; + + +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeQuery.java new file mode 100644 index 0000000000..539a94ec3f --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:04 + * @Description + */ +@Data +public class PmsPurchaseBillNodeQuery implements Query { + private static final long serialVersionUID = 9117613683840483366L; + + @ApiModelProperty(value = "环节定义id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + private Integer next; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeVo.java new file mode 100644 index 0000000000..3bc4b01ff8 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillNodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:03 + * @Description + */ +@Data +public class PmsPurchaseBillNodeVo implements Vo { + private static final long serialVersionUID = -833419512294877848L; + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillTaskQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillTaskQuery.java new file mode 100644 index 0000000000..071c81e298 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/PmsPurchaseBillTaskQuery.java @@ -0,0 +1,48 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:06 + * @Description + */ +@Data +public class PmsPurchaseBillTaskQuery implements Query { + private static final long serialVersionUID = 1288615499873178778L; + + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id(PC)") + private String instanceId; + + @ApiModelProperty("流程实例Id(移动)") + private String procInsId; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/SubmitPmsPurchaseBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/SubmitPmsPurchaseBillDto.java new file mode 100644 index 0000000000..032ede91e6 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/flowable/SubmitPmsPurchaseBillDto.java @@ -0,0 +1,24 @@ +package com.yxt.pms.biz.pms.pmspurchasebill.flowable; + +import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBillDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/13 + */ +@ApiModel("提交") +@Data +public class SubmitPmsPurchaseBillDto extends PmsPurchaseBillDto { + + @ApiModelProperty("意见") + private String comment; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDetailsVo.java index 4714f83f56..cab9888410 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDetailsVo.java @@ -60,7 +60,7 @@ public class PmsPurchaseBillInvoiceDetailsVo implements Vo { @ApiModelProperty("单据sid") private String billSid; // 单据sid @ApiModelProperty("是否需要开发票(是1,否0)") - private Integer isInvoicing; // 是否需要开发票(是1,否0) + private String isInvoicing; // 是否需要开发票(是1,否0) @ApiModelProperty("票据类型key") private String billTypeKey; // 票据类型key @ApiModelProperty("票据类型(不含税、增值税、普通税、已含增值税)") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDto.java index 9317ba14cd..24846bcff7 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebillinvoice/PmsPurchaseBillInvoiceDto.java @@ -60,7 +60,7 @@ public class PmsPurchaseBillInvoiceDto implements Dto { @ApiModelProperty("单据sid") private String billSid; // 单据sid @ApiModelProperty("是否需要开发票(是1,否0)") - private Integer isInvoicing; // 是否需要开发票(是1,否0) + private String isInvoicing; // 是否需要开发票(是1,否0) @ApiModelProperty("票据类型key") private String billTypeKey; // 票据类型key @ApiModelProperty("票据类型(不含税、增值税、普通税、已含增值税)") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmssupplierinfo/PmsSupplierInfoService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmssupplierinfo/PmsSupplierInfoService.java index f80cc47c06..0481f945fd 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmssupplierinfo/PmsSupplierInfoService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmssupplierinfo/PmsSupplierInfoService.java @@ -142,9 +142,8 @@ public class PmsSupplierInfoService extends MybatisBaseService choiceSupplierInfo(String orgPath) { - String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); - List pmsSupplierInfoChoiceList = baseMapper.choiceSupplierInfo(createOrgSid); + public List choiceSupplierInfo(String orgSid) { + List pmsSupplierInfoChoiceList = baseMapper.choiceSupplierInfo(orgSid); for (PmsSupplierInfoChoice pmsSupplierInfoChoice : pmsSupplierInfoChoiceList) { List pmsSupplierBankChoices = new ArrayList<>(); List pmsSupplierBankDetailsVos = pmsSupplierBankService.selectBySupplierSid(pmsSupplierInfoChoice.getSid()); diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/BusinessVariables.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/BusinessVariables.java new file mode 100644 index 0000000000..6f24120868 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/BusinessVariables.java @@ -0,0 +1,65 @@ +package com.yxt.pms.feign.flowable.flow; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.HashMap; +import java.util.Map; + +/** + * 业务系统调用flowable流程传递参数的格式 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class BusinessVariables { + /** + * 分公司sid + */ + public static final String ORGPATH="orgPath"; + /** + * 流程定义的id + */ + private String modelId; + /** + * 审批意见 + */ + private String comment; + /** + * 流程实例的id + */ + private String instanceId; + /** + * taskId + */ + private String taskId; + /** + * 当前用户的id + */ + private String userSid; + /** + * 当前用户部门的全路径 + */ + private String orgSidPath; + /** + * 业务sid + */ + private String businessSid; + /** + * 环节定义的ID + */ + private String taskDefKey; + /** + * nextNodeUserSids 下一环节的用户sid + */ + private String nextNodeUserSids; + /** + * 业务参数,按需传递 + */ + private Map formVariables =new HashMap<>(); + /* @ApiModelProperty("机构sid:切换结构使用") + private String orgPath;*/ +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowProcessMapQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowProcessMapQuery.java new file mode 100644 index 0000000000..c37e6abc2d --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowProcessMapQuery.java @@ -0,0 +1,27 @@ +package com.yxt.pms.feign.flowable.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @description: 流程获取map + * @author: dimengzhe + * @date: 2023/5/26 + **/ +@Data +public class FlowProcessMapQuery { + + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("变量") + private Map variables; + @ApiModelProperty("流程id") + private String proDefKey; + + @ApiModelProperty("是否领票(欠款开票使用)") + private String isLP; + @ApiModelProperty("贷款人姓名") + private String dkrName; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowableFeign.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowableFeign.java new file mode 100644 index 0000000000..d903d84026 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/FlowableFeign.java @@ -0,0 +1,38 @@ +package com.yxt.pms.feign.flowable.flow; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.pms.feign.flowable.flowtask.FlowTaskVo; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; + +@FeignClient( + contextId = "anrui-flowable-Flowable", + name = "anrui-flowable", + path = "v1/flow") +public interface FlowableFeign { + + @ApiOperation(value = "获取map") + @PostMapping(value = "/getMap") + @ResponseBody + ResultBean> getMap(@RequestBody FlowProcessMapQuery query); + + @ApiOperation(value = "驳回流程") + @PostMapping(value = "/taskReject") + @ResponseBody + ResultBean taskReject(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + @ResponseBody + ResultBean revokeProcess(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "终止流程") + @PostMapping(value = "/breakProcess") + @ResponseBody + ResultBean breakProcess(@RequestBody FlowTaskVo fl); +} \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java new file mode 100644 index 0000000000..8807475733 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java @@ -0,0 +1,38 @@ +package com.yxt.pms.feign.flowable.flow; + +/** + * 流程定义:流程名称与代号枚举类 + */ +public enum ProcDefEnum { + + + /***************************正式流程id***********************************/ + PMSPURCHASEBILL("采购单申请", "process_cx2htjth:1:11280004"), + ; + + + ProcDefEnum(String proDefName, String proDefId) { + this.proDefName = proDefName; + this.proDefId = proDefId; + + } + + /** + * 流程类型名称 + */ + private final String proDefName; + + /** + * 流程代号 + */ + private final String proDefId; + + public String getProDefName() { + return proDefName; + } + + public String getProDefId() { + return proDefId; + } +} + diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/UpdateFlowFieldVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/UpdateFlowFieldVo.java new file mode 100644 index 0000000000..6ad6246a73 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/UpdateFlowFieldVo.java @@ -0,0 +1,68 @@ +package com.yxt.pms.feign.flowable.flow; + +public class UpdateFlowFieldVo { + + private String sid; + private String procDefId; + private String nodeState; + private String procInsId; + private String taskDefKey; + private String taskId; + private String nextNodeUserSids; + + public String getNextNodeUserSids() { + return nextNodeUserSids; + } + + public void setNextNodeUserSids(String nextNodeUserSids) { + this.nextNodeUserSids = nextNodeUserSids; + } + + public String getSid() { + return sid; + } + + public void setSid(String sid) { + this.sid = sid; + } + + public String getProcDefId() { + return procDefId; + } + + public void setProcDefId(String procDefId) { + this.procDefId = procDefId; + } + + public String getNodeState() { + return nodeState; + } + + public void setNodeState(String nodeState) { + this.nodeState = nodeState; + } + + public String getProcInsId() { + return procInsId; + } + + public void setProcInsId(String procInsId) { + this.procInsId = procInsId; + } + + public String getTaskDefKey() { + return taskDefKey; + } + + public void setTaskDefKey(String taskDefKey) { + this.taskDefKey = taskDefKey; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowDelegateQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowDelegateQuery.java new file mode 100644 index 0000000000..77553ed5c0 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowDelegateQuery.java @@ -0,0 +1,23 @@ +package com.yxt.pms.feign.flowable.flow2; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/10/8 15:58 + */ +@Data +public class FlowDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowFeign.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowFeign.java new file mode 100644 index 0000000000..83fe610070 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow2/FlowFeign.java @@ -0,0 +1,36 @@ +package com.yxt.pms.feign.flowable.flow2; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.pms.feign.flowable.flow.BusinessVariables; +import com.yxt.pms.feign.flowable.flow.UpdateFlowFieldVo; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +@FeignClient( + contextId = "anrui-flowable-Flow", + name = "anrui-flowable", + path = "v2/flow") +public interface FlowFeign { + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody FlowDelegateQuery flowDelegateQuery); + + @ApiOperation(value = "启动流程") + @PostMapping(value = "/startProcess") + @ResponseBody + ResultBean startProcess(@RequestBody BusinessVariables dto); + + @ApiOperation(value = "处理流程") + @PostMapping(value = "/handleProsess") + @ResponseBody + ResultBean handleProsess(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "转办") + @PostMapping(value = "/assignTask") + public ResultBean assignTask(@RequestBody FlowDelegateQuery flowDelegateQuery); + +} \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskFeign.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskFeign.java new file mode 100644 index 0000000000..7f4ecf2110 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskFeign.java @@ -0,0 +1,31 @@ +package com.yxt.pms.feign.flowable.flowtask; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.pms.feign.flowable.flow.BusinessVariables; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient( + contextId = "anrui-flowable-FlowTask", + name = "anrui-flowable", + path = "v1/flowable/task") +public interface FlowTaskFeign { + + @ApiOperation(value = "获取下一个环节") + @PostMapping(value = "/getNextNodesForSubmit") + ResultBean getNextNodesForSubmit(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "根据流程实例的id获取最新待办环节") + @PostMapping(value = "/获取上一个环节") + ResultBean getPreviousNodesForReject(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "根据流程实例的id获取最新待办环节") + @PostMapping(value = "/getLatestTasks/{procId}") + ResultBean> getLatestTasks(@PathVariable(value = "procId") String procId); + +} \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskVo.java new file mode 100644 index 0000000000..969133b9ee --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/FlowTaskVo.java @@ -0,0 +1,53 @@ +package com.yxt.pms.feign.flowable.flowtask; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

流程任务

+ * + * @author XuanXuan + * @date 2021-04-03 + */ +@ApiModel("工作流任务相关--请求参数") +@Data +public class FlowTaskVo { + + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("用户Sid") + private String userSid; + + @ApiModelProperty("任务意见") + private String comment; + + @ApiModelProperty("流程实例Id") + private String instanceId; + + @ApiModelProperty("节点") + private String targetKey; + + @ApiModelProperty("流程变量信息") + private Map values=new HashMap<>(); + + @ApiModelProperty("审批人") + private String assignee; + + @ApiModelProperty("候选人") + private List candidateUsers; + + @ApiModelProperty("审批组") + private List candidateGroups; + + + +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/LatestTaskVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/LatestTaskVo.java new file mode 100644 index 0000000000..ae1af99660 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flowtask/LatestTaskVo.java @@ -0,0 +1,34 @@ +package com.yxt.pms.feign.flowable.flowtask; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description + * @Author liuguohui + * @Date 2022/1/11 + */ +@ApiModel("最近环节") +@Data +public class LatestTaskVo implements Vo { + + @ApiModelProperty(value = "name_") + private String name_; + + @ApiModelProperty(value = "task_def_key_") + private String task_def_key_; + + @ApiModelProperty(value = "id_") + private String id_; + + @ApiModelProperty(value = "name_") + private String ASSIGNEE_; + + @ApiModelProperty(value = "orgPath") + private String orgPath; + + @ApiModelProperty(value = "incomingSourceRef") + private String incomingSourceRef; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFeign.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFeign.java new file mode 100644 index 0000000000..4a06d49aba --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFeign.java @@ -0,0 +1,26 @@ +package com.yxt.pms.feign.message; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Api(tags = "消息体") +@FeignClient( + contextId = "message-center-Message", + name = "message-center", + path = "v1/message") +public interface MessageFeign { + + /** + * 流程审批推送消息 + * + * @param query + * @return + */ + @ApiOperation("流程审批推送消息") + @PostMapping("/pushMessage") + ResultBean pushMessage(@RequestBody MessageFlowableQuery query); +} \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowVo.java new file mode 100644 index 0000000000..cecf7db684 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowVo.java @@ -0,0 +1,21 @@ +package com.yxt.pms.feign.message; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/8/25 15:58 + * @Description + */ +@Data +public class MessageFlowVo implements Vo { + + private String sid; + private String procDefId; + private String nodeState; + private String procInsId; + private String taskDefKey; + private String taskId; + private String nextNodeUserSids; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowableQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowableQuery.java new file mode 100644 index 0000000000..15dd62f1c1 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/MessageFlowableQuery.java @@ -0,0 +1,32 @@ +package com.yxt.pms.feign.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/8/25 15:12 + * @Description + */ +@Data +public class MessageFlowableQuery implements Query { + private static final long serialVersionUID = 3618558867479892211L; + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("模块名称") + private String moduleName; + @ApiModelProperty("消息内容") + private String msgContent; + @ApiModelProperty("消息标题") + private String msgTitle; + @ApiModelProperty("流程相关参数") + private MessageFlowVo ufVo; + @ApiModelProperty("app所需参数") + private Map appMap; + @ApiModelProperty("申请人") + private String applicationName; + +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/PushMessageQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/PushMessageQuery.java new file mode 100644 index 0000000000..90e49c880f --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/message/PushMessageQuery.java @@ -0,0 +1,34 @@ +package com.yxt.pms.feign.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/10 + **/ +@Data +public class PushMessageQuery implements Query { + private static final long serialVersionUID = -5710109873182775336L; + + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("模块名称") + private String moduleName; + @ApiModelProperty("消息内容") + private String msgContent; + @ApiModelProperty("消息标题") + private String msgTitle; + @ApiModelProperty("接收人sidList") + private List receivedSids; + /* @ApiModelProperty("跳转地址") + private String msgTargetUri;*/ + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + private String app_type; + @ApiModelProperty("插件sid") + private String moduleSid; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganization.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganization.java new file mode 100644 index 0000000000..60c27e7c6e --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganization.java @@ -0,0 +1,92 @@ +package com.yxt.pms.feign.portal.sysorganization; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysOrganization.java
+ * Class: com.yxt.anrui.portal.api.sysorganization.SysOrganization
+ * Description: 组织机构表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:28
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "组织机构表", description = "组织机构表") +@TableName("sys_organization") +@Data +public class SysOrganization extends BaseEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("部门/组织名称") + private String name; + + @ApiModelProperty("父(部门/组织) sid") + private String psid; + + @ApiModelProperty("联系电话") + private String linkPhone; + @ApiModelProperty("联系人") + private String linkPerson; + + @ApiModelProperty("部门sid全路径") + private String orgSidPath; + + @ApiModelProperty("排序") + private Integer sort; + + @ApiModelProperty("地址") + private String addrs; + + @ApiModelProperty("地理位置经纬度") + private String jwd; + + @ApiModelProperty("二维码") + private String qrText; + + @ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己") + private Integer limitOrgMember; + + @ApiModelProperty("部门编码") + private String orgCode; + + @ApiModelProperty("部门简称(地区简称+门店名称首字母(遇到首字母重复时用2个字母))") + private String orgShortName; + + @ApiModelProperty("销售区域划分(本店终端销售:0,门店对应业务区域划分销售:1至9,具体编号划分各门店报备确定)") + private String regionDivision; + + @ApiModelProperty("是否是部门(0否,1是)") + private Integer isDept; + + @ApiModelProperty("组织简称") + private String orgAbbre; + + @ApiModelProperty("组织属性key") + private String orgAttributeKey; + + @ApiModelProperty("组织属性value") + private String orgAttributeValue; + + @ApiModelProperty("管理层级key") + private String orgLevelKey; + + @ApiModelProperty("管理层级value") + private String orgLevelValue; + + @ApiModelProperty("其他编码") + private String otherCode; + + @ApiModelProperty("主管人员sid") + private String managerSid; + @ApiModelProperty("主管人员姓名") + private String managerName; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganizationFeign.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganizationFeign.java index 85cf0d1690..9128bf30d0 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganizationFeign.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/portal/sysorganization/SysOrganizationFeign.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; /** @@ -32,4 +33,9 @@ public interface SysOrganizationFeign { @ResponseBody @GetMapping("/fetchBySid/{sid}") public ResultBean fetchBySid(@PathVariable("sid") String sid); + + @ApiOperation("根据部门sid查询组织信息") + @ResponseBody + @GetMapping("/selectBySid") + ResultBean selectBySid(@RequestParam("sid") String sid); } \ No newline at end of file