Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 2 years ago
parent
commit
42937a4e0a
  1. 4
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/ProcDefEnum.java
  2. 43
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyDetailsVo.java
  3. 36
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyDto.java
  4. 26
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyQuery.java
  5. 37
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyVo.java
  6. 33
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/flowable/CompletePaymentApplyDto.java
  7. 43
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/flowable/PaymentApplyTaskQuery.java
  8. 19
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/flowable/SubmitPaymentApplyDto.java
  9. 36
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDetailsVo.java
  10. 31
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseDto.java
  11. 26
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseQuery.java
  12. 31
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityReleaseVo.java
  13. 33
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/CompleteReleaseDto.java
  14. 43
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/ReleaseTaskQuery.java
  15. 20
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/flowable/SubmitReleaseDto.java
  16. 2
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDetailsVo.java
  17. 29
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyMappper.java
  18. 60
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyMappper.xml
  19. 104
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyRest.java
  20. 367
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyService.java
  21. 29
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.java
  22. 56
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseMapper.xml
  23. 107
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseRest.java
  24. 345
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/qualityrelease/QualityReleaseService.java
  25. 5
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.xml
  26. 7
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeRest.java
  27. 4
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeService.java

4
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/ProcDefEnum.java

@ -9,7 +9,9 @@ public enum ProcDefEnum {
SEALSONAPPLICATION("用章申请", "process_itrg7ohf:5:1340012"),
WAREHOUSINGPLEDGE("入库质押申请","process_2bquol0n:1:1367504"),
WAREHOUSINGPLEDGE("入库质押申请", "process_2bquol0n:1:1367504"),
QUALITYRELEASE("解质出库申请", "process_qx19k8q4:1:1367508"),
PAYMENTAPPLY("用款申请", "process_pn05vq6h:1:1367512"),
;
ProcDefEnum(String proDefName, String proDefId) {

43
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyDetailsVo.java

@ -0,0 +1,43 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class PaymentApplyDetailsVo {
private String sid;
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("用款企业")
private String enterpriseName;
@ApiModelProperty("用款企业sid")
private String enterpriseSid;
@ApiModelProperty("用款申请用途")
private String applyUse;
@ApiModelProperty("用款金额")
private String money;
@ApiModelProperty("回款凭证")
private List<String> voucherUrlList;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("申请日期")
private String createTime;
@JsonIgnore
private String voucherUrl;
}

36
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyDto.java

@ -0,0 +1,36 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class PaymentApplyDto {
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("用款企业")
private String enterpriseName;
@ApiModelProperty("用款企业sid")
private String enterpriseSid;
@ApiModelProperty("用款申请用途")
private String applyUse;
@ApiModelProperty("用款金额")
private String money;
@ApiModelProperty("回款凭证")
private List<String> voucherUrlList;
}

26
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyQuery.java

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

37
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApplyVo.java

@ -0,0 +1,37 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class PaymentApplyVo {
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("企业名称")
private String enterpriseName;
@ApiModelProperty("用款用途")
private String applyUse;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("用款金额")
private String money;
}

33
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/flowable/CompletePaymentApplyDto.java

@ -0,0 +1,33 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class CompletePaymentApplyDto {
@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/paymentapply/flowable/PaymentApplyTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class PaymentApplyTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

19
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/flowable/SubmitPaymentApplyDto.java

@ -0,0 +1,19 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply.flowable;
import com.yxt.supervise.enterprisecentre.api.paymentapply.PaymentApplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Data
public class SubmitPaymentApplyDto extends PaymentApplyDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

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

2
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDetailsVo.java

@ -30,4 +30,6 @@ public class WarehousingPledgeDetailsVo implements Vo {
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
private String createTime;
}

29
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyMappper.java

@ -0,0 +1,29 @@
package com.yxt.supervise.enterprisecentre.biz.paymentapply;
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.paymentapply.PaymentApply;
import com.yxt.supervise.enterprisecentre.api.paymentapply.PaymentApplyDetailsVo;
import com.yxt.supervise.enterprisecentre.api.paymentapply.PaymentApplyVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/22
**/
@Mapper
public interface PaymentApplyMappper extends BaseMapper<PaymentApply> {
IPage<PaymentApplyVo> selectPageVo(IPage<PaymentApply> page, @Param(Constants.WRAPPER)QueryWrapper<PaymentApply> qw);
PaymentApplyDetailsVo details(String sid);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> map);
}

60
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyMappper.xml

@ -0,0 +1,60 @@
<?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.paymentapply.PaymentApplyMappper">
<select id="selectPageVo" resultType="com.yxt.supervise.enterprisecentre.api.paymentapply.PaymentApplyVo">
select sid,
enterpriseName,
projectName,
createByName,
applyUse,
money,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState
from payment_apply
<where>
${ew.sqlSegment}
</where>
order by id desc
</select>
<select id="details" resultType="com.yxt.supervise.enterprisecentre.api.paymentapply.PaymentApplyDetailsVo">
select sid,
createBySid as userSid,
projectName,
projectSid,
enterpriseName,
enterpriseSid,
procInstId,
taskId,
createByName,
applyUse,
money,
voucherUrl,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime
from payment_apply
where sid = #{sid}
</select>
<select id="selectBySid" resultType="int">
select count(*)
from payment_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE payment_apply
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>

104
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyRest.java

@ -0,0 +1,104 @@
package com.yxt.supervise.enterprisecentre.biz.paymentapply;
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.paymentapply.*;
import com.yxt.supervise.enterprisecentre.api.paymentapply.flowable.CompletePaymentApplyDto;
import com.yxt.supervise.enterprisecentre.api.paymentapply.flowable.PaymentApplyTaskQuery;
import com.yxt.supervise.enterprisecentre.api.paymentapply.flowable.SubmitPaymentApplyDto;
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/22
**/
@RestController
@RequestMapping("v1/PaymentApply")
public class PaymentApplyRest {
@Autowired
private PaymentApplyService paymentApplyService;
@ApiOperation("新增或修改")
@PostMapping("/saveorUpdate")
ResultBean<String> saveorUpdate(@RequestBody PaymentApplyDto dto) {
return paymentApplyService.saveorUpdatePayment(dto);
}
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<PaymentApplyVo>> listPage(@RequestBody PagerQuery<PaymentApplyQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<PaymentApplyVo> pv = paymentApplyService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<PaymentApplyDetailsVo> details(@RequestParam("sid") String sid) {
return paymentApplyService.details(sid);
}
@ApiOperation("删除")
@DeleteMapping("/delete")
ResultBean delete(@RequestBody String[] sids) {
return paymentApplyService.delete(sids);
}
@ApiOperation("提交")
@PostMapping("/submit")
ResultBean submit(@RequestBody SubmitPaymentApplyDto dto) {
return paymentApplyService.submit(dto);
}
@ApiOperation("办理")
@PostMapping("/complete")
ResultBean complete(@RequestBody CompletePaymentApplyDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
return paymentApplyService.complete(bv);
}
@ApiOperation("获取上一环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@SpringQueryMap GetNodeQuery query) {
return paymentApplyService.getPreviousNodesForReject(query);
}
@ApiOperation("获取下一环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@SpringQueryMap GetNodeQuery query) {
return paymentApplyService.getNextNodesForSubmit(query);
}
@ApiOperation("驳回")
@PostMapping(value = "/taskReject")
public ResultBean taskReject(PaymentApplyTaskQuery query) {
return paymentApplyService.taskReject(query);
}
@ApiOperation("撤回")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(PaymentApplyTaskQuery query) {
return paymentApplyService.revokeProcess(query);
}
@ApiOperation("终止")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(PaymentApplyTaskQuery query) {
return paymentApplyService.breakProcess(query);
}
}

367
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/paymentapply/PaymentApplyService.java

@ -0,0 +1,367 @@
package com.yxt.supervise.enterprisecentre.biz.paymentapply;
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.config.component.FileUploadComponent;
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.paymentapply.*;
import com.yxt.supervise.enterprisecentre.api.paymentapply.flowable.PaymentApplyTaskQuery;
import com.yxt.supervise.enterprisecentre.api.paymentapply.flowable.SubmitPaymentApplyDto;
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/22
**/
@Service
public class PaymentApplyService extends MybatisBaseService<PaymentApplyMappper, PaymentApply> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
public ResultBean<String> saveorUpdatePayment(PaymentApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
PaymentApply paymentApply = new PaymentApply();
BeanUtil.copyProperties(dto, paymentApply, "sid");
String userSid = dto.getUserSid();
paymentApply.setCreateBySid(userSid);
//根据userSid查询申请人的名称
ResultBean<SysUserVo> resultBean = sysUserFeign.getUserByUserSid(userSid);
if (resultBean.getData() != null) {
SysUserVo sysUserVo = resultBean.getData();
String name = sysUserVo.getName();
paymentApply.setCreateByName(name);
}
List<String> voucherUrlList = dto.getVoucherUrlList();
voucherUrlList.removeAll(Collections.singleton(null));
if (!voucherUrlList.isEmpty()) {
String voucherUrl = String.join(",", voucherUrlList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
paymentApply.setVoucherUrl(voucherUrl);
}
baseMapper.insert(paymentApply);
sid = paymentApply.getSid();
} else {//修改
PaymentApply paymentApply = fetchBySid(sid);
if (paymentApply == null) {
return rb.setMsg("该用款申请不存在");
}
BeanUtil.copyProperties(dto, paymentApply, "sid");
List<String> voucherUrlList = dto.getVoucherUrlList();
voucherUrlList.removeAll(Collections.singleton(null));
if (!voucherUrlList.isEmpty()) {
String voucherUrl = String.join(",", voucherUrlList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
paymentApply.setVoucherUrl(voucherUrl);
}
baseMapper.updateById(paymentApply);
}
return rb.success().setData(sid);
}
public PagerVo<PaymentApplyVo> listPageVo(PagerQuery<PaymentApplyQuery> pagerQuery) {
PaymentApplyQuery query = pagerQuery.getParams();
QueryWrapper<PaymentApply> qw = new QueryWrapper<>();
if (query != null) {
qw.eq("createBySid", query.getUserSid());
//企业名称
if (StringUtils.isNotBlank(query.getEnterpriseName())) {
qw.like("enterpriseName", query.getEnterpriseName());
}
//项目名称
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<PaymentApply> page = PagerUtil.queryToPage(pagerQuery);
IPage<PaymentApplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<PaymentApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<PaymentApplyDetailsVo> details(String sid) {
ResultBean<PaymentApplyDetailsVo> rb = ResultBean.fireFail();
PaymentApply paymentApply = fetchBySid(sid);
if (paymentApply == null) {
return rb.setMsg("该用款申请不存在");
}
PaymentApplyDetailsVo paymentApplyDetailsVo = baseMapper.details(sid);
String voucherUrl = paymentApplyDetailsVo.getVoucherUrl();
if (StringUtils.isNotBlank(voucherUrl)) {
List<String> voucherUrlList = Arrays.asList(voucherUrl.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
voucherUrlList.removeAll(Collections.singleton(null));
if (!voucherUrlList.isEmpty()) {
paymentApplyDetailsVo.setVoucherUrlList(voucherUrlList);
}
}
return rb.success().setData(paymentApplyDetailsVo);
}
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(SubmitPaymentApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
PaymentApply paymentApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, paymentApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = saveorUpdatePayment(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.PAYMENTAPPLY.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) {
paymentApply = fetchBySid(businessSid);
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:procInstId");
}
bv.setTaskId(paymentApply.getTaskId());
bv.setTaskDefKey(paymentApply.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitPaymentApplyDto dto, PaymentApply paymentApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (paymentApply != null) {
String businessTaskId = paymentApply.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();
PaymentApply paymentApply = fetchBySid(businessSid);
if (paymentApply == null) {
return rb.setMsg("该用款申请不存在");
}
Map<String, Object> variables = new HashMap<>();
bv.setModelId(paymentApply.getProcDefId());
bv.setProjectSid(paymentApply.getProjectSid());
if (bv.getTaskId().equals(paymentApply.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);
PaymentApply paymentApply = fetchBySid(query.getBusinessSid());
bv.setModelId(paymentApply.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);
PaymentApply paymentApply = fetchBySid(query.getBusinessSid());
bv.setModelId(paymentApply.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(PaymentApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
PaymentApply paymentApply = fetchBySid(businessSid);
if (paymentApply == null) {
return rb.setMsg("该用款申请不存在");
}
String businessTaskId = paymentApply.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(PaymentApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isNotBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
PaymentApply paymentApply = fetchBySid(query.getBusinessSid());
String businessTaskId = paymentApply.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(PaymentApplyTaskQuery 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("请填写意见");
}
PaymentApply paymentApply = fetchBySid(query.getBusinessSid());
String businessTaskId = paymentApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(paymentApply.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("操作失败!提交的数据不一致!");
}
}

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("操作失败!提交的数据不一致!");
}
}

5
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.xml

@ -18,7 +18,7 @@
<select id="details"
resultType="com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDetailsVo">
select sid,
createBySid as userSid,
createBySid as userSid,
projectName,
projectSid,
warehouseName,
@ -26,7 +26,8 @@
procInstId,
taskId,
createByName,
goodsValue
goodsValue,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime
from warehousing_pledge
where sid = #{sid}
</select>

7
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeRest.java

@ -41,7 +41,7 @@ public class WarehousingPledgeRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<WarehousingPledgeVo>> listPage(PagerQuery<WarehousingPledgeQuery> pagerQuery) {
ResultBean<PagerVo<WarehousingPledgeVo>> listPage(@RequestBody PagerQuery<WarehousingPledgeQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WarehousingPledgeVo> pv = warehousingPledgeService.listPageVo(pagerQuery);
return rb.success().setData(pv);
@ -84,16 +84,19 @@ public class WarehousingPledgeRest {
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@SpringQueryMap GetNodeQuery query) {
return warehousingPledgeService.getNextNodesForSubmit(query);
}
@ApiOperation("驳回")
@PostMapping(value = "/taskReject")
public ResultBean taskReject(PledgeTaskQuery query) {
return warehousingPledgeService.taskReject(query);
}
@ApiOperation("撤回")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(PledgeTaskQuery query) {
return warehousingPledgeService.revokeProcess(query);
}
@ApiOperation("终止")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(PledgeTaskQuery query) {
@ -101,6 +104,4 @@ public class WarehousingPledgeRest {
}
}

4
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeService.java

@ -85,9 +85,7 @@ public class WarehousingPledgeService extends MybatisBaseService<WarehousingPled
WarehousingPledgeQuery query = pagerQuery.getParams();
QueryWrapper<WarehousingPledge> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("createBySid", query.getUserSid());
}
qw.eq("createBySid", query.getUserSid());
//仓库名称
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("warehouseName", query.getWarehouseName());

Loading…
Cancel
Save