Browse Source

移动端开票申请流程

master
dimengzhe 3 years ago
parent
commit
50167e3ca4
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplication.java
  2. 45
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  3. 23
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  4. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/SubmitFinBillApplicationDto.java
  5. 38
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillCompleteDto.java
  6. 21
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillNodeQuery.java
  7. 26
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillNodeVo.java
  8. 45
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillTaskQuery.java
  9. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/AnruiFinApplication.java
  10. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml
  11. 42
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  12. 367
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  13. 54
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java
  14. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java
  15. 14
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedVo.java
  16. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedDto.java
  17. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedQuery.java
  18. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedTaskQuery.java
  19. 50
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java
  20. 123
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplication.java

@ -87,4 +87,6 @@ public class FinBillApplication extends BaseEntity {
private String nodeState;
@ApiModelProperty(value = "是否延迟开票")
private Integer isDelayBill;
private String taskId;
}

45
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java

@ -25,18 +25,21 @@
*********************************************************/
package com.yxt.anrui.fin.api.finbillapplication;
import com.yxt.anrui.fin.api.flow.FlowTaskVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillCompleteDto;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeQuery;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillTaskQuery;
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.ApiParam;
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;
import java.util.Map;
import java.util.List;
/**
* Project: anrui-fin(开票申请管理) <br/>
@ -77,16 +80,16 @@ public interface FinBillApplicationFeign {
/*************************流程管理接口********************************/
@ApiOperation("列表提交开票申请审批流程")
/* @ApiOperation("列表提交开票申请审批流程")
@PostMapping("/submitFinBillApplicationPageList")
public ResultBean submitFinBillApplicationPageList(@RequestBody @Valid SubmitFinBillApplicationPageListDto dto);
*/
@ApiOperation("提交开票申请审批流程")
@PostMapping("/submitFinBillApplication")
public ResultBean submitFinBillApplication(@RequestBody @Valid SubmitFinBillApplicationDto dto);
@ApiOperation(value = "办理(同意)")
/* @ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
@ -110,6 +113,30 @@ public interface FinBillApplicationFeign {
@ApiOperation(value = "流程历史流转记录" )
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord( @ApiParam(value = "流程实例id")@PathVariable(value = "procInsId")String procInsId,
@ApiParam(value = "目前没用")@PathVariable(value = "deployId")String deployId);
@ApiParam(value = "目前没用")@PathVariable(value = "deployId")String deployId);*/
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody FinBillCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<FinBillNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap FinBillNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<FinBillNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap FinBillNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody FinBillTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody FinBillTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody FinBillTaskQuery query);
}

23
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java

