Browse Source

经销商备案

master
fanzongzhe 2 years ago
parent
commit
d08292556b
  1. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributor.java
  2. 11
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorDetailsVo.java
  3. 1
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorDto.java
  4. 51
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeign.java
  5. 51
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeignFallback.java
  6. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorVo.java
  7. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDisDetailsVo.java
  8. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDistribuDeailVo.java
  9. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDistributorsVo.java
  10. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/AppSubmitDistributorApplyDto.java
  11. 40
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/BaseDistributorCompleteDto.java
  12. 56
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/BaseDistributorTaskQuery.java
  13. 26
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/GetNodeQuery.java
  14. 25
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/GetNodeVo.java
  15. 22
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/SubmitBaseDistributorApplyDto.java
  16. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorMapper.java
  17. 37
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorMapper.xml
  18. 71
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorRest.java
  19. 708
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorService.java
  20. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
  21. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverService.java
  22. 34
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/receiveVehicleConfirmation.ftl
  23. 1287
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/vinHandoverData.ftl
  24. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DisDetailsVo.java
  25. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DisInitDetailsVo.java
  26. 44
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DistributorFeign.java
  27. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DistributorVo.java
  28. 33
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/CompleteDistributorDto.java
  29. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/DistributorFlowableQuery.java
  30. 44
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/DistributorTaskQuery.java
  31. 22
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/SubmitDistributorApplyDto.java
  32. 39
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/distributor/DistributorRest.java
  33. 139
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/distributor/DistributorService.java

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributor.java

@ -98,4 +98,18 @@ public class BaseDistributor extends BaseEntity {
private String disLevelKey;
@ApiModelProperty("级别value")
private String disLevelValue;
@ApiModelProperty("流程定义的id")
private String procDefId;
@ApiModelProperty("环节定义的sid")
private String nodeSid;
@ApiModelProperty("流程实例的id")
private String procInstId;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
@ApiModelProperty("办结日期")
private Date closingDate;
}

11
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorDetailsVo.java

