God 8 months ago
parent
commit
da466b1e67
  1. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommDto.java
  2. 8
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccomm/AsServiceAccommVo.java
  3. 23
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDetailsVo.java
  4. 45
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyDto.java
  5. 44
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyQuery.java
  6. 34
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommApplyVo.java
  7. 51
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/AsServiceAccommFile.java
  8. 35
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/CompleteServiceAccommDto.java
  9. 23
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommDelegateQuery.java
  10. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeQuery.java
  11. 24
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommNodeVo.java
  12. 43
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/ServiceAccommTaskQuery.java
  13. 19
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommapply/flowable/SubmitServiceAccommDto.java
  14. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDetailsVo.java
  15. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceaccommdetail/AsServiceAccommDetailDto.java
  16. 8
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.java
  17. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommMapper.xml
  18. 41
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccomm/AsServiceAccommService.java
  19. 15
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.java
  20. 39
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml
  21. 66
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyRest.java
  22. 524
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyService.java
  23. 7
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailMapper.java
  24. 10
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommdetail/AsServiceAccommDetailService.java
  25. 1
      yxt-as/src/main/java/com/yxt/anrui/as/feign/file/AsFileEnum.java

3
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;
}

8
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("排序")

23
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<AsServiceAccommFile> fileList = new ArrayList<>();
@ApiModelProperty("列表")
private List<AsServiceAccommDetailDetailsVo> asServiceAccommDetailList = new ArrayList<>();
}

45
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<AsServiceAccommFile> fileList = new ArrayList<>();
@ApiModelProperty("列表")
private List<AsServiceAccommDetailDto> asServiceAccommDetailList = new ArrayList<>();
}

44
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;
}

34
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;
}

51
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(保外工单) <br/>
* File: AsBwinvoiceapplyVo.java <br/>
* Class: com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyVo <br/>
* Description: 保外工单开票申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-06-17 13:42:57 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "保外工单开票申请 视图数据对象", description = "保外工单开票申请 视图数据对象")
public class AsServiceAccommFile implements Vo {
private String url;
}

35
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;
}

23
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;
}

18
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;
}

24
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<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
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;
}

19
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;
}

3
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;
}

3
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;
}

8
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<AsServiceAccomm> {
//@Update("update as_service_accomm set name=#{msg} where id=#{id}")
//IPage<AsServiceAccommVo> voPage(IPage<AsServiceAccomm> page, @Param(Constants.WRAPPER) QueryWrapper<AsServiceAccomm> qw);
IPage<AsServiceAccommVo> selectPageVo(IPage<AsServiceAccomm> page, @Param(Constants.WRAPPER) Wrapper<AsServiceAccomm> qw);
List<AsServiceAccommVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<AsServiceAccomm> qw);
@Select("select * from as_service_accomm")
List<AsServiceAccommVo> selectListVo();
}

4
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
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.as.api.asserviceaccomm.AsServiceAccommVo">
SELECT * FROM as_service_accomm <where> ${ew.sqlSegment} </where>
</select>
</mapper>

41
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(销售配件提成) <br/>
* File: AsServiceAccommService.java <br/>
@ -64,6 +70,10 @@ public class AsServiceAccommService extends MybatisBaseService<AsServiceAccommMa
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public PagerVo<AsServiceAccommVo> listPageVo(PagerQuery<AsServiceAccommQuery> pq) {
AsServiceAccommQuery query = pq.getParams();
@ -117,7 +127,36 @@ public class AsServiceAccommService extends MybatisBaseService<AsServiceAccommMa
public void saveOrUpdateDto(AsServiceAccommDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
if (StringUtils.isBlank(dtoSid)) {
String deptName = "";
String deptSid = "";
String createOrgSid = "";
String orgPath = dto.getOrgPath();
if (StringUtils.isNotBlank(orgPath)) {
List<String> 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<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(createOrgSid);
if (organizationResultBean.getData() != null) {
dto.setCreateOrgSid(createOrgSid);
dto.setCreateOrgName(organizationResultBean.getData().getName());
}
}
this.insertByDto(dto);
return;
}

15
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(销售配件提成) <br/>
@ -53,13 +54,11 @@ import java.util.List;
@Mapper
public interface AsServiceAccommApplyMapper extends BaseMapper<AsServiceAccommApply> {
//@Update("update as_service_accomm_apply set name=#{msg} where id=#{id}")
//IPage<AsServiceAccommApplyVo> voPage(IPage<AsServiceAccommApply> page, @Param(Constants.WRAPPER) QueryWrapper<AsServiceAccommApply> qw);
IPage<AsServiceAccommApplyVo> selectPageVo(IPage<AsServiceAccommApply> page, @Param(Constants.WRAPPER) Wrapper<AsServiceAccommApply> qw);
List<AsServiceAccommApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<AsServiceAccommApply> qw);
@Select("select * from as_service_accomm_apply")
List<AsServiceAccommApplyVo> selectListVo();
String selectNum(String billNo);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> beanToMap);
}