@ -25,6 +25,10 @@
*********************************************************/
package com.yxt.anrui.fin.api.finbillapplication;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillCompleteDto;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeQuery;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillTaskQuery;
import com.yxt.anrui.fin.api.flow.FlowTaskVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -67,10 +71,10 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
return rb.setMsg("接口anrui-fin/finbillapplication/fetchDetailsBySid无法访问");
}
@Override
/*@Override
public ResultBean submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
return null;
}
}*/
@Override
public ResultBean submitFinBillApplication(SubmitFinBillApplicationDto dto) {
@ -78,27 +82,32 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
}
@Override
public ResultBean complete(Map<String, Object> variables) {
public ResultBean complete(FinBillCompleteDto query) {
return null;
}
@Override
public ResultBean<List<FinBillNodeVo>> getPreviousNodesForReject(FinBillNodeQuery query) {
return null;
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean<List<FinBillNodeVo>> getNextNodesForSubmit(FinBillNodeQuery query) {
return null;
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean taskReject(FinBillTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean revokeProcess(FinBillTaskQuery query) {
return null;
}
@Override
public ResultBean flowRecord(String procInsId, String deployId) {
public ResultBean breakProcess(FinBillTaskQuery query) {
return null;
}
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/SubmitFinBillApplicationDto.java

@ -15,8 +15,9 @@ import lombok.Data;
@Data
public class SubmitFinBillApplicationDto extends FinBillApplicationDto {
@ApiModelProperty("业务sid")
private String businessSid;
private static final long serialVersionUID = 315255996193475787L;
/* @ApiModelProperty("业务sid")
private String businessSid;*/
@ApiModelProperty("意见")
private String comment;

38
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillCompleteDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.fin.api.finbillapplication.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class FinBillCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
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;
}

21
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillNodeQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.fin.api.finbillapplication.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:04
* @Description
*/
public class FinBillNodeQuery implements Query {
private static final long serialVersionUID = 9117613683840483366L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

26
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.fin.api.finbillapplication.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:03
* @Description
*/
@Data
public class FinBillNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

45
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/flowable/FinBillTaskQuery.java

@ -0,0 +1,45 @@
package com.yxt.anrui.fin.api.finbillapplication.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:06
* @Description
*/
@Data
public class FinBillTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/AnruiFinApplication.java

@ -50,7 +50,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
})
@EnableFeignClients(basePackages = {"com.yxt.anrui.crm","com.yxt.anrui.fin",
"com.yxt.anrui.portal", "com.yxt.anrui.buscenter",
"com.yxt.anrui.base", "com.yxt.anrui.flowable"})
"com.yxt.anrui.base", "com.yxt.anrui.flowable","com.yxt.messagecenter"})
public class AnruiFinApplication {
public static void main(String[] args) {

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml

@ -25,6 +25,9 @@
<if test="procInsId != null and procInsId != ''">
, procInstSid=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

42
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java

@ -25,8 +25,14 @@
*********************************************************/
package com.yxt.anrui.fin.biz.finbillapplication;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.finbillapplication.*;
import com.yxt.anrui.fin.api.flow.FlowTaskVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillCompleteDto;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeQuery;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillTaskQuery;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -35,7 +41,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.List;
/**
* Project: anrui-fin(开票申请管理) <br/>
@ -83,10 +89,10 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
return rb.success().setData(vo);
}
@Override
/*@Override
public ResultBean submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
return finBillApplicationService.submitFinBillApplicationPageList(dto);
}
}*/
@Override
public ResultBean submitFinBillApplication(SubmitFinBillApplicationDto dto) {
@ -94,27 +100,35 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
}
@Override
public ResultBean complete(Map<String, Object> variables) {
return finBillApplicationService.complete(variables);
public ResultBean complete(FinBillCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.FINBILLAPPLICATION.getProDefId());
return finBillApplicationService.complete(bv);
}
@Override
public ResultBean<List<FinBillNodeVo>> getPreviousNodesForReject(FinBillNodeQuery query) {
return finBillApplicationService.getPreviousNodesForReject(query);
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
return finBillApplicationService.revokeProcess(userSid, businessSid, flowTaskVo);
public ResultBean<List<FinBillNodeVo>> getNextNodesForSubmit(FinBillNodeQuery query) {
return finBillApplicationService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
return finBillApplicationService.taskReject(businessSid, flowTaskVo);
public ResultBean taskReject(FinBillTaskQuery query) {
return finBillApplicationService.taskReject(query);
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
return finBillApplicationService.breakProcess(businessSid, flowTaskVo);
public ResultBean revokeProcess(FinBillTaskQuery query) {
return finBillApplicationService.revokeProcess(query);
}
@Override
public ResultBean flowRecord(String procInsId, String deployId) {
return finBillApplicationService.flowRecord(procInsId, deployId);
public ResultBean breakProcess(FinBillTaskQuery query) {
return finBillApplicationService.breakProcess(query);
}
}

367
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -26,6 +26,7 @@
package com.yxt.anrui.fin.biz.finbillapplication;
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.yxt.anrui.base.api.commonappendix.CommonAppendixDto;
@ -39,6 +40,9 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModelFeign;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPriceFeign;
import com.yxt.anrui.fin.api.finbillapplication.*;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeQuery;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillTaskQuery;
import com.yxt.anrui.fin.api.finbillapplicationpublic.FinBillApplicationPublic;
import com.yxt.anrui.fin.api.finbillapplicationpublic.FinBillApplicationPublicDto;
import com.yxt.anrui.fin.api.finbillfile.FinBillFile;
@ -46,39 +50,39 @@ import com.yxt.anrui.fin.api.finbillfile.FinBillFileVo;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicle;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo;
import com.yxt.anrui.fin.api.flow.FlowTaskVo;
import com.yxt.anrui.fin.biz.finbillapplicationpublic.FinBillApplicationPublicService;
import com.yxt.anrui.fin.biz.finbillfile.FinBillFileService;
import com.yxt.anrui.fin.biz.finbillvehicle.FinBillVehicleService;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
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.sysformlink.SysFormLinkDto;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkTypeEnum;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
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.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.common.base.config.component.FileUploadComponent;
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.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.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-fin(开票申请管理) <br/>
@ -124,6 +128,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysUserFeign sysUserFeign;
private QueryWrapper<FinBillApplication> createQueryWrapper(FinBillApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -441,7 +449,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
public ResultBean submitFinBillApplication(SubmitFinBillApplicationDto dto) {
/*public ResultBean submitFinBillApplication(SubmitFinBillApplicationDto dto) {
String orgSid = checkUserOrg(dto.getStaffSid());
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String businessSid = resultBean.getData();
@ -464,7 +472,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
String proDefId = ProcDefEnum.SEALAPPLY.getProDefId();
ResultBean resultBean1 = null;
//ResultBean resultBean1 = flowableFeign.businessStart(ProcDefEnum.FINBILLAPPLICATION.getProDefId(), dto.getUserSid(), variables);
/*if (resultBean1.getSuccess() && resultBean1.getData() != null) {
if (resultBean1.getSuccess() && resultBean1.getData() != null) {
Map<String, String> map = (Map<String, String>) resultBean1.getData();
//更新业务表中的流程状态
Map<String, Object> paramMap = new HashMap<>();
@ -474,7 +482,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
paramMap.put("procInsId", map.get("procInsId"));
paramMap.put("taskDefKey", map.get("taskDefKey"));
updateFlowFiled(paramMap);
}*/
}
return resultBean1;
} else { // 驳回到发起人后再次提交
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
@ -484,7 +492,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return complete(variables);
}
}
*/
/**
* 检查用户是否设置部门
*
@ -533,10 +541,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
* @param variables
* @return
*/
public ResultBean complete(Map<String, Object> variables) {
/* public ResultBean complete(Map<String, Object> variables) {
BusinessVariables bv = BusinessVariables.builder().build();
//bv.setDetailUrl("");
//bv.setHandleUrl("");
bv.setFormVariables(variables);
ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowTask> resultBean = flowTaskFeign.businessComplete(bv);
if (!resultBean.getSuccess()) {
@ -568,7 +574,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
paramMap.put("taskDefKey", taskDefKey);
updateFlowFiled(paramMap);
return resultBean;
}
}*/
/**
* 更新流程相关的状态
@ -588,7 +594,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
/* public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setUserSid(userSid);
@ -601,17 +607,12 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
/* if (incomingSourceRef.contains("start")) {
paramMap.put("nodeState", SysFormLinkFlowStateEnum.WITHDRAW.getState());
paramMap.put("taskDefKey", taskDefKey);
paramMap.put("flowState", SysFormLinkFlowStateEnum.WITHDRAW.getCode());
} else {*/
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
/*}*/
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
updateFlowFiled(paramMap);
return resultBean;
}
}*/
/**
* 驳回
@ -620,7 +621,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
* @param flowTaskVo
* @return
*/
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
/* public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(fl);
@ -634,12 +635,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
paramMap.put("sid", businessSid);
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
/* if (incomingSourceRef.contains("start")) {*/
paramMap.put("flowState", nodeState);
/* }*/
paramMap.put("flowState", nodeState);
updateFlowFiled(paramMap);
return resultBean;
}
}*/
/**
* 终止流程
@ -648,7 +647,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
/* public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean resultBean = flowTaskFeign.breakProcess(fl);
@ -659,10 +658,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
paramMap.put("sid", businessSid);
paramMap.put("nodeState", String.valueOf(resultBean.getData()));
paramMap.put("taskDefKey", "Event_end");
paramMap.put("flowState", String.valueOf(resultBean.getData()));
paramMap.put("flowState", String.valueOf(resultBean.getData()));
updateFlowFiled(paramMap);
return resultBean;
}
}*/
/**
* 流程历史流转记录
@ -675,7 +674,285 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return flowTaskFeign.businessFlowRecord(procInsId);
}
public ResultBean submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
FinBillApplication finBillApplication = 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);
if (bv.getTaskId().equals(finBillApplication.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.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())) {
//极光推送
finBillApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(finBillApplication.getProcDefId());
ufVo.setProcInsId(finBillApplication.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("开票申请");
messageFlowableQuery.setMsgContent(finBillApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("业务中心");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<FinBillNodeVo>> getPreviousNodesForReject(FinBillNodeQuery query) {
ResultBean<List<FinBillNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.FINBILLAPPLICATION.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<FinBillNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), FinBillNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<FinBillNodeVo>> getNextNodesForSubmit(FinBillNodeQuery query) {
ResultBean<List<FinBillNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.FINBILLAPPLICATION.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<FinBillNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), FinBillNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(FinBillTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
FinBillApplication finBillApplication = fetchBySid(businessSid);
if (finBillApplication == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = finBillApplication.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);
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);
//极光推送
finBillApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = finBillApplication.getProcInstSid();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(finBillApplication.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("开票申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(finBillApplication.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(finBillApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("业务中心");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(FinBillTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FinBillApplication finBillApplication = fetchBySid(query.getBusinessSid());
String businessTaskId = finBillApplication.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(FinBillTaskQuery 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("请填写意见");
}
FinBillApplication finBillApplication = fetchBySid(query.getBusinessSid());
String businessTaskId = finBillApplication.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
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 submitFinBillApplication(SubmitFinBillApplicationDto 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();
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, finBillApplication);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveOrUpdateDto(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//创建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
bv.setOrgSidPath(orgSidPath);
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
//流程定义id
bv.setModelId(ProcDefEnum.FINBILLAPPLICATION.getProDefId());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
finBillApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("开票申请");
messageFlowableQuery.setMsgContent(finBillApplication.getCreateByName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgTitle("业务中心");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return voResultBean;
}
if (r == 2) {
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(finBillApplication.getTaskId());
bv.setTaskDefKey(finBillApplication.getNodeSid());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private synchronized int submitBusinessData(SubmitFinBillApplicationDto dto, FinBillApplication finBillApplication) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (finBillApplication != null) {
String businessTaskId = finBillApplication.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 submitFinBillApplicationPageList(SubmitFinBillApplicationPageListDto dto) {
ResultBean rb = ResultBean.fireFail();
FinBillApplicationDetailsVo finBillApplicationDetailsVo = fetchDetailsVoBySid(dto.getSid());
String oneBillMoney = finBillApplicationDetailsVo.getOneBillMoney();
@ -697,18 +974,6 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (StringUtils.isBlank(dto.getTaskId())) { // 新提交
String proDefId = ProcDefEnum.SEALAPPLY.getProDefId();
ResultBean resultBean1 = null;
//ResultBean resultBean1 = flowableFeign.businessStart(ProcDefEnum.FINBILLAPPLICATION.getProDefId(), dto.getUserSid(), variables);
/* if (resultBean1.getSuccess() && resultBean1.getData() != null) {
Map<String, String> map = (Map<String, String>) resultBean1.getData();
//更新业务表中的流程状态
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", dto.getSid());
paramMap.put("procDefId", ProcDefEnum.SEALAPPLY.getProDefId());
paramMap.put("nodeState", map.get("nodeState"));
paramMap.put("procInsId", map.get("procInsId"));
paramMap.put("taskDefKey", map.get("taskDefKey"));
updateFlowFiled(paramMap);
}*/
return resultBean1;
} else { // 驳回到发起人后再次提交
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
@ -717,5 +982,5 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
variables.put("userSid", dto.getUserSid());
return complete(variables);
}
}
}*/
}