@ -24,7 +24,7 @@ public class BaseDistributorDetailsVo implements Vo {
@ApiModelProperty("统一社会信用代码")
private String registNum;
@ApiModelProperty("成立时间")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date setUpTime;
@ApiModelProperty("注册(登记)地址")
private String registDetailAddress;
@ -71,7 +71,7 @@ public class BaseDistributorDetailsVo implements Vo {
@ApiModelProperty("是否担保 0是/1否")
private String isGuarantee;
@ApiModelProperty("开始合作日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startCoopDate;
@ApiModelProperty("创建组织")
private String createOrg;
@ -101,4 +101,11 @@ public class BaseDistributorDetailsVo implements Vo {
private List<BaseDistributorAppendixVo> frsfzList;
@ApiModelProperty("其他资料附件list")
private List<BaseDistributorAppendixVo> qtzlList;
@ApiModelProperty("taskId")
private String taskId; // taskId
@ApiModelProperty("流程实例的sid")
private String procInsId; // 流程实例的sid
@ApiModelProperty("userSid")
private String userSid;
private String orgSidPath;
}

1
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorDto.java

@ -108,4 +108,5 @@ public class BaseDistributorDto implements Dto {
private List<BaseDistributorAppendixDto> frsfzList;
@ApiModelProperty("其他资料附件list")
private List<BaseDistributorAppendixDto> qtzlList;
private String orgSidPath;
}

51
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeign.java

@ -1,12 +1,14 @@
package com.yxt.anrui.base.api.basedistributor;
import com.yxt.anrui.base.api.basedistributor.app.*;
import com.yxt.anrui.base.api.basedistributor.flow.*;
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.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
@ -82,8 +84,46 @@ public interface BaseDistributorFeign {
@ApiOperation("PC端-中介人员-经销商列表")
@PostMapping("/getDistributors")
ResultBean<List<BaseDistributorsListVo>> getDistributors(@RequestBody BaseDistributorsListQuery pagerQuery);
//---------------------------------------移动端-------------------------------------------------//
//---------------------------------------------- 流程接口 --------------------------------------------------/
@ApiOperation("经销商备案提交")
@PostMapping("/submit")
public ResultBean submitRecordApplication(@RequestBody @Valid SubmitBaseDistributorApplyDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody BaseDistributorCompleteDto dto);
//分公司到风控中心同意
@ApiOperation(value = "办理(同意)")
@PostMapping("/companyToDivisionOperate")
public ResultBean companyToDivisionOperate(@Valid @RequestBody BaseDistributorCompleteDto query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody BaseDistributorTaskQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody BaseDistributorTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@RequestBody BaseDistributorTaskQuery query);
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap GetNodeQuery query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query);
//---------------------------------------移动端-------------------------------------------------//
@ApiOperation("移动端-销售订单-经销商分页列 表")
@PostMapping("/getDistributorList")
ResultBean<PagerVo<BaseDistributorsListVo>> getDistributorList(@RequestBody PagerQuery<BaseDistributorsListQuery> pagerQuery);
@ -142,13 +182,18 @@ public interface BaseDistributorFeign {
@ApiOperation("查询所有经销商信息")
@GetMapping("/selectAllDisList")
ResultBean<List<BaseDistributorListVo>> selectAllDisList(@RequestParam("orgSid") String orgSid,@RequestParam("staffSid") String staffSid);
ResultBean<List<BaseDistributorListVo>> selectAllDisList(@RequestParam("orgSid") String orgSid, @RequestParam("staffSid") String staffSid);
@ApiOperation("移动端查询经销商和客户信息")
@GetMapping("/invoiceName")
ResultBean<List<AppDisAndCustm>> invoiceName(@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath,@RequestParam(value = "search",required = false) String search);
ResultBean<List<AppDisAndCustm>> invoiceName(@RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath, @RequestParam(value = "search", required = false) String search);
@ApiOperation("根据sid查询所有经销商信息")
@GetMapping("/selectDisListBySid/{sid}")
ResultBean<BaseDistributorListVo> selectDisListBySid(@PathVariable("sid") String sid);
//---------------------------------------移动端流程---------------------------------------------//
@ApiOperation("经销商备案提交")
@PostMapping("/submitDistributor")
public ResultBean submitDistributor(@RequestBody @Valid AppSubmitDistributorApplyDto dto);
}

51
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeignFallback.java

@ -1,6 +1,7 @@
package com.yxt.anrui.base.api.basedistributor;
import com.yxt.anrui.base.api.basedistributor.app.*;
import com.yxt.anrui.base.api.basedistributor.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -82,6 +83,51 @@ public class BaseDistributorFeignFallback implements BaseDistributorFeign {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitBaseDistributorApplyDto dto) {
return null;
}
@Override
public ResultBean complete(BaseDistributorCompleteDto dto) {
return null;
}
@Override
public ResultBean companyToDivisionOperate(BaseDistributorCompleteDto query) {
return null;
}
@Override
public ResultBean revokeProcess(BaseDistributorTaskQuery query) {
return null;
}
@Override
public ResultBean taskReject(BaseDistributorTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(BaseDistributorTaskQuery query) {
return null;
}
@Override
public ResultBean flowRecord(String procInsId) {
return null;
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return null;
}
@Override
public ResultBean<PagerVo<BaseDistributorsListVo>> getDistributorList(PagerQuery<BaseDistributorsListQuery> pagerQuery) {
return null;
@ -167,5 +213,10 @@ public class BaseDistributorFeignFallback implements BaseDistributorFeign {
return null;
}
@Override
public ResultBean submitDistributor(AppSubmitDistributorApplyDto dto) {
return null;
}
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorVo.java

@ -102,4 +102,11 @@ public class BaseDistributorVo implements Vo {
private String disLevelValue;
@ApiModelProperty("是否关联(0未关联,1已关联)")
private String isRelation;
@ApiModelProperty("备案状态")
private String state;
private String procDefId;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程状态")
private String nodeState;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDisDetailsVo.java

@ -22,6 +22,7 @@ public class BaseDisDetailsVo implements Vo {
private BaseFileVo fileInfo;
@ApiModelProperty(value = "人员列表")
private List<BaseRecordsVo> records;
private String procInstId;
private String taskId;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDistribuDeailVo.java

@ -20,7 +20,8 @@ public class BaseDistribuDeailVo implements Vo {
private Integer invoiceInfoState;
@ApiModelProperty(value = "文件信息状态")
private Integer fileInfoState;
private String procInstId;
private String taskId;
private List<BaseInfoListVo> records;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/app/BaseDistributorsVo.java

@ -31,4 +31,6 @@ public class BaseDistributorsVo implements Vo {
private String invoPhone;
@ApiModelProperty(value = "成立日期")
private String setUpTime;
//private String nodeState;
private boolean updateBtn;
}

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/AppSubmitDistributorApplyDto.java

@ -0,0 +1,23 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/7/14 9:15
*/
@Data
public class AppSubmitDistributorApplyDto implements Dto {
@ApiModelProperty("distributorSid")
private String distributorSid;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
}

40
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/BaseDistributorCompleteDto.java

@ -0,0 +1,40 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/6/28 9:01
* @Description
*/
@Data
public class BaseDistributorCompleteDto implements Dto {
private static final long serialVersionUID = 3240453987322803352L;
@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 = "意见")
@NotBlank(message = "参数错误:comment")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "分支字段及业务字段")
private Map<String, Object> formVariables;
}

56
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/BaseDistributorTaskQuery.java

@ -0,0 +1,56 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/6/28 17:29
* @Description 终止撤回驳回查询参数
*/
@Data
public class BaseDistributorTaskQuery implements Query {
private static final long serialVersionUID = -4006020771892400451L;
/**
* 终止驳回撤回
*/
@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;
/*@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("节点")
private String targetKey;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();*/
}

26
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/GetNodeQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/6/28 10:42
* @Description
*/
@Data
public class GetNodeQuery implements Query {
private static final long serialVersionUID = -5674867230708197611L;
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "分支字段及业务字段")
private Map<String, Object> formVariables;
}

25
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/GetNodeVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/6/28 11:09
* @Description
*/
@Data
public class GetNodeVo implements Vo {
private static final long serialVersionUID = 8802774014747063504L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

22
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/flow/SubmitBaseDistributorApplyDto.java

@ -0,0 +1,22 @@
package com.yxt.anrui.base.api.basedistributor.flow;
import com.yxt.anrui.base.api.basedistributor.BaseDistributorDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/6/27 13:38
* @Description
*/
@Data
public class SubmitBaseDistributorApplyDto extends BaseDistributorDto {
private static final long serialVersionUID = 378585162071125756L;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("业务sid")
private String sid;
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorMapper.java

@ -136,4 +136,6 @@ public interface BaseDistributorMapper extends BaseMapper<BaseDistributor> {
BaseDistributorListVo selectDisListBySid(String sid);
List<BaseDistributorListVo> selectAppAllDisList(@Param("sid") String sid, @Param("search") String search);
int updateFlowFiled(Map<String, Object> map);
}

37
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorMapper.xml

@ -12,7 +12,14 @@
bd.invoBankNum,
bd.setUpTime,
bd.isGuarantee,
bd.pDistributorName
bd.pDistributorName,
bd.procDefId,
bd.procInstId,
bd.nodeState,
case bd.state
when 1 then '未报备'
when 3 then '报备中'
when 2 then '已报备' end as `state`
FROM base_distributor bd
<where>
${ew.sqlSegment}
@ -95,7 +102,7 @@
<select id="namesDown" resultType="java.util.Map">
SELECT bdb.sid, bdb.distributorName
FROM base_distributor bdb
${ew.customSqlSegment}
${ew.customSqlSegment}
</select>
<select id="getBaseDistributorList" resultType="com.yxt.anrui.base.api.basedistributor.PcBaseDistributorVo">
@ -128,13 +135,12 @@
<select id="getDistributorListOne" resultType="com.yxt.anrui.base.api.basedistributor.app.BaseDistributorsVo">
SELECT bd.sid,
bd.disName,
case bd.state
when 1 then '未备案'
when 2 then '已备案' end as state,
bd.nodeState as state,
if(length(bd.pDistributorName)>0,bd.pDistributorName,'无') as pDistributorName,
bd.registNum,
bd.registDetailAddress,
bd.invoPhone,
bd.nodeState,
DATE_FORMAT(bd.setUpTime, '%Y-%m-%d') as setUpTime
FROM base_distributor bd
<where>
@ -168,7 +174,7 @@
</select>
<select id="getInfo" resultType="com.yxt.anrui.base.api.basedistributor.app.BaseInvoiceInfoVo">
select bd.sid, bd.invoPhone, bd.invoBank, bd.invoBankNum,bd.registDetailAddress,bd.registNum
select bd.sid, bd.invoPhone, bd.invoBank, bd.invoBankNum, bd.registDetailAddress, bd.registNum
from base_distributor bd
where bd.sid = #{sid}
</select>
@ -194,6 +200,21 @@
invoBank = #{invoBank}
where sid = #{sid}
</update>
<update id="updateFlowFiled">
UPDATE base_distributor
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<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>
<select id="selectDisList" resultType="com.yxt.anrui.base.api.basedistributor.BaseDistributorListVo">
select disName as name, sid
@ -233,7 +254,7 @@
invoBankNum
FROM base_distributor
WHERE isDelete = 0
AND createOrg = #{orgSid}
AND createOrg = #{orgSid}
</select>
<select id="selectDisListBySid" resultType="com.yxt.anrui.base.api.basedistributor.BaseDistributorListVo">
@ -245,7 +266,7 @@
invoBankNum
FROM base_distributor
WHERE isDelete = 0
AND sid = #{sid}
AND sid = #{sid}
</select>
<select id="selectAppAllDisList" resultType="com.yxt.anrui.base.api.basedistributor.BaseDistributorListVo">

71
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorRest.java

@ -1,12 +1,16 @@
package com.yxt.anrui.base.biz.basedistributor;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basedistributor.*;
import com.yxt.anrui.base.api.basedistributor.app.*;
import com.yxt.anrui.base.api.basedistributor.flow.*;
import com.yxt.anrui.base.biz.basedistributorappendix.BaseDistributorAppendixService;
import com.yxt.anrui.base.biz.basedistributorlegal.BaseDistributorLegalService;
import com.yxt.anrui.base.biz.basedistributorperson.BaseDistributorPersonService;
import com.yxt.anrui.base.biz.basedistributorstaff.BaseDistributorStaffService;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -100,6 +104,10 @@ public class BaseDistributorRest implements BaseDistributorFeign {
List<String> sidList = Arrays.asList(sids.split(","));
for (int i = 0; i < sidList.size(); i++) {
String sid = sidList.get(i);
BaseDistributor entity = baseDistributorService.fetchBySid(sid);
if (!entity.equals("待提交")) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
int i1 = baseDistributorService.selByPDisSid(sid);
if (i1 > 0) {
return rb.setMsg("所选经销商已关联二级经销商,无法删除");
@ -188,6 +196,63 @@ public class BaseDistributorRest implements BaseDistributorFeign {
return rb.success().setData(list);
}
//---------------------------------------------- 流程接口 --------------------------------------------------/
@Override
public ResultBean submitRecordApplication(SubmitBaseDistributorApplyDto dto) {
return baseDistributorService.submitRecordApplication(dto);
}
@Override
public ResultBean complete(BaseDistributorCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
return baseDistributorService.complete(bv);
}
@Override
public ResultBean companyToDivisionOperate(BaseDistributorCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
return baseDistributorService.companyToDivisionOperate(bv);
}
@Override
public ResultBean revokeProcess(BaseDistributorTaskQuery query) {
return baseDistributorService.revokeProcess(query);
}
@Override
public ResultBean taskReject(BaseDistributorTaskQuery query) {
return baseDistributorService.taskReject(query);
}
@Override
public ResultBean breakProcess(BaseDistributorTaskQuery query) {
return baseDistributorService.breakProcess(query);
}
@Override
public ResultBean flowRecord(String procInsId) {
return baseDistributorService.flowRecord(procInsId);
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return baseDistributorService.getNextNodesForSubmit(query);
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return baseDistributorService.getPreviousNodesForReject(query);
}
/******************************************************************************************************/
@Override
public ResultBean<PagerVo<BaseDistributorsListVo>> getDistributorList(PagerQuery<BaseDistributorsListQuery> pagerQuery) {
ResultBean<PagerVo<BaseDistributorsListVo>> rb = ResultBean.fireFail();
@ -276,4 +341,10 @@ public class BaseDistributorRest implements BaseDistributorFeign {
public ResultBean<BaseDistributorListVo> selectDisListBySid(String sid) {
return baseDistributorService.selectDisListBySid(sid);
}
/*-----------------------------------移动端流程------------------------------------------------*/
@Override
public ResultBean submitDistributor(AppSubmitDistributorApplyDto dto) {
return baseDistributorService.submitDistributor(dto);
}
}

708
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorService.java

@ -1,10 +1,13 @@
package com.yxt.anrui.base.biz.basedistributor;
import cn.hutool.core.bean.BeanUtil;
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.base.api.basedistributor.*;
import com.yxt.anrui.base.api.basedistributor.app.*;
import com.yxt.anrui.base.api.basedistributor.flow.*;
import com.yxt.anrui.base.api.basedistributorappendix.BaseDistributorAppendix;
import com.yxt.anrui.base.api.basedistributorappendix.BaseDistributorAppendixDto;
import com.yxt.anrui.base.api.basedistributorappendix.BaseDistributorAppendixVo;
@ -19,11 +22,22 @@ import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempListQuery;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempListVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingBillListVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserRoleQuery;
import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -31,11 +45,16 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -71,6 +90,12 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private FinCompanyInvoicingFeign finCompanyInvoicingFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
/**
* 经销商分页列表
@ -156,6 +181,7 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
qw.apply(StringUtils.isNotBlank(setUpStartTime), "date_format (bd.setUpTime,'%Y-%m-%d') >= date_format('" + setUpStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(setUpEndTime), "date_format (bd.setUpTime,'%Y-%m-%d') <= date_format('" + setUpEndTime + "','%Y-%m-%d')"
);
qw.orderByDesc("bd.createTime");
}
return qw;
}
@ -219,6 +245,19 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
BaseDistributorVo baseDistributorVo = baseMapper.selBySid(sid);
BeanUtil.copyProperties(baseDistributorVo, baseDistributorDetailsVo);
baseDistributorDetailsVo.setSid(sid);
BaseDistributor baseDistributor = fetchBySid(sid);
if (StringUtils.isNotBlank(baseDistributor.getCreateBySid())) {
baseDistributorDetailsVo.setUserSid(baseDistributor.getCreateBySid());
}
if (StringUtils.isNotBlank(baseDistributor.getOrgSidPath())) {
baseDistributorDetailsVo.setOrgSidPath(baseDistributor.getOrgSidPath());
}
if (StringUtils.isNotBlank(baseDistributor.getTaskId())) {
baseDistributorDetailsVo.setTaskId(baseDistributor.getTaskId());
}
if (StringUtils.isNotBlank(baseDistributor.getProcInstId())) {
baseDistributorDetailsVo.setProcInsId(baseDistributor.getProcInstId());
}
List<BaseDistributorStaffVo> baseDistributorStaffVo = baseDistributorStaffService.selbyDistributorSid(sid);
baseDistributorDetailsVo.setPerList(baseDistributorStaffVo);
String[] split = s.split(",");
@ -308,17 +347,19 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
List<BaseDistributorAppendixDto> qtzlList = dto.getQtzlList();
List<BaseDistributorStaffDto> perList = dto.getPerList();
int count = selectNumCode(registNum);
if (count > 0) {
return rb.fail().setMsg("保存失败,统一社会信用代码已存在");
}
if (registNum.length() != 18 && registNum.length() != 9) {
return ResultBean.fireFail().setMsg("统一信用社会代码应为9位或18位");
}
// if (count > 0) {
// return rb.fail().setMsg("保存失败,统一社会信用代码已存在");
// }
// if (registNum.length() != 18 && registNum.length() != 9) {
// return rb.fireFail().setMsg("统一信用社会代码应为9位或18位");
// }
/*if (new Date().before(dto.getSetUpTime())) {
return rb.setMsg("成立时间不能晚于当前时间");
}*/
BaseDistributor baseDistributor = new BaseDistributor();
BeanUtil.copyProperties(dto, baseDistributor);
BeanUtil.copyProperties(dto, baseDistributor, "id", "sid");
baseDistributor.setCreateBySid(dto.getUserSid());
baseDistributor.setNodeState("待提交");
String pDistributorName = baseDistributor.getPDistributorName();
if (pDistributorName.equals("无")) {
baseDistributor.setDisLevelKey("0001");
@ -414,7 +455,8 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
return rb.setMsg("其他资料附件保存失败");
}
}
return rb.success().setMsg("保存成功");
String entitySid = baseDistributor.getSid();
return rb.success().setData(entitySid).setMsg("保存成功");
}
public ResultBean updateAll(BaseDistributorDto dto, String sid) {
@ -606,6 +648,28 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
qw.orderByDesc("bd.id");
}
IPage<BaseDistributorsVo> pagging = baseMapper.getDistributorListOne(page, qw);
List<BaseDistributorsVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
for (BaseDistributorsVo record : records) {
record.setUpdateBtn(false);
if (StringUtils.isNotBlank(record.getState())) {
if (record.getState().equals("已办结")) {
record.setState("备案通过");
}
if (record.getState().equals("终止")) {
record.setState("备案未通过");
}
if (record.getState().equals("待提交")) {
record.setState("未备案");
record.setUpdateBtn(true);
}
} else {
record.setState("未备案");
record.setUpdateBtn(true);
}
}
}
PagerVo<BaseDistributorsVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
@ -617,6 +681,12 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
return rb.setMsg("该经销商不存在");
}
BaseDisDetailsVo vo = new BaseDisDetailsVo();
if (StringUtils.isNotBlank(baseDistributor.getTaskId())) {
vo.setTaskId(baseDistributor.getTaskId());
}
if (StringUtils.isNotBlank(baseDistributor.getProcInstId())) {
vo.setProcInstId(baseDistributor.getProcInstId());
}
BaseInfoVo baseInfoVo = baseMapper.getDistributorDetail(sid);
vo.setBaseInfo(baseInfoVo);
//开票信息
@ -647,6 +717,12 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
return rb.setMsg("该经销商不存在");
}
BaseDistribuDeailVo vo = new BaseDistribuDeailVo();
if (StringUtils.isNotBlank(baseDistributor.getTaskId())) {
vo.setTaskId(baseDistributor.getTaskId());
}
if (StringUtils.isNotBlank(baseDistributor.getProcInstId())) {
vo.setProcInstId(baseDistributor.getProcInstId());
}
//查询基础信息是否已完善
BaseDistributor distributor = baseMapper.selectBySid(sid);
if (distributor != null) {
@ -678,6 +754,9 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
if (baseDistributor == null) {
return rb.setMsg("该数据不存在");
}
if (!baseDistributor.getNodeState().equals("待提交")) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
baseDistributorAppendixService.delByLinkSid(sid);
baseDistributorStaffService.deleteStaff(sid);
deleteBySid(sid);
@ -740,11 +819,13 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
BaseDistributor baseDistributor = new BaseDistributor();
BeanUtil.copyProperties(dto, baseDistributor, "sid");
baseDistributor.setCreateBySid(userSid);
baseDistributor.setOrgSidPath(orgPath);
if (StringUtils.isBlank(orgPath)) {
orgPath = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
} else {
orgPath = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
}
baseDistributor.setNodeState("待提交");
//验证该分公司的经销商名称是否重复
BaseDistributor baseDistributor1 = baseMapper.selectNameByOne(orgPath, baseDistributor.getDisName());
if (baseDistributor1 != null) {
@ -974,4 +1055,613 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
}
return rb.success().setData(appDisAndCustms);
}
//-------------------------------------流程------------------------------------------------/
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitBaseDistributorApplyDto dto, BaseDistributor baseDistributor) {
int r = 0;
if (org.apache.commons.lang3.StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (baseDistributor != null) {
String businessTaskId = baseDistributor.getTaskId();
if (org.apache.commons.lang3.StringUtils.isBlank(businessTaskId) && org.apache.commons.lang3.StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
/**
* 提交备案申请
*
* @param dto
* @return
*/
public ResultBean submitRecordApplication(SubmitBaseDistributorApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
BaseDistributor baseDistributor = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, baseDistributor);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
String businessSid = "";
//新增修改保存
if (StringUtils.isNotBlank(dto.getSid())) {
ResultBean resultBean = updateAll(dto, dto.getSid());
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
businessSid = dto.getSid();
} else {
ResultBean<String> resultBean = saveAll(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
businessSid = resultBean.getData();
}
BaseDistributor entity = fetchBySid(businessSid);
String orgSidPath = "";
if (org.apache.commons.lang3.StringUtils.isNotBlank(entity.getOrgSidPath())) {
orgSidPath = entity.getOrgSidPath();
} else {
SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData();
if (null != data) {
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
}
}
List<String> orgPathList = Arrays.asList(orgSidPath.split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (org.apache.commons.lang3.StringUtils.isBlank(sysOrganization.getManagerSid())) {
// return rb.setMsg("当前所在的组织机构未设置主管人员");
sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值
Map<String, Object> variables = BeanUtil.beanToMap(dto);
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
variables.put("businessSid", businessSid);
appMap.put("distributorSid", businessSid);
variables.put("app", appMap);
BaseDistributor baseDistributor1 = fetchBySid(businessSid);
String msgBusinessSid = baseDistributor1.getSid();
//用户的部门全路径sid
bv.setOrgSidPath(baseDistributor1.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
String nextNodeUserSids_ = sysOrganization.getManagerSid();
bv.setNextNodeUserSids(nextNodeUserSids_);
//流程定义id
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
if (r == 1) {
//流程定义id
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(ufVo));
if (i > 0) {
//修改备案状态
BaseDistributor distributor = fetchBySid(businessSid);
distributor.setState(3);
baseMapper.updateById(distributor);
}
//==================================添加线程
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());
Future future1 = pool.submit(() -> {
//极光推送
// busVehicleApply.set(fetchBySid(businessSid))
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(msgBusinessSid);
messageFlowableQuery.setModuleName("经销商备案");
SysUserVo userVo = sysUserFeign.fetchBySid(baseDistributor1.getCreateBySid()).getData();
if (userVo != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
messageFlowableQuery.setMsgTitle("经销商备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (org.apache.commons.lang3.StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
BaseDistributor baseDistributor2 = fetchBySid(dto.getSid());
bv.setTaskId(dto.getTaskId());
bv.setTaskDefKey(baseDistributor2.getNodeSid());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
BaseDistributor baseDistributor = this.fetchBySid(businessSid);
if (bv.getTaskId().equals(baseDistributor.getTaskId())) {
bv.setOrgSidPath(baseDistributor.getOrgSidPath());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
BaseDistributor entity = fetchBySid(businessSid);
entity.setState(2);
entity.setClosingDate(new Date());
//办结日期
baseMapper.updateById(entity);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
//-----------------------------------------移动端流程-----------------------------------------------/
/**
* 移动端判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int appSubmitBusinessData(AppSubmitDistributorApplyDto dto, BaseDistributor baseDistributor) {
int r = 0;
if (org.apache.commons.lang3.StringUtils.isBlank(dto.getDistributorSid())) {
r = 1;
} else {
if (baseDistributor != null) {
String businessTaskId = baseDistributor.getTaskId();
if (org.apache.commons.lang3.StringUtils.isBlank(businessTaskId) && org.apache.commons.lang3.StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean submitDistributor(AppSubmitDistributorApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String businessSid = dto.getDistributorSid();
BaseDistributor baseDistributor = fetchBySid(businessSid);
int r = appSubmitBusinessData(dto, baseDistributor);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//-----------判断开票信息是否完事是否可以提交------------------------
BaseInvoiceInfoVo invoiceInfoVo = getDistributorInvoiceInfo(businessSid).getData();
if (null == invoiceInfoVo) {
return rb.setMsg("请完善开票信息");
} else {
if (StringUtils.isBlank(invoiceInfoVo.getInvoPhone())
|| StringUtils.isBlank(invoiceInfoVo.getInvoBank())
|| StringUtils.isBlank(invoiceInfoVo.getInvoBankNum())
|| StringUtils.isBlank(invoiceInfoVo.getRegistNum())
|| StringUtils.isBlank(invoiceInfoVo.getRegistDetailAddress())
) {
return rb.setMsg("请完善开票信息");
}
}
//------------------------------------------------------------
BaseDistributor entity = fetchBySid(businessSid);
String orgSidPath = "";
if (org.apache.commons.lang3.StringUtils.isNotBlank(entity.getOrgSidPath())) {
orgSidPath = baseDistributor.getOrgSidPath();
} else {
SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData();
if (null != data) {
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
}
}
List<String> orgPathList = Arrays.asList(orgSidPath.split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (org.apache.commons.lang3.StringUtils.isBlank(sysOrganization.getManagerSid())) {
// return rb.setMsg("当前所在的组织机构未设置主管人员");
sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值
Map<String, Object> variables = BeanUtil.beanToMap(dto);
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
variables.put("businessSid", businessSid);
appMap.put("distributorSid", businessSid);
variables.put("app", appMap);
BaseDistributor baseDistributor1 = fetchBySid(businessSid);
String msgBusinessSid = baseDistributor1.getSid();
//用户的部门全路径sid
bv.setOrgSidPath(baseDistributor1.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(baseDistributor1.getCreateBySid());
bv.setFormVariables(variables);
String nextNodeUserSids_ = sysOrganization.getManagerSid();
bv.setNextNodeUserSids(nextNodeUserSids_);
//流程定义id
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
if (r == 1) {
//流程定义id
bv.setModelId(ProcDefEnum.DEALERFILINGAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(ufVo));
if (i > 0) {
//修改备案状态
BaseDistributor updateState = fetchBySid(businessSid);
updateState.setState(3);
baseMapper.updateById(updateState);
}
//==================================添加线程
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());
Future future1 = pool.submit(() -> {
//极光推送
// busVehicleApply.set(fetchBySid(businessSid))
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(msgBusinessSid);
messageFlowableQuery.setModuleName("经销商备案");
SysUserVo userVo = sysUserFeign.fetchBySid(baseDistributor1.getCreateBySid()).getData();
if (userVo != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
messageFlowableQuery.setMsgTitle("经销商备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (org.apache.commons.lang3.StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(baseDistributor.getTaskId());
bv.setTaskDefKey(baseDistributor.getNodeSid());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 分公司跨风控办理
*
* @param bv
* @return
*/
public ResultBean companyToDivisionOperate(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
BaseDistributor baseDistributor = fetchBySid(bv.getBusinessSid());
bv.setOrgSidPath(baseDistributor.getOrgSidPath());
Map<String, Object> variables = bv.getFormVariables();
baseDistributor = fetchBySid(bv.getBusinessSid());
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
flowProcessMapQuery.setProDefKey(baseDistributor.getProcDefId());
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
bv.setFormVariables(variables);
//=======================================
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
List<String> candidateGroups = voList.get(0).getCandidateGroups();
UserRoleQuery userRoleQuery = new UserRoleQuery();
userRoleQuery.setRoleSid(candidateGroups.get(0));
List<SysUserVo> sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData();
StringBuilder nextNodeUserSids = new StringBuilder();
if (sysUserVos.size() > 0) {
for (SysUserVo sysUserVo : sysUserVos) {
String sid = sysUserVo.getSid();
nextNodeUserSids.append(sid).append(",");
}
}
if (org.apache.commons.lang3.StringUtils.isBlank(nextNodeUserSids)) {
return rb.setMsg("下一环节暂无操作人员");
}
String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(","));
bv.setNextNodeUserSids(substring);
if (bv.getTaskId().equals(baseDistributor.getTaskId())) {
variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("distributorSid", bv.getBusinessSid());
variables.put("app", appMap);
//========================================
baseDistributor = fetchBySid(bv.getBusinessSid());
flowProcessMapQuery = new FlowProcessMapQuery();
flowProcessMapQuery.setProDefKey(baseDistributor.getProcDefId());
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
//=======================================
bv.setFormVariables(variables);
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.handleProsess(bv);
if (!resultBean1.getSuccess()) {
return rb.setMsg(resultBean1.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean1.getData()));
//极光推送
baseDistributor = fetchBySid(bv.getBusinessSid());
SysUserVo userVo = sysUserFeign.fetchBySid(baseDistributor.getCreateBySid()).getData();
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcInsId(baseDistributor.getProcInstId());
messageFlowVo.setProcDefId(baseDistributor.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("经销商备案");
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("经销商备案");
messageFeign.pushMessage(messageFlowableQuery);
return rb.success().setData(resultBean1.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean revokeProcess(BaseDistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
BaseDistributor baseDistributor = fetchBySid(query.getBusinessSid());
String businessTaskId = baseDistributor.getTaskId();
if (org.apache.commons.lang3.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 taskReject(BaseDistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
BaseDistributor baseDistributor = fetchBySid(businessSid);
if (baseDistributor == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = baseDistributor.getTaskId();
if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (org.apache.commons.lang3.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("distributorSid", businessSid);
variables.put("app", appMap);
flowTaskVo.setValues(variables);
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);
//极光推送
baseDistributor = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = baseDistributor.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(baseDistributor.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_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
SysUserVo userVo = sysUserFeign.fetchBySid(baseDistributor.getCreateBySid()).getData();
if (userVo != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
}
messageFlowableQuery.setMsgTitle("经销商备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean breakProcess(BaseDistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (org.apache.commons.lang3.StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
BaseDistributor baseDistributor = fetchBySid(query.getBusinessSid());
String businessTaskId = baseDistributor.getTaskId();
if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(baseDistributor.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 flowRecord(String procInsId) {
return flowTaskFeign.businessFlowRecord(procInsId);
}
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//根据业务sid查询排产信息
BaseDistributor baseDistributor = fetchBySid(query.getBusinessSid());
bv.setFormVariables(variables);
bv.setModelId(baseDistributor.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//根据业务sid查询排产信息
BaseDistributor baseDistributor = fetchBySid(query.getBusinessSid());
bv.setFormVariables(variables);
bv.setModelId(baseDistributor.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
}

3
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java

@ -1306,7 +1306,8 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
}
dataMap.put("newList", newList);
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vinDataHandover.ftl");
// InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vinDataHandover.ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vinHandoverData.ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverService.java

@ -235,7 +235,7 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
}
dataMap.put("newList", newList);
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vehicledatahandover.ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vinHandoverData.ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");

34
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/receiveVehicleConfirmation.ftl

@ -1410,10 +1410,18 @@
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
<w:t xml:space="preserve"> </w:t>
</w:r>
<#-- <w:r>-->
<#-- <w:t>_____</w:t>-->
<#-- </w:r>-->
<w:r>
<w:t>_____</w:t>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
<w:sz w:val="24"/>
<w:u w:val="single"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:rPr>
@ -1421,17 +1429,33 @@
</w:rPr>
<w:t xml:space="preserve"> 年</w:t>
</w:r>
<#-- <w:r>-->
<#-- <w:t>_____</w:t>-->
<#-- </w:r>-->
<w:r>
<w:t>____</w:t>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
<w:sz w:val="24"/>
<w:u w:val="single"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t xml:space="preserve"> 月</w:t>
<w:t xml:space="preserve"> 月</w:t>
</w:r>
<#-- <w:r>-->
<#-- <w:t>_____</w:t>-->
<#-- </w:r>-->
<w:r>
<w:t>___</w:t>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
<w:sz w:val="24"/>
<w:u w:val="single"/>
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:rPr>

1287
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/vinHandoverData.ftl

File diff suppressed because it is too large

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DisDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.distributor;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
@ -22,4 +23,7 @@ public class DisDetailsVo implements Vo {
private DisFileVo fileInfo;
private List<DisRecordVo> records = new ArrayList<>();
@JsonProperty("procInsId")
private String procInstId;
private String taskId;
}

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DisInitDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.distributor;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -21,6 +22,8 @@ public class DisInitDetailsVo implements Vo {
private Integer invoiceInfoState;
@ApiModelProperty(value = "文件信息状态")
private Integer fileInfoState;
@JsonProperty("procInsId")
private String procInstId;
private String taskId;
private List<DisInitRecordVo> records;
}

44
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DistributorFeign.java

@ -1,13 +1,20 @@
package com.yxt.anrui.terminal.api.autoservice.distributor;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.CompleteDistributorDto;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorFlowableQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorTaskQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.SubmitDistributorApplyDto;
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.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @Author dimengzhe
* @Date 2022/7/13 14:38
@ -85,5 +92,42 @@ public interface DistributorFeign {
@PostMapping("/saveDistributorFileInfo")
@ResponseBody
ResultBean saveDistributorFileInfo(@RequestBody DisFileDto dto);
//----------------------------------流程代码-------------------------------------------------
@ApiOperation("提交流程")
@PostMapping("/submitDistributorBaseInfo")
@ResponseBody
ResultBean submitDistributorBaseInfo(@Valid @RequestBody SubmitDistributorApplyDto dto);
@ApiOperation("办理")
@PutMapping("/agreeDistributorBaseInfo")
@ResponseBody
ResultBean agreeDistributorBaseInfo(@Valid @RequestBody CompleteDistributorDto dto);
@ApiOperation("从分公司到风控中心办理")
@PutMapping("/agreeCompanyToDivisionOperate")
@ResponseBody
ResultBean agreeCompanyToDivisionOperate(@Valid @RequestBody CompleteDistributorDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectDistributorBaseInfo")
@ResponseBody
ResultBean rejectDistributorBaseInfo(@Valid @RequestBody DistributorTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallDistributorBaseInfo")
@ResponseBody
ResultBean recallDistributorBaseInfo(@Valid @RequestBody DistributorTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopDistributorBaseInfo")
@ResponseBody
ResultBean stopDistributorBaseInfo(@Valid @RequestBody DistributorTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap DistributorFlowableQuery query);
}

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/DistributorVo.java

@ -33,7 +33,7 @@ public class DistributorVo implements Vo {
private String invoPhone;
@ApiModelProperty(value = "成立日期")
private String setUpTime;
// private String nodeState;
private boolean updateBtn;
}

33
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/CompleteDistributorDto.java

@ -0,0 +1,33 @@
package com.yxt.anrui.terminal.api.autoservice.distributor.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class CompleteDistributorDto implements Dto {
private static final long serialVersionUID = -1634177638238174363L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

21
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/DistributorFlowableQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.terminal.api.autoservice.distributor.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class DistributorFlowableQuery implements Query {
private static final long serialVersionUID = -5879668616710833830L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

44
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/DistributorTaskQuery.java

@ -0,0 +1,44 @@
package com.yxt.anrui.terminal.api.autoservice.distributor.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class DistributorTaskQuery implements Query {
private static final long serialVersionUID = -6061453269533691015L;
/**
* 终止驳回撤回
*/
@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")
@JsonProperty("procInsId")
private String instanceId;
}

22
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/distributor/flowable/SubmitDistributorApplyDto.java

@ -0,0 +1,22 @@
package com.yxt.anrui.terminal.api.autoservice.distributor.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/7/14 9:15
*/
@Data
public class SubmitDistributorApplyDto implements Dto {
@ApiModelProperty("distributorSid")
private String distributorSid;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
}

39
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/distributor/DistributorRest.java

@ -1,6 +1,10 @@
package com.yxt.anrui.terminal.biz.autoservice.distributor;
import com.yxt.anrui.terminal.api.autoservice.distributor.*;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.CompleteDistributorDto;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorFlowableQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorTaskQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.SubmitDistributorApplyDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -86,4 +90,39 @@ public class DistributorRest implements DistributorFeign {
public ResultBean saveDistributorFileInfo(DisFileDto dto) {
return distributorService.saveDistributorFileInfo(dto);
}
@Override
public ResultBean submitDistributorBaseInfo(SubmitDistributorApplyDto dto) {
return distributorService.submitDistributorBaseInfo(dto);
}
@Override
public ResultBean agreeDistributorBaseInfo(CompleteDistributorDto dto) {
return distributorService.agreeDistributorBaseInfo(dto);
}
@Override
public ResultBean agreeCompanyToDivisionOperate(CompleteDistributorDto dto) {
return distributorService.agreeCompanyToDivisionOperate(dto);
}
@Override
public ResultBean rejectDistributorBaseInfo(DistributorTaskQuery query) {
return distributorService.rejectDistributorBaseInfo(query);
}
@Override
public ResultBean recallDistributorBaseInfo(DistributorTaskQuery query) {
return distributorService.recallDistributorBaseInfo(query);
}
@Override
public ResultBean stopDistributorBaseInfo(DistributorTaskQuery query) {
return distributorService.stopDistributorBaseInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(DistributorFlowableQuery query) {
return distributorService.getFlowOperateTitle(query);
}
}

139
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/distributor/DistributorService.java

@ -4,7 +4,19 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.yxt.anrui.base.api.basedistributor.BaseDistributorFeign;
import com.yxt.anrui.base.api.basedistributor.app.*;
import com.yxt.anrui.base.api.basedistributor.flow.AppSubmitDistributorApplyDto;
import com.yxt.anrui.base.api.basedistributor.flow.BaseDistributorCompleteDto;
import com.yxt.anrui.base.api.basedistributor.flow.BaseDistributorTaskQuery;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.flow.GetNodeQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.*;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.CompleteDistributorDto;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorFlowableQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.DistributorTaskQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.flowable.SubmitDistributorApplyDto;
import com.yxt.anrui.terminal.config.CoverUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -13,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@ -27,6 +40,11 @@ public class DistributorService {
@Autowired
private BaseDistributorFeign baseDistributorFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<PagerVo<DistributorVo>> pageList(PagerQuery<DistributorQuery> pagerQuery) {
ResultBean<PagerVo<DistributorVo>> rb = ResultBean.fireFail();
@ -166,4 +184,125 @@ public class DistributorService {
}
return rb.success();
}
public ResultBean submitDistributorBaseInfo(SubmitDistributorApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
AppSubmitDistributorApplyDto submitDistributorApplyDto = new AppSubmitDistributorApplyDto();
BeanUtil.copyProperties(dto, submitDistributorApplyDto);
ResultBean resultBean = baseDistributorFeign.submitDistributor(submitDistributorApplyDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success();
}
public ResultBean agreeDistributorBaseInfo(CompleteDistributorDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
BaseDistributorCompleteDto baseDistributorCompleteDto = new BaseDistributorCompleteDto();
BeanUtil.copyProperties(dto, baseDistributorCompleteDto);
baseDistributorCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = baseDistributorFeign.complete(baseDistributorCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean agreeCompanyToDivisionOperate(CompleteDistributorDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
BaseDistributorCompleteDto baseDistributorCompleteDto = new BaseDistributorCompleteDto();
BeanUtil.copyProperties(dto, baseDistributorCompleteDto);
baseDistributorCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = baseDistributorFeign.companyToDivisionOperate(baseDistributorCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectDistributorBaseInfo(DistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDistributorTaskQuery taskQuery = new BaseDistributorTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = baseDistributorFeign.taskReject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallDistributorBaseInfo(DistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDistributorTaskQuery taskQuery = new BaseDistributorTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = baseDistributorFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopDistributorBaseInfo(DistributorTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDistributorTaskQuery taskQuery = new BaseDistributorTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = baseDistributorFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(DistributorFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
com.yxt.anrui.base.api.basedistributor.flow.GetNodeQuery getNodeQuery = new com.yxt.anrui.base.api.basedistributor.flow.GetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<com.yxt.anrui.base.api.basedistributor.flow.GetNodeVo>> getPreviousNodesForReject = baseDistributorFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<com.yxt.anrui.base.api.basedistributor.flow.GetNodeVo>> getNextNodesForSubmit = baseDistributorFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
}

Loading…
Cancel
Save