39
yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceaccommapply/AsServiceAccommApplyMapper.xml

@ -4,10 +4,41 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyVo">
SELECT * FROM as_service_accomm_apply <where> ${ew.sqlSegment} </where>
SELECT * FROM as_service_accomm_apply aaa
LEFT JOIN anrui_portal.sys_organization as s ON aaa.deptSid = s.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.as.api.asserviceaccommapply.AsServiceAccommApplyVo">
SELECT * FROM as_service_accomm_apply <where> ${ew.sqlSegment} </where>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from as_service_accomm_apply
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
<select id="selectBySid" resultType="int">
SELECT COUNT(*)
FROM as_service_accomm_apply
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE as_service_accomm_apply
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

66
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(销售配件提成) <br/>
* File: AsServiceAccommApplyFeignFallback.java <br/>
@ -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<List<ServiceAccommNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap ServiceAccommNodeQuery query) {
return asServiceAccommApplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<ServiceAccommNodeVo>> 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);
}
}

524
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(销售配件提成) <br/>
* File: AsServiceAccommApplyService.java <br/>
@ -56,35 +92,158 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AsServiceAccommApplyService extends MybatisBaseService<AsServiceAccommApplyMapper, AsServiceAccommApply> {
private QueryWrapper<AsServiceAccommApply> createQueryWrapper(AsServiceAccommApplyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsServiceAccommApply> 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<AsServiceAccommApplyVo> listPageVo(PagerQuery<AsServiceAccommApplyQuery> pq) {
AsServiceAccommApplyQuery query = pq.getParams();
QueryWrapper<AsServiceAccommApply> qw = createQueryWrapper(query);
QueryWrapper<AsServiceAccommApply> 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<String> 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<AsServiceAccommApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsServiceAccommApplyVo> 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<AsServiceAccommApply> page = PagerUtil.queryToPage(pq);
IPage<AsServiceAccommApplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServiceAccommApplyVo> 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<AsServiceAccommDetailDto> asServiceAccommDetailList = dto.getAsServiceAccommDetailList();
List<AsServiceAccommFile> 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<AsServiceAcc
AsServiceAccommApply entity = fetchBySid(sid);
AsServiceAccommApplyDetailsVo vo = new AsServiceAccommApplyDetailsVo();
BeanUtil.copyProperties(entity, vo);
List<AsServiceAccommDetailDetailsVo> asServiceAccommDetailDetailsVos = asServiceAccommDetailService.selByMainSid(sid);
vo.setAsServiceAccommDetailList(asServiceAccommDetailDetailsVos);
List<AsAppendix> asAppendices = asAppendixService.fetchByLinkSid(sid);
List<AsServiceAccommFile> 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<String, Object> variables = new HashMap<>();
Map<String, Object> 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<UpdateFlowFieldVo> 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<Runnable>(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<String> 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<String, Object> 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<String, Object> variables = new HashMap<>();
Map<String, Object> 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<UpdateFlowFieldVo> 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<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<ServiceAccommNodeVo>> getPreviousNodesForReject(ServiceAccommNodeQuery query) {
ResultBean<List<ServiceAccommNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid());
bv.setModelId(asServiceAccommApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<ServiceAccommNodeVo> 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<List<ServiceAccommNodeVo>> getNextNodesForSubmit(ServiceAccommNodeQuery query) {
ResultBean<List<ServiceAccommNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsServiceAccommApply asServiceAccommApply = fetchBySid(query.getBusinessSid());
bv.setModelId(asServiceAccommApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<ServiceAccommNodeVo> 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<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> 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<List<LatestTaskVo>> 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<String> 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<UpdateFlowFieldVo> 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<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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();
}
}

7
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<AsServiceAccommDetail> {
@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<AsServiceAccommDetailDetailsVo> selByMainSid(String mainSid);
}

10
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(销售配件提成) <br/>
* File: AsServiceAccommDetailService.java <br/>
@ -60,4 +62,12 @@ public class AsServiceAccommDetailService extends MybatisBaseService<AsServiceAc
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void delByMainSid(String mainSid) {
baseMapper.delByMainSid(mainSid);
}
public List<AsServiceAccommDetailDetailsVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
}

1
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", "配件销售提成备案附件"),
;

Loading…
Cancel
Save