54
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java

@ -0,0 +1,54 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedDto;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedQuery;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:23
* @Description
*/
@FeignClient(
contextId = "anrui-terminal-Invoiced",
name = "anrui-terminal",
path = "/autoservice/v1/invoiced",
fallback = InvoicedFeignFallback.class)
public interface InvoicedFeign {
@ApiOperation("办理")
@PutMapping("/agreeInvoicedInfo")
@ResponseBody
ResultBean agreeInvoicedInfo(@RequestBody InvoicedDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectInvoicedInfo")
@ResponseBody
ResultBean rejectInvoicedInfo(@RequestBody InvoicedTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallInvoicedInfo")
@ResponseBody
ResultBean recallInvoicedInfo(@RequestBody InvoicedTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopInvoicedInfo")
@ResponseBody
ResultBean stopInvoicedInfo(@RequestBody InvoicedTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap InvoicedQuery query);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:24
* @Description
*/
@Component
public class InvoicedFeignFallback {
}

14
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedVo.java

@ -0,0 +1,14 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:23
* @Description
*/
@Data
public class InvoicedVo implements Vo {
private static final long serialVersionUID = -6840041901529334038L;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced.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;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:31
* @Description
*/
@Data
public class InvoicedDto implements Dto {
private static final long serialVersionUID = 3407061622782750121L;
@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;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:43
* @Description
*/
@Data
public class InvoicedQuery implements Query {
private static final long serialVersionUID = 8705069258932362556L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/flowable/InvoicedTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced.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;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:38
* @Description
*/
@Data
public class InvoicedTaskQuery implements Query {
private static final long serialVersionUID = 924360726254030039L;
/**
* 终止驳回撤回
*/
@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;
}

50
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java

@ -0,0 +1,50 @@
package com.yxt.anrui.terminal.biz.autoservice.invoiced;
import com.yxt.anrui.terminal.api.autoservice.invoiced.InvoicedFeign;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedDto;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedQuery;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/9/6 16:20
* @Description
*/
@Api(tags = "开票申请")
@Controller
@RequestMapping("/autoservice/v1/invoiced")
public class InvoicedRest implements InvoicedFeign {
@Autowired
private InvoicedService invoicedService;
@Override
public ResultBean agreeInvoicedInfo(InvoicedDto dto) {
return invoicedService.agreeInvoicedInfo(dto);
}
@Override
public ResultBean rejectInvoicedInfo(InvoicedTaskQuery query) {
return invoicedService.rejectInvoicedInfo(query);
}
@Override
public ResultBean recallInvoicedInfo(InvoicedTaskQuery query) {
return invoicedService.recallInvoicedInfo(query);
}
@Override
public ResultBean stopInvoicedInfo(InvoicedTaskQuery query) {
return invoicedService.stopInvoicedInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(InvoicedQuery query) {
return invoicedService.getFlowOperateTitle(query);
}
}

123
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java

@ -0,0 +1,123 @@
package com.yxt.anrui.terminal.biz.autoservice.invoiced;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationFeign;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillCompleteDto;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeQuery;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillNodeVo;
import com.yxt.anrui.fin.api.finbillapplication.flowable.FinBillTaskQuery;
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.terminal.api.autoservice.invoiced.flowable.InvoicedDto;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedQuery;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.InvoicedTaskQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/6 16:21
* @Description
*/
@Service
public class InvoicedService {
@Autowired
private FinBillApplicationFeign finBillApplicationFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean agreeInvoicedInfo(InvoicedDto 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();
FinBillCompleteDto finBillCompleteDto = new FinBillCompleteDto();
BeanUtil.copyProperties(dto, finBillCompleteDto);
finBillCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = finBillApplicationFeign.complete(finBillCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectInvoicedInfo(InvoicedTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FinBillTaskQuery finBillTaskQuery = new FinBillTaskQuery();
BeanUtil.copyProperties(query, finBillTaskQuery);
ResultBean resultBean = finBillApplicationFeign.taskReject(finBillTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallInvoicedInfo(InvoicedTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FinBillTaskQuery finBillTaskQuery = new FinBillTaskQuery();
BeanUtil.copyProperties(query, finBillTaskQuery);
ResultBean resultBean = finBillApplicationFeign.revokeProcess(finBillTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopInvoicedInfo(InvoicedTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FinBillTaskQuery finBillTaskQuery = new FinBillTaskQuery();
BeanUtil.copyProperties(query, finBillTaskQuery);
ResultBean resultBean = finBillApplicationFeign.breakProcess(finBillTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(InvoicedQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
FinBillNodeQuery getNodeQuery = new FinBillNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<FinBillNodeVo>> getPreviousNodesForReject = finBillApplicationFeign.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<FinBillNodeVo>> getNextNodesForSubmit = finBillApplicationFeign.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