diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingDetails.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingDetails.vue
index c2afcd702d..478447a162 100644
--- a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingDetails.vue
+++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingDetails.vue
@@ -24,6 +24,13 @@
+
+
+
+ 至
+
+
+
至
@@ -168,7 +175,9 @@ export default {
createBySid: '',
orgPath: '',
menuUrl: '',
- kxState: ''
+ kxState: '',
+ noMoneyStart: '',
+ noMoneyEnd: ''
},
total: 0
}
@@ -243,7 +252,9 @@ export default {
createBySid: '',
orgPath: '',
menuUrl: '',
- kxState: ''
+ kxState: '',
+ noMoneyStart: '',
+ noMoneyEnd: ''
},
total: 0
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java
new file mode 100644
index 0000000000..2e1fd498ba
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java
@@ -0,0 +1,24 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class BusclaimInvoiceDelegateQuery {
+
+ @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-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeQuery.java
new file mode 100644
index 0000000000..8af357ecaa
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeQuery.java
@@ -0,0 +1,18 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class BusclaimInvoiceNodeQuery {
+
+ @ApiModelProperty(value = "环节定义id")
+ private String taskDefKey;
+ @ApiModelProperty(value = "业务sid")
+ private String businessSid;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeVo.java
new file mode 100644
index 0000000000..423665a934
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceNodeVo.java
@@ -0,0 +1,24 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class BusclaimInvoiceNodeVo {
+
+ @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-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceTaskQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceTaskQuery.java
new file mode 100644
index 0000000000..bdc2d0c781
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceTaskQuery.java
@@ -0,0 +1,43 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class BusclaimInvoiceTaskQuery {
+
+ /**
+ * 终止、驳回、撤回
+ */
+ @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")
+ private String instanceId;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/CompleteBusclaimInvoiceBillDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/CompleteBusclaimInvoiceBillDto.java
new file mode 100644
index 0000000000..e8e6620076
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/CompleteBusclaimInvoiceBillDto.java
@@ -0,0 +1,35 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class CompleteBusclaimInvoiceBillDto {
+
+ @ApiModelProperty(value = "用户sid")
+ @NotBlank(message = "参数错误:userSid")
+ private String userSid;
+ @ApiModelProperty(value = "用户全路径sid")
+ private String orgSidPath;
+ @ApiModelProperty(value = "节点id")
+ @NotBlank(message = "参数错误:taskDefKey")
+ private String taskDefKey;
+ @ApiModelProperty(value = "任务id")
+ @NotBlank(message = "参数错误:taskId")
+ private String taskId;
+ @ApiModelProperty(value = "流程id")
+ @NotBlank(message = "参数错误:instanceId")
+ private String instanceId;
+ @ApiModelProperty(value = "意见")
+ private String comment;
+ @ApiModelProperty(value = "业务sid")
+ @NotBlank(message = "参数错误:businessSid")
+ private String businessSid;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/SubmitBusclaimInvoiceBillDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/SubmitBusclaimInvoiceBillDto.java
new file mode 100644
index 0000000000..650318187c
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/SubmitBusclaimInvoiceBillDto.java
@@ -0,0 +1,19 @@
+package com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable;
+
+import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/10
+ **/
+@Data
+public class SubmitBusclaimInvoiceBillDto extends AsBusclaimInvoiceBillDto {
+
+ @ApiModelProperty("流程实例id")
+ private String instanceId;
+ @ApiModelProperty("任务id")
+ private String taskId;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.java
index 9d17b6ba4e..27ca695fc0 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.java
@@ -9,6 +9,8 @@ import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.util.Map;
+
/**
* @description:
* @author: dimengzhe
@@ -19,4 +21,6 @@ public interface AsBusclaimInvoiceBillMapper extends BaseMapper listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
int selectBySid(String join);
+
+ int updateFlowFiled(Map beanToMap);
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml
index 49c9823d4f..3f43eafe56 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml
@@ -25,4 +25,22 @@
where length(nodeState) > 0
and find_in_set(sid, #{list})
+
+
+ UPDATE as_busclaim_invoice_bill
+ SET nodeState=#{nodeState}
+
+ , taskDefKey=#{taskDefKey}
+
+
+ , procDefId=#{procDefId}
+
+
+ , procInstId=#{procInsId}
+
+
+ , taskId=#{taskId}
+
+ WHERE sid = #{sid}
+
\ No newline at end of file
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillRest.java
index 1772131408..fe9b00aa72 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillRest.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillRest.java
@@ -1,17 +1,24 @@
package com.yxt.anrui.as.biz.asbusclaiminvoicebill;
+import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.as.api.asbusclaimbill.AsBusclaimBillVo;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDetailsVo;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDto;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillQuery;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo;
+import com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable.*;
+import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
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.validation.Valid;
+import java.util.List;
+
/**
* @description:
* @author: dimengzhe
@@ -49,4 +56,56 @@ public class AsBusclaimInvoiceBillRest {
ResultBean details(@RequestParam("sid") String sid) {
return asBusclaimInvoiceBillService.details(sid);
}
+
+ @ApiOperation("提交")
+ @PostMapping("/submitApply")
+ public ResultBean submitApply(@Valid @RequestBody SubmitBusclaimInvoiceBillDto dto) {
+ return asBusclaimInvoiceBillService.submitApply(dto);
+ }
+
+ @ApiOperation(value = "办理(同意)")
+ @PostMapping("/complete")
+ public ResultBean complete(@Valid @RequestBody CompleteBusclaimInvoiceBillDto query) {
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ bv.setModelId("");
+ return asBusclaimInvoiceBillService.complete(bv);
+ }
+
+ @ApiOperation(value = "获取上一个环节")
+ @GetMapping(value = "/getPreviousNodesForReject")
+ ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BusclaimInvoiceNodeQuery query) {
+ return asBusclaimInvoiceBillService.getPreviousNodesForReject(query);
+ }
+
+ @ApiOperation(value = "获取下一个环节")
+ @GetMapping(value = "/getNextNodesForSubmit")
+ ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BusclaimInvoiceNodeQuery query) {
+ return asBusclaimInvoiceBillService.getNextNodesForSubmit(query);
+ }
+
+ @ApiOperation(value = "驳回任务")
+ @PostMapping(value = "/reject")
+ public ResultBean taskReject(@Valid @RequestBody BusclaimInvoiceTaskQuery query) {
+ return asBusclaimInvoiceBillService.taskReject(query);
+ }
+
+ @ApiOperation(value = "撤回流程")
+ @PostMapping(value = "/revokeProcess")
+ public ResultBean revokeProcess(@Valid @RequestBody BusclaimInvoiceTaskQuery query) {
+ return asBusclaimInvoiceBillService.revokeProcess(query);
+ }
+
+ @ApiOperation(value = "终止任务")
+ @PostMapping(value = "/breakProcess")
+ public ResultBean breakProcess(@Valid @RequestBody BusclaimInvoiceTaskQuery query) {
+ return asBusclaimInvoiceBillService.breakProcess(query);
+ }
+
+ @ApiOperation(value = "加签")
+ @PostMapping(value = "/delegate")
+ @ResponseBody
+ public ResultBean delegate(@RequestBody BusclaimInvoiceDelegateQuery query) {
+ return asBusclaimInvoiceBillService.delegate(query);
+ }
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java
index 4df005bdc2..87a399f28a 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java
@@ -1,13 +1,29 @@
package com.yxt.anrui.as.biz.asbusclaiminvoicebill;
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.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.*;
+import com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable.*;
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailDto;
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailVo;
import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailMapper;
import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService;
+import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
+import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign;
+import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum;
+import com.yxt.anrui.as.feign.flowable.flow.UpdateFlowFieldVo;
+import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery;
+import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign;
+import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskFeign;
+import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskVo;
+import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo;
+import com.yxt.anrui.as.feign.message.MessageFeign;
+import com.yxt.anrui.as.feign.message.MessageFlowVo;
+import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@@ -15,13 +31,13 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
+import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@@ -38,6 +54,14 @@ public class AsBusclaimInvoiceBillService extends MybatisBaseService listPage(PagerQuery pagerQuery) {
AsBusclaimInvoiceBillQuery query = pagerQuery.getParams();
@@ -160,4 +184,306 @@ public class AsBusclaimInvoiceBillService extends MybatisBaseService resultBean = saveOrUpdateBill(dto);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ String businessSid = resultBean.getData();
+ asBusclaimInvoiceBill = fetchBySid(businessSid);
+ //创建BusinessVariables实体对象
+ BusinessVariables bv = new BusinessVariables();
+ //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
+ Map variables = new HashMap<>();
+ Map appMap = new HashMap<>();
+ appMap.put("sid", businessSid);
+ variables.put("app", appMap);
+ //用户的部门全路径sid
+ bv.setOrgSidPath(asBusclaimInvoiceBill.getOrgSidPath());
+ bv.setBusinessSid(businessSid);
+ bv.setUserSid(dto.getCreateBySid());
+ bv.setFormVariables(variables);
+ if (r == 1) {
+ //ToDo:流程定义id
+ bv.setModelId("");
+ ResultBean voResultBean = flowFeign.startProcess(bv);
+ if (!voResultBean.getSuccess()) {
+ return rb.setMsg(voResultBean.getMsg());
+ }
+ UpdateFlowFieldVo ufVo = voResultBean.getData();
+ updateFlowFiled(BeanUtil.beanToMap(ufVo));
+ asBusclaimInvoiceBill = fetchBySid(businessSid);
+ //==================================添加线程
+ try {
+ ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
+ .setNameFormat("demo-pool-%d").build();
+ ExecutorService pool = new ThreadPoolExecutor(2, 100,
+ 0L, TimeUnit.MILLISECONDS,
+ new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
+ AsBusclaimInvoiceBill finalAsBusclaimInvoiceBill = asBusclaimInvoiceBill;
+ Future future1 = pool.submit(() -> {
+ //极光推送
+ 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(finalAsBusclaimInvoiceBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ messageFlowableQuery.setMsgTitle("索赔单开票申请");
+ ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ //==================================添加线程
+ return voResultBean;
+ }
+ if (r == 2) {
+ // ToDo:驳回到发起人后再次提交
+ if (StringUtils.isBlank(dto.getInstanceId())) {
+ return rb.setMsg("参数错误:instanceId");
+ }
+ bv.setTaskId(asBusclaimInvoiceBill.getTaskId());
+ bv.setTaskDefKey(asBusclaimInvoiceBill.getTaskDefKey());
+ bv.setComment("重新提交");
+ bv.setInstanceId(dto.getInstanceId());
+ return complete(bv);
+ }
+ return rb;
+ }
+
+ private int updateFlowFiled(Map beanToMap) {
+ return baseMapper.updateFlowFiled(beanToMap);
+ }
+
+ private int submitBusinessData(SubmitBusclaimInvoiceBillDto dto, AsBusclaimInvoiceBill asBusclaimInvoiceBill) {
+ int r = 0;
+ if (StringUtils.isBlank(dto.getSid())) {
+ r = 1;
+ } else {
+ if (asBusclaimInvoiceBill != null) {
+ String businessTaskId = asBusclaimInvoiceBill.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;
+ }
+
+ public ResultBean complete(BusinessVariables bv) {
+ ResultBean rb = ResultBean.fireFail();
+ String businessSid = bv.getBusinessSid();
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(businessSid);
+ Map variables = new HashMap<>();
+ Map appMap = new HashMap<>();
+ appMap.put("sid", businessSid);
+ variables.put("app", appMap);
+ bv.setFormVariables(variables);
+ bv.setOrgSidPath(asBusclaimInvoiceBill.getOrgSidPath());
+ bv.setModelId(asBusclaimInvoiceBill.getProcDefId());
+ if (bv.getTaskId().equals(asBusclaimInvoiceBill.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())) {
+ asBusclaimInvoiceBill = fetchBySid(businessSid);
+ asBusclaimInvoiceBill.setCloseDate(DateUtil.today());
+ baseMapper.updateById(asBusclaimInvoiceBill);
+ } else {
+ //极光推送
+ asBusclaimInvoiceBill = fetchBySid(businessSid);
+ MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
+ MessageFlowVo messageFlowVo = new MessageFlowVo();
+ BeanUtil.copyProperties(ufVo, messageFlowVo);
+ messageFlowVo.setProcDefId(asBusclaimInvoiceBill.getProcDefId());
+ messageFlowVo.setProcInsId(asBusclaimInvoiceBill.getProcInstId());
+ messageFlowableQuery.setUfVo(messageFlowVo);
+ messageFlowableQuery.setAppMap(appMap);
+ messageFlowableQuery.setBusinessSid(businessSid);
+ messageFlowableQuery.setModuleName("索赔单开票申请");
+ messageFlowableQuery.setMsgContent(asBusclaimInvoiceBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ messageFlowableQuery.setMsgTitle("索赔单开票申请");
+ ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
+ }
+ return rb.success().setData(resultBean.getData());
+ } else {
+ return rb.setMsg("操作失败!提交的数据不一致");
+ }
+ }
+
+ public ResultBean> getPreviousNodesForReject(BusclaimInvoiceNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(query.getBusinessSid());
+ bv.setModelId(asBusclaimInvoiceBill.getProcDefId());
+ ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BusclaimInvoiceNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
+
+ public ResultBean> getNextNodesForSubmit(BusclaimInvoiceNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(query.getBusinessSid());
+ bv.setModelId(asBusclaimInvoiceBill.getProcDefId());
+ ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BusclaimInvoiceNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
+
+ public ResultBean taskReject(BusclaimInvoiceTaskQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ String businessSid = query.getBusinessSid();
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(businessSid);
+ if (asBusclaimInvoiceBill == null) {
+ return rb.setMsg("该申请不存在");
+ }
+ String businessTaskId = asBusclaimInvoiceBill.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);
+ ResultBean resultBean = flowableFeign.taskReject(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ UpdateFlowFieldVo ufVo = resultBean.getData();
+ Map map = BeanUtil.beanToMap(ufVo);
+ //更新业务中的流程相关的参数
+ updateFlowFiled(map);
+ //极光推送
+ asBusclaimInvoiceBill = fetchBySid(businessSid);
+ MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
+ MessageFlowVo messageFlowVo = new MessageFlowVo();
+ BeanUtil.copyProperties(ufVo, messageFlowVo);
+ String procId = asBusclaimInvoiceBill.getProcInstId();
+ messageFlowVo.setProcInsId(procId);
+ messageFlowVo.setProcDefId(asBusclaimInvoiceBill.getProcDefId());
+ messageFlowableQuery.setUfVo(messageFlowVo);
+ messageFlowableQuery.setAppMap(appMap);
+ messageFlowableQuery.setBusinessSid(businessSid);
+ messageFlowableQuery.setModuleName("索赔单开票申请");
+ ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId);
+ String nextName = listResultBean.getData().get(0).getName_();
+ String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
+ if ("发起申请".equals(nextName)) {
+ messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
+ } else {
+ messageFlowableQuery.setMsgContent(asBusclaimInvoiceBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ }
+
+ messageFlowableQuery.setMsgTitle("索赔单开票申请");
+ ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
+ return rb.success();
+ }
+ }
+ return rb.setMsg("操作失败!提交的数据不一致!");
+ }
+
+ public ResultBean revokeProcess(BusclaimInvoiceTaskQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(query.getBusinessSid());
+ String businessTaskId = asBusclaimInvoiceBill.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(BusclaimInvoiceTaskQuery 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("请填写意见");
+ }
+ AsBusclaimInvoiceBill asBusclaimInvoiceBill = fetchBySid(query.getBusinessSid());
+ String businessTaskId = asBusclaimInvoiceBill.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (query.getUserSid().equals(asBusclaimInvoiceBill.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(BusclaimInvoiceDelegateQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
+ BeanUtil.copyProperties(query, delegateQuery);
+ flowFeign.delegate(delegateQuery);
+ return rb.success();
+ }
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowDelegateQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowDelegateQuery.java
index 804010084f..d13abbbf88 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowDelegateQuery.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowDelegateQuery.java
@@ -13,7 +13,6 @@ public class FlowDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
-// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowFeign.java
index 5748e04a95..81bf2495dc 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowFeign.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow2/FlowFeign.java
@@ -1,10 +1,13 @@
package com.yxt.anrui.as.feign.flowable.flow2;
+import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
+import com.yxt.anrui.as.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.common.core.result.ResultBean;
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",
@@ -15,4 +18,19 @@ 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-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml
index a7cdb391f1..e49e783453 100644
--- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml
+++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml
@@ -62,10 +62,12 @@