Browse Source

解质出库申请相关接口

master
dimengzhe 2 years ago
parent
commit
2bcf524dd1
  1. 36
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDetailsVo.java
  2. 31
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDto.java
  3. 26
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseQuery.java
  4. 31
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseVo.java
  5. 33
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/CompleteReleaseDto.java
  6. 43
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/ReleaseTaskQuery.java
  7. 20
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/SubmitReleaseDto.java
  8. 29
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.java
  9. 56
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.xml
  10. 107
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseRest.java
  11. 345
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseService.java

36
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDetailsVo.java

@ -0,0 +1,36 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class QualityReleaseDetailsVo implements Vo {
private static final long serialVersionUID = -642659623561057840L;
private String sid;
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("申请日期")
private String createTime;
}

31
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDto.java

@ -0,0 +1,31 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class QualityReleaseDto implements Dto {
private static final long serialVersionUID = 622013483707410137L;
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
}

26
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseQuery.java

@ -0,0 +1,26 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class QualityReleaseQuery implements Query {
private static final long serialVersionUID = 804042611014032470L;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("创建时间开始")
private String createTimeStart;
@ApiModelProperty("创建时间结束")
private String createTimeEnd;
@ApiModelProperty("用户sid")
private String userSid;
}

31
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseVo.java

@ -0,0 +1,31 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class QualityReleaseVo {
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("创建时间")
private String createTime;
}

33
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/CompleteReleaseDto.java

@ -0,0 +1,33 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class CompleteReleaseDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@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;
}

43
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/ReleaseTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class ReleaseTaskQuery {
/**
* 终止驳回撤回
*/
@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;
}

20
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/SubmitReleaseDto.java

@ -0,0 +1,20 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class SubmitReleaseDto extends QualityReleaseDto {
private static final long serialVersionUID = 4647793236311896399L;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

29
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.java

@ -0,0 +1,29 @@
package com.yxt.supervise.enterprisecentre.biz.qualityrelease;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityRelease;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseDetailsVo;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Mapper
public interface QualityReleaseMapper extends BaseMapper<QualityRelease> {
IPage<QualityReleaseVo> selectPageVo(IPage<QualityRelease> page, @Param(Constants.WRAPPER)QueryWrapper<QualityRelease> qw);
QualityReleaseDetailsVo details(String sid);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> map);
}

56
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.xml

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.enterprisecentre.biz.qualityrelease.QualityReleaseMapper">
<select id="selectPageVo" resultType="com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseVo">
select sid,
warehouseName,
projectName,
createByName,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState
from quality_release
<where>
${ew.sqlSegment}
</where>
order by id desc
</select>
<select id="details" resultType="com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseDetailsVo">
select sid,
createBySid as userSid,
projectName,
projectSid,
warehouseName,
warehouseSid,
procInstId,
taskId,
createByName,
goodsValue,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime
from quality_release
where sid = #{sid}
</select>
<select id="selectBySid" resultType="int">
select count(*)
from quality_release
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE quality_release
SET nodeState=#{nodeState}
, taskDefKey=#{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>
</mapper>

107
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseRest.java

