diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommDto.java index 75cd2d627a..dc093d6df0 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommDto.java @@ -73,5 +73,6 @@ public class AsServiceAccommDto implements Dto { private String createOrgName; // 创建组织名称 @ApiModelProperty("创建组织sid") private String createOrgSid; // 创建组织sid - + @ApiModelProperty("组织全路径") + private String orgPath; } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommVo.java index 62b8616d38..99acd84473 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommVo.java @@ -55,12 +55,14 @@ public class AsServiceAccommVo implements Vo { @ApiModelProperty("备案状态") private String state; + @ApiModelProperty("岗位sid") + private String postSid; @ApiModelProperty("岗位名称") - private String postName; // 岗位名称 + private String postName; @ApiModelProperty("提成比例") - private BigDecimal commRatio; // 提成比例 + private BigDecimal commRatio; @ApiModelProperty("部门名称") - private String useOrgName; // 部门名称 + private String useOrgName; @ApiModelProperty("备注") private String remarks; @ApiModelProperty("排序") diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDetailsVo.java index 1fe4417375..9c6c404b4d 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDetailsVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDetailsVo.java @@ -26,10 +26,16 @@ package com.yxt.anrui.as.api.asserviceaccommapply; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDetailsVo; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDto; import com.yxt.common.core.vo.Vo; import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.ArrayList; import java.util.Date; +import java.util.List; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -53,6 +59,13 @@ public class AsServiceAccommApplyDetailsVo implements Vo { private String sid; // sid + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("申请日期") + private Date createTime; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请人sid") + private String createBySid; @ApiModelProperty("制单人姓名") private String createByName; // 制单人姓名 @ApiModelProperty("发起部门sid") @@ -75,9 +88,11 @@ public class AsServiceAccommApplyDetailsVo implements Vo { private String nodeState; // 流程状态 @ApiModelProperty("任务id") private String taskId; // 任务id - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @ApiModelProperty("办结时间") - private Date finishTimeStart; // 办结时间 - private Date finishTimeEnd; // 办结时间 - + private Date finishTime; + @ApiModelProperty("附件") + private List fileList = new ArrayList<>(); + @ApiModelProperty("列表") + private List asServiceAccommDetailList = new ArrayList<>(); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDto.java index f0a71f4af3..3847803dcb 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDto.java @@ -26,10 +26,17 @@ package com.yxt.anrui.as.api.asserviceaccommapply; +import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyFile; +import com.yxt.anrui.as.api.asbwdiffapplydetail.AsBwdiffapplyDetailDto; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDto; import com.yxt.common.core.dto.Dto; import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.ArrayList; import java.util.Date; +import java.util.List; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -53,31 +60,37 @@ public class AsServiceAccommApplyDto implements Dto { private String sid; // sid - @ApiModelProperty("制单人姓名") + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请人sid") + private String createBySid; + @ApiModelProperty("制单人姓名") private String createByName; // 制单人姓名 - @ApiModelProperty("发起部门sid") + @ApiModelProperty("发起部门sid") private String deptSid; // 发起部门sid - @ApiModelProperty("发起部门名称") + @ApiModelProperty("发起部门名称") private String deptName; // 发起部门名称 - @ApiModelProperty("单据编号") + @ApiModelProperty("单据编号") private String billNo; // 单据编号 - @ApiModelProperty("分公司sid") + @ApiModelProperty("分公司sid") private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") + @ApiModelProperty("分公司名称") private String useOrgName; // 分公司名称 - @ApiModelProperty("流程定义的id") + @ApiModelProperty("流程定义的id") private String procDefId; // 流程定义的id - @ApiModelProperty("环节定义的sid") + @ApiModelProperty("环节定义的sid") private String nodeId; // 环节定义的sid - @ApiModelProperty("流程实例的sid") + @ApiModelProperty("流程实例的sid") private String procInstId; // 流程实例的sid - @ApiModelProperty("流程状态") + @ApiModelProperty("流程状态") private String nodeState; // 流程状态 - @ApiModelProperty("任务id") + @ApiModelProperty("任务id") private String taskId; // 任务id - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - @ApiModelProperty("办结时间") - private Date finishTimeStart; // 办结时间 - private Date finishTimeEnd; // 办结时间 - + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; + @ApiModelProperty("附件") + private List fileList = new ArrayList<>(); + @ApiModelProperty("列表") + private List asServiceAccommDetailList = new ArrayList<>(); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyQuery.java index 8df4de8d67..687c123087 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyQuery.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyQuery.java @@ -51,31 +51,23 @@ import lombok.Data; @ApiModel(value = "配件销售提成备案 查询条件", description = "配件销售提成备案 查询条件") public class AsServiceAccommApplyQuery implements Query { - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 - @ApiModelProperty("发起部门sid") - private String deptSid; // 发起部门sid - @ApiModelProperty("发起部门名称") - private String deptName; // 发起部门名称 - @ApiModelProperty("单据编号") - private String billNo; // 单据编号 - @ApiModelProperty("分公司sid") - private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") - private String useOrgName; // 分公司名称 - @ApiModelProperty("流程定义的id") - private String procDefId; // 流程定义的id - @ApiModelProperty("环节定义的sid") - private String nodeId; // 环节定义的sid - @ApiModelProperty("流程实例的sid") - private String procInstId; // 流程实例的sid - @ApiModelProperty("流程状态") - private String nodeState; // 流程状态 - @ApiModelProperty("任务id") - private String taskId; // 任务id - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - @ApiModelProperty("办结时间") - private Date finishTimeStart; // 办结时间 - private Date finishTimeEnd; // 办结时间 + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("发起部门名称") + private String deptName; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("申请日期") + private String createTimeStart; + private String createTimeEnd; + @ApiModelProperty("办结日期") + private String finishTimeStart; + private String finishTimeEnd; + + private String userSid; + private String orgPath; + private String menuUrl; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyVo.java index 63ae2147c5..e7001eea2a 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyVo.java @@ -53,31 +53,25 @@ public class AsServiceAccommApplyVo implements Vo { private String sid; // sid + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("发起部门名称") + private String deptName; @ApiModelProperty("制单人姓名") private String createByName; // 制单人姓名 - @ApiModelProperty("发起部门sid") - private String deptSid; // 发起部门sid - @ApiModelProperty("发起部门名称") - private String deptName; // 发起部门名称 - @ApiModelProperty("单据编号") - private String billNo; // 单据编号 - @ApiModelProperty("分公司sid") - private String useOrgSid; // 分公司sid - @ApiModelProperty("分公司名称") - private String useOrgName; // 分公司名称 @ApiModelProperty("流程定义的id") private String procDefId; // 流程定义的id - @ApiModelProperty("环节定义的sid") - private String nodeId; // 环节定义的sid @ApiModelProperty("流程实例的sid") private String procInstId; // 流程实例的sid - @ApiModelProperty("流程状态") - private String nodeState; // 流程状态 - @ApiModelProperty("任务id") - private String taskId; // 任务id - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - @ApiModelProperty("办结时间") - private Date finishTimeStart; // 办结时间 - private Date finishTimeEnd; // 办结时间 + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("申请日期") + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("办结日期") + private Date finishTime; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommFile.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommFile.java new file mode 100644 index 0000000000..7f78f6e125 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommFile.java @@ -0,0 +1,51 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.as.api.asserviceaccommapply; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * Project: yxt-as(保外工单)
+ * File: AsBwinvoiceapplyVo.java
+ * Class: com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyVo
+ * Description: 保外工单开票申请 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-06-17 13:42:57
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "保外工单开票申请 视图数据对象", description = "保外工单开票申请 视图数据对象") +public class AsServiceAccommFile implements Vo { + + private String url; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/CompleteServiceAccommDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/CompleteServiceAccommDto.java new file mode 100644 index 0000000000..cddbcf3f39 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/CompleteServiceAccommDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class CompleteServiceAccommDto { + + @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/asserviceaccommapply/flowable/ServiceAccommDelegateQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommDelegateQuery.java new file mode 100644 index 0000000000..d387af8ee1 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommDelegateQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class ServiceAccommDelegateQuery { + + 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/asserviceaccommapply/flowable/ServiceAccommNodeQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeQuery.java new file mode 100644 index 0000000000..aa5e67b001 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeQuery.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class ServiceAccommNodeQuery { + + @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/asserviceaccommapply/flowable/ServiceAccommNodeVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeVo.java new file mode 100644 index 0000000000..62939b260e --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class ServiceAccommNodeVo { + + @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/asserviceaccommapply/flowable/ServiceAccommTaskQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommTaskQuery.java new file mode 100644 index 0000000000..845756a873 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommTaskQuery.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class ServiceAccommTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @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/asserviceaccommapply/flowable/SubmitServiceAccommDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/SubmitServiceAccommDto.java new file mode 100644 index 0000000000..4108b65490 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/SubmitServiceAccommDto.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.as.api.asserviceaccommapply.flowable; + +import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class SubmitServiceAccommDto extends AsServiceAccommApplyDto { + + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDetailsVo.java index 376cd20317..bfc71765fe 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDetailsVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDetailsVo.java @@ -61,5 +61,6 @@ public class AsServiceAccommDetailDetailsVo implements Vo { private String postName; // 岗位名称 @ApiModelProperty("提成比例") private BigDecimal commRatio; // 提成比例 - + @ApiModelProperty("备注") + private String remarks; } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDto.java index 0204d475f5..e6952b2112 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDto.java @@ -61,5 +61,6 @@ public class AsServiceAccommDetailDto implements Dto { private String postName; // 岗位名称 @ApiModelProperty("提成比例") private BigDecimal commRatio; // 提成比例 - + @ApiModelProperty("备注") + private String remarks; } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.java index be900da245..6632c13869 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.java @@ -53,13 +53,5 @@ import java.util.List; @Mapper public interface AsServiceAccommMapper extends BaseMapper { - //@Update("update as_service_accomm set name=#{msg} where id=#{id}") - //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - - List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - - @Select("select * from as_service_accomm") - List selectListVo(); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.xml index 6d51e7b01d..eeba942f1d 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.xml +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.xml @@ -8,8 +8,4 @@ LEFT JOIN anrui_portal.sys_organization as s ON aa.useOrgSid = s.sid ${ew.sqlSegment} - - \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommService.java index 3e74227ea8..664e21e200 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommService.java @@ -30,6 +30,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.as.api.asserviceitemapply.AsServiceItemApplyVo; import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; import com.yxt.common.core.result.ResultBean; import org.apache.commons.lang3.StringUtils; @@ -46,6 +49,9 @@ import com.yxt.anrui.as.api.asserviceaccomm.AsServiceAccommDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; +import java.util.List; + /** * Project: yxt-as(销售配件提成)
* File: AsServiceAccommService.java
@@ -64,6 +70,10 @@ public class AsServiceAccommService extends MybatisBaseService listPageVo(PagerQuery pq) { AsServiceAccommQuery query = pq.getParams(); @@ -117,7 +127,36 @@ public class AsServiceAccommService extends MybatisBaseService split = Arrays.asList(orgPath.split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + deptSid = sysOrganization1.getSid(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + deptSid = sysOrganization.getSid(); + } + dto.setUseOrgSid(deptSid); + dto.setUseOrgName(deptName); + createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(createOrgSid); + if (organizationResultBean.getData() != null) { + dto.setCreateOrgSid(createOrgSid); + dto.setCreateOrgName(organizationResultBean.getData().getName()); + } + } this.insertByDto(dto); return; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.java index c15e81eb75..a6f0ad799c 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.java @@ -36,6 +36,7 @@ import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApply; import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyVo; import java.util.List; +import java.util.Map; /** * Project: yxt-as(销售配件提成)
@@ -53,13 +54,11 @@ import java.util.List; @Mapper public interface AsServiceAccommApplyMapper extends BaseMapper { - //@Update("update as_service_accomm_apply set name=#{msg} where id=#{id}") - //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - - List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - - @Select("select * from as_service_accomm_apply") - List selectListVo(); + + String selectNum(String billNo); + + int selectBySid(String join); + + int updateFlowFiled(Map beanToMap); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml index c31aeb5215..78acdbab8f 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml @@ -4,10 +4,41 @@ - - + select RIGHT (billNo, 4) + from as_service_accomm_apply + where billNo LIKE concat(#{billNo}, '%') + order by billNo desc + limit 1 + + + + + UPDATE as_service_accomm_apply + 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-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyRest.java index 782bbedc5e..0036a8f0ea 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyRest.java @@ -25,12 +25,17 @@ *********************************************************/ package com.yxt.anrui.as.biz.asserviceaccommapply; +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.as.api.asbwinvoiceapply.flowable.*; +import com.yxt.anrui.as.api.asserviceaccommapply.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.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 com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyQuery; @@ -38,6 +43,9 @@ import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyVo; import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyDetailsVo; import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyDto; +import javax.validation.Valid; +import java.util.List; + /** * Project: yxt-as(销售配件提成)
* File: AsServiceAccommApplyFeignFallback.java
@@ -76,11 +84,9 @@ public class AsServiceAccommApplyRest { } @ApiOperation("根据sid批量删除") - @PostMapping("/delBySids") + @DeleteMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - asServiceAccommApplyService.delBySids(sids); - return rb.success(); + return asServiceAccommApplyService.delAll(sids); } @ApiOperation("根据SID获取一条记录") @@ -90,4 +96,56 @@ public class AsServiceAccommApplyRest { AsServiceAccommApplyDetailsVo vo = asServiceAccommApplyService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @ApiOperation("提交") + @PostMapping("/submitApply") + public ResultBean submitApply(@Valid @RequestBody SubmitServiceAccommDto dto) { + return asServiceAccommApplyService.submitApply(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteServiceAccommDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return asServiceAccommApplyService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap ServiceAccommNodeQuery query) { + return asServiceAccommApplyService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap ServiceAccommNodeQuery query) { + return asServiceAccommApplyService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody ServiceAccommTaskQuery query) { + return asServiceAccommApplyService.taskReject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody ServiceAccommTaskQuery query) { + return asServiceAccommApplyService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody ServiceAccommTaskQuery query) { + return asServiceAccommApplyService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody ServiceAccommDelegateQuery query) { + return asServiceAccommApplyService.delegate(query); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyService.java index cdab877d94..0573374745 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyService.java @@ -26,21 +26,57 @@ package com.yxt.anrui.as.biz.asserviceaccommapply; 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.asappendix.AsAppendix; +import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapply; +import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyFile; +import com.yxt.anrui.as.api.asbwinvoiceapply.flowable.*; +import com.yxt.anrui.as.api.asserviceaccomm.AsServiceAccommVo; +import com.yxt.anrui.as.api.asserviceaccommapply.*; +import com.yxt.anrui.as.api.asserviceaccommapply.flowable.*; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDetailsVo; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDto; +import com.yxt.anrui.as.biz.asappendix.AsAppendixService; +import com.yxt.anrui.as.biz.asserviceaccommdetail.AsServiceAccommDetailService; +import com.yxt.anrui.as.feign.base.billno.Rule; +import com.yxt.anrui.as.feign.file.AsFileEnum; +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.anrui.as.feign.portal.privilege.PrivilegeQuery; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.core.result.ResultBean; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; -import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApply; -import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyQuery; -import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyVo; -import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyDetailsVo; -import com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyDto; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + /** * Project: yxt-as(销售配件提成)
* File: AsServiceAccommApplyService.java
@@ -56,35 +92,158 @@ import org.springframework.stereotype.Service; */ @Service public class AsServiceAccommApplyService extends MybatisBaseService { - private QueryWrapper createQueryWrapper(AsServiceAccommApplyQuery query) { - // todo: 这里根据具体业务调整查询条件 - // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); - QueryWrapper qw = new QueryWrapper<>(); - return qw; - } - + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private AsServiceAccommDetailService asServiceAccommDetailService; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private AsAppendixService asAppendixService; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + public PagerVo listPageVo(PagerQuery pq) { AsServiceAccommApplyQuery query = pq.getParams(); - QueryWrapper qw = createQueryWrapper(query); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("aaa.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("aaa.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("aaa.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("aaa.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("aaa.billNo", query.getBillNo()); + } + String createTimeStart = query.getCreateTimeStart(); + String createTimeEnd = query.getCreateTimeEnd(); + qw.apply(StringUtils.isNotEmpty(createTimeStart), "date_format (aaa.createTime,'%Y-%m-%d') >= date_format('" + createTimeStart + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createTimeEnd), "date_format (aaa.createTime,'%Y-%m-%d') <= date_format('" + createTimeEnd + "','%Y-%m-%d')" + ); + String finishTimeStart = query.getFinishTimeStart(); + String finishTimeEnd = query.getFinishTimeEnd(); + qw.apply(StringUtils.isNotEmpty(finishTimeStart), "date_format (aaa.finishTime,'%Y-%m-%d') >= date_format('" + finishTimeStart + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(finishTimeEnd), "date_format (aaa.finishTime,'%Y-%m-%d') <= date_format('" + finishTimeEnd + "','%Y-%m-%d')" + ); IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } - public void saveOrUpdateDto(AsServiceAccommApplyDto dto){ + public String saveOrUpdateDto(AsServiceAccommApplyDto dto){ String dtoSid = dto.getSid(); - if (StringUtils.isBlank(dtoSid)) { - this.insertByDto(dto); - return; + List asServiceAccommDetailList = dto.getAsServiceAccommDetailList(); + List fileList = dto.getFileList(); + String deptSid = dto.getDeptSid(); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dto.setUseOrgSid(useOrgSid); + dto.setUseOrgName(organizationVo.getName()); + if (StringUtils.isBlank(dtoSid)) { + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "PJXSTC" + organizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + dto.setBillNo(billNo); + String sid = this.insertByDto(dto); + for (AsServiceAccommDetailDto asServiceAccommDetailDto : asServiceAccommDetailList) { + asServiceAccommDetailDto.setMainSid(sid); + asServiceAccommDetailService.insertByDto(asServiceAccommDetailDto); + } + for (AsServiceAccommFile asServiceAccommFile : fileList) { + String filePath = asServiceAccommFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(sid); + asAppendix.setAttachType(AsFileEnum.ASSERVICEACCOMMAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + return sid; } this.updateByDto(dto); + asServiceAccommDetailService.delByMainSid(dtoSid); + for (AsServiceAccommDetailDto asServiceAccommDetailDto : asServiceAccommDetailList) { + asServiceAccommDetailDto.setMainSid(dtoSid); + asServiceAccommDetailService.insertByDto(asServiceAccommDetailDto); + } + asAppendixService.delByLinkSid(dtoSid); + for (AsServiceAccommFile asServiceAccommFile : fileList) { + String filePath = asServiceAccommFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(dtoSid); + asAppendix.setAttachType(AsFileEnum.ASSERVICEACCOMMAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + return dtoSid; } - public void insertByDto(AsServiceAccommApplyDto dto){ + public String insertByDto(AsServiceAccommApplyDto dto){ AsServiceAccommApply entity = new AsServiceAccommApply(); BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); baseMapper.insert(entity); + return entity.getSid(); } public void updateByDto(AsServiceAccommApplyDto dto){ @@ -101,6 +260,335 @@ public class AsServiceAccommApplyService extends MybatisBaseService asServiceAccommDetailDetailsVos = asServiceAccommDetailService.selByMainSid(sid); + vo.setAsServiceAccommDetailList(asServiceAccommDetailDetailsVos); + List asAppendices = asAppendixService.fetchByLinkSid(sid); + List asServiceAccommFiles = new ArrayList<>(); + for (AsAppendix asAppendix : asAppendices) { + AsServiceAccommFile asServiceAccommFile = new AsServiceAccommFile(); + String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); + asServiceAccommFile.setUrl(url); + asServiceAccommFiles.add(asServiceAccommFile); + } + vo.setFileList(asServiceAccommFiles); return vo; } + + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + asServiceAccommDetailService.delByMainSid(sid); + asAppendixService.delByLinkSid(sid); + } + return rb.success(); + } + + public ResultBean submitApply(SubmitServiceAccommDto dto) { + ResultBean rb = ResultBean.fireFail(); + AsServiceAccommApply asServiceAccommApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, asServiceAccommApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + String businessSid = saveOrUpdateDto(dto); + asServiceAccommApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asServiceAccommApply.getDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getCreateBySid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.ASBWINVOICEAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + asServiceAccommApply = 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()); + AsServiceAccommApply finalAsServiceAccommApply = asServiceAccommApply; + 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(finalAsServiceAccommApply.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(asServiceAccommApply.getTaskId()); + bv.setTaskDefKey(asServiceAccommApply.getNodeId()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } + + + private int submitBusinessData(SubmitServiceAccommDto dto, AsServiceAccommApply asServiceAccommApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (asServiceAccommApply != null) { + String businessTaskId = asServiceAccommApply.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(); + AsServiceAccommApply asServiceAccommApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asServiceAccommApply.getDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setModelId(asServiceAccommApply.getProcDefId()); + if (bv.getTaskId().equals(asServiceAccommApply.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 { + //极光推送 + asServiceAccommApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(asServiceAccommApply.getProcDefId()); + messageFlowVo.setProcInsId(asServiceAccommApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("配件销售提成备案申请"); + messageFlowableQuery.setMsgContent(asServiceAccommApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("配件销售提成备案申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(ServiceAccommNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(asServiceAccommApply.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), ServiceAccommNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(ServiceAccommNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(asServiceAccommApply.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), ServiceAccommNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean taskReject(ServiceAccommTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + AsServiceAccommApply asServiceAccommApply = fetchBySid(businessSid); + if (asServiceAccommApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = asServiceAccommApply.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); + //极光推送 + asServiceAccommApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = asServiceAccommApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(asServiceAccommApply.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(asServiceAccommApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("配件销售提成备案申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(ServiceAccommTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asServiceAccommApply.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(ServiceAccommTaskQuery 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("请填写意见"); + } + AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asServiceAccommApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(asServiceAccommApply.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(ServiceAccommDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailMapper.java index 4bc7235495..a3149e97c6 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailMapper.java @@ -29,6 +29,8 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDetailsVo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -52,4 +54,9 @@ import java.util.List; @Mapper public interface AsServiceAccommDetailMapper extends BaseMapper { + @Delete("delete from as_service_accomm_detail where mainSid = #{mainSid}") + void delByMainSid(String mainSid); + + @Select("select * from as_service_accomm_detail where mainSid = #{mainSid}") + List selByMainSid(String mainSid); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailService.java index 2804cbdaca..542c130431 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailService.java @@ -39,6 +39,8 @@ import com.yxt.anrui.as.api.asserviceaccommdetail.AsServiceAccommDetailDto; import org.springframework.stereotype.Service; +import java.util.List; + /** * Project: yxt-as(销售配件提成)
* File: AsServiceAccommDetailService.java
@@ -60,4 +62,12 @@ public class AsServiceAccommDetailService extends MybatisBaseService selByMainSid(String mainSid) { + return baseMapper.selByMainSid(mainSid); + } } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/file/AsFileEnum.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/file/AsFileEnum.java index cad58eb5ef..44729cf832 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/file/AsFileEnum.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/file/AsFileEnum.java @@ -14,6 +14,7 @@ public enum AsFileEnum { WXGD("005", "维修工单附件"), ASTECHTITLEAPPLY("006", "维修技师职称备案附件"), ASOLDPARTRETURNCONFIRM("007", "旧件返厂确认附件"), + ASSERVICEACCOMMAPPLY("008", "配件销售提成备案附件"), ;