@ -0,0 +1,107 @@
package com.yxt.supervise.enterprisecentre.biz.qualityrelease;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.enterprisecentre.api.flowable.BusinessVariables;
import com.yxt.supervise.enterprisecentre.api.flowable.GetNodeQuery;
import com.yxt.supervise.enterprisecentre.api.flowable.GetNodeVo;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseDetailsVo;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseDto;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseQuery;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.QualityReleaseVo;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable.CompleteReleaseDto;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable.ReleaseTaskQuery;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable.SubmitReleaseDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@RestController
@RequestMapping("v1/QualityRelease")
public class QualityReleaseRest {
@Autowired
private QualityReleaseService qualityReleaseService;
@ApiOperation("新增或修改")
@PostMapping("/saveorUpdate")
ResultBean<String> saveorUpdate(@RequestBody QualityReleaseDto dto) {
return qualityReleaseService.saveorUpdateRelease(dto);
}
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<QualityReleaseVo>> listPage(PagerQuery<QualityReleaseQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<QualityReleaseVo> pv = qualityReleaseService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<QualityReleaseDetailsVo> details(@RequestParam("sid") String sid) {
return qualityReleaseService.details(sid);
}
@ApiOperation("删除")
@DeleteMapping("/delete")
ResultBean delete(@RequestBody String[] sids) {
return qualityReleaseService.delete(sids);
}
@ApiOperation("提交")
@PostMapping("/submit")
ResultBean submit(@RequestBody SubmitReleaseDto dto) {
return qualityReleaseService.submit(dto);
}
@ApiOperation("办理")
@PostMapping("/complete")
ResultBean complete(@RequestBody CompleteReleaseDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
return qualityReleaseService.complete(bv);
}
@ApiOperation("获取上一环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@SpringQueryMap GetNodeQuery query) {
return qualityReleaseService.getPreviousNodesForReject(query);
}
@ApiOperation("获取下一环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@SpringQueryMap GetNodeQuery query) {
return qualityReleaseService.getNextNodesForSubmit(query);
}
@ApiOperation("驳回")
@PostMapping(value = "/taskReject")
public ResultBean taskReject(ReleaseTaskQuery query) {
return qualityReleaseService.taskReject(query);
}
@ApiOperation("撤回")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(ReleaseTaskQuery query) {
return qualityReleaseService.revokeProcess(query);
}
@ApiOperation("终止")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(ReleaseTaskQuery query) {
return qualityReleaseService.breakProcess(query);
}
}

345
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseService.java

@ -0,0 +1,345 @@
package com.yxt.supervise.enterprisecentre.biz.qualityrelease;
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.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
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.supervise.enterprisecentre.api.flowable.*;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.*;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable.ReleaseTaskQuery;
import com.yxt.supervise.enterprisecentre.api.qualityrelease.flowable.SubmitReleaseDto;
import com.yxt.supervise.enterprisecentre.api.sealrecord.SysUserVo;
import com.yxt.supervise.enterprisecentre.biz.feign.FlowTaskFeign;
import com.yxt.supervise.enterprisecentre.biz.feign.FlowableFeign;
import com.yxt.supervise.enterprisecentre.biz.feign.SysUserFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Service
public class QualityReleaseService extends MybatisBaseService<QualityReleaseMapper, QualityRelease> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
public ResultBean<String> saveorUpdateRelease(QualityReleaseDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
QualityRelease qualityRelease = new QualityRelease();
BeanUtil.copyProperties(dto, qualityRelease, "sid");
String userSid = dto.getUserSid();
qualityRelease.setCreateBySid(userSid);
//根据userSid查询申请人的名称
ResultBean<SysUserVo> resultBean = sysUserFeign.getUserByUserSid(userSid);
if (resultBean.getData() != null) {
SysUserVo sysUserVo = resultBean.getData();
String name = sysUserVo.getName();
qualityRelease.setCreateByName(name);
}
baseMapper.insert(qualityRelease);
sid = qualityRelease.getSid();
} else {//修改
QualityRelease qualityRelease = fetchBySid(sid);
if (qualityRelease == null) {
return rb.setMsg("该解质出库申请不存在");
}
BeanUtil.copyProperties(dto, qualityRelease, "sid");
baseMapper.updateById(qualityRelease);
}
return rb.success().setData(sid);
}
public PagerVo<QualityReleaseVo> listPageVo(PagerQuery<QualityReleaseQuery> pagerQuery) {
QualityReleaseQuery query = pagerQuery.getParams();
QueryWrapper<QualityRelease> qw = new QueryWrapper<>();
if (query != null) {
qw.eq("createBySid", query.getUserSid());
//仓库名称
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("warehouseName", query.getWarehouseName());
}
//项目名称
if (StringUtils.isNotBlank(query.getProjectName())) {
qw.like("projectName", query.getProjectName());
}
//创建时间开始、创建时间结束
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
}
IPage<QualityRelease> page = PagerUtil.queryToPage(pagerQuery);
IPage<QualityReleaseVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<QualityReleaseVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<QualityReleaseDetailsVo> details(String sid) {
ResultBean<QualityReleaseDetailsVo> rb = ResultBean.fireFail();
QualityRelease qualityRelease = fetchBySid(sid);
if (qualityRelease == null) {
return rb.setMsg("该解质出库申请不存在");
}
QualityReleaseDetailsVo qualityReleaseDetailsVo = baseMapper.details(sid);
return rb.success().setData(qualityReleaseDetailsVo);
}
public ResultBean delete(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
delBySids(sids);
return rb.success();
}
public ResultBean submit(SubmitReleaseDto dto) {
ResultBean rb = ResultBean.fireFail();
QualityRelease qualityRelease = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, qualityRelease);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = saveorUpdateRelease(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setProjectSid(dto.getProjectSid());
if (r == 1) {
bv.setModelId(ProcDefEnum.QUALITYRELEASE.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
return voResultBean;
}
if (r == 2) {
qualityRelease = fetchBySid(businessSid);
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:procInstId");
}
bv.setTaskId(qualityRelease.getTaskId());
bv.setTaskDefKey(qualityRelease.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitReleaseDto dto, QualityRelease qualityRelease) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (qualityRelease != null) {
String businessTaskId = qualityRelease.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;
}
/**
* 更新流程相关的状态
*
* @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();
QualityRelease qualityRelease = fetchBySid(businessSid);
if (qualityRelease == null) {
return rb.setMsg("该解质出库申请不存在");
}
Map<String, Object> variables = new HashMap<>();
bv.setModelId(qualityRelease.getProcDefId());
bv.setProjectSid(qualityRelease.getProjectSid());
if (bv.getTaskId().equals(qualityRelease.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
QualityRelease qualityRelease = fetchBySid(query.getBusinessSid());
bv.setModelId(qualityRelease.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);
}
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
QualityRelease qualityRelease = fetchBySid(query.getBusinessSid());
bv.setModelId(qualityRelease.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 taskReject(ReleaseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
QualityRelease qualityRelease = fetchBySid(businessSid);
if (qualityRelease == null) {
return rb.setMsg("该解质出库申请不存在");
}
String businessTaskId = qualityRelease.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<>();
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);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(ReleaseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isNotBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
QualityRelease qualityRelease = fetchBySid(query.getBusinessSid());
String businessTaskId = qualityRelease.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(ReleaseTaskQuery 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("请填写意见");
}
QualityRelease qualityRelease = fetchBySid(query.getBusinessSid());
String businessTaskId = qualityRelease.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(qualityRelease.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("操作失败!提交的数据不一致!");
}
}
Loading…
Cancel
Save