Commit fc53b550 authored by 赵啸非's avatar 赵啸非

一件事统一办

parent e729697c
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 审核状态
* @author
*
*/
public enum ApproveStateEnum implements IBaseEnum {
UN_AUDIT(1, "未审核", SysConstains.STYLE_DEFAULT),
AUDITING(2, "审核中", SysConstains.STYLE_PRIMARY),
AUDIT_FIN(3, "审核完成", SysConstains.STYLE_PRIMARY);
private int value;
private String desc;
private String style;
ApproveStateEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
public String getDesc() {
return desc;
}
public String getStyle()
{
return style;
}
public static ApproveStateEnum getByValue(int value) {
for (ApproveStateEnum examStatus : ApproveStateEnum.values()) {
if (examStatus.getValue() == value) {
return examStatus;
}
}
return null;
}
/**
* 获取Map集合
* @param eItem 不包含项
* @return
*/
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (ApproveStateEnum item : ApproveStateEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import java.io.Serializable;
/**
* 审批模式
*
* @author: zxfei
* @date: 2021/8/26 9:58
*/
public enum CommentTypeEnum implements Serializable {
SP("审批"),
QS("签收"),
FQS("反签收"),
BH("驳回"),
CH("撤回"),
ZC("暂存"),
XTZX("系统执行"),
TJ("提交"),
CXTJ("重新提交"),
SPJS("审批结束"),
LCZZ("流程终止"),
WP("委派"),
ZH("知会"),
ZY("转阅"),
YY("已阅"),
ZB("转办"),
SQ("授权"),
SPBJQ("审批并加签"),
HJQ("后加签"),
QJQ("前加签"),
CFTG("重复跳过"),
XT("协同"),
PS("评审");
private String name;//名称
/**
* 通过type获取Msg
*
* @param type
* @return
* @Description:
*/
public static String getEnumMsgByType(String type) {
for (CommentTypeEnum e : CommentTypeEnum.values()) {
if (e.toString().equals(type)) {
return e.name;
}
}
return "";
}
CommentTypeEnum(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.mortals.xhx.common.code;
import java.io.Serializable;
/**
* 流程的状态
*
* @author: zxfei
* @date: 2021/8/26 9:58
*/
public enum ProcessStatusEnum implements Serializable {
SPZ("审批中"),
BH("驳回"),
CH("撤回"),
JQ("加签"),
ZC("暂存"),
ZB("转办"),
BJ("办结"),
ZZ("终止");
private String msg;
private String type;
ProcessStatusEnum(String msg) {
this.msg = msg;
}
/**
* 通过type获取Msg
*
* @param type
* @return
* @Description:
*/
public static String getEnumMsgByType(String type) {
for (ProcessStatusEnum e : ProcessStatusEnum.values()) {
if (e.toString().equals(type)) {
return e.msg;
}
}
return "";
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.io.Serializable;
/**
* 启动参数
*
* @author: zxfei
* @date: 2021/8/26 9:59
*/
public enum StartVariableEnum implements Serializable {
USER("user", "人员信息"),
UDEPT("udept", "人员部门变量"),
UCOMPANY("ucompany", "人员公司变量"),
COMPANY_ROLE("company", "公司角色层级审批领导"),
MATRIX_COMPANY_ROLE("mcompany", "矩阵公司角色"),
MATRIX_DEPT_ROLE("mdept", "矩阵部门角色"),
FORM("form", "表单"),
LCDB("lcdb", "流程底表"),
LINE("line", "汇报线");
private String code;
private String msg;
StartVariableEnum(String code, String msg) {
this.msg = msg;
this.code = code;
}
/**
* 通过code获取Msg
*
* @param code
* @return
* @Description:
*/
public static String getEnumMsgByCode(String code) {
for (StartVariableEnum e : StartVariableEnum.values()) {
if (e.getCode().equals(code)) {
return e.msg;
}
}
return "";
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
...@@ -79,4 +79,10 @@ public final class BusizParams { ...@@ -79,4 +79,10 @@ public final class BusizParams {
*/ */
public static String SYS_PARAM_FILE_DOMAIN = "file_domain"; public static String SYS_PARAM_FILE_DOMAIN = "file_domain";
/**
* 流程参数
*/
public static String SYS_PARAM_FLOW_KEY = "oneThingKey";
} }
...@@ -18,11 +18,18 @@ public class FlowNextPdu implements Serializable { ...@@ -18,11 +18,18 @@ public class FlowNextPdu implements Serializable {
private String type; private String type;
/**
* 数据类型(fixed,dynamc两种)
*/
private String dateType;
private String vars; private String vars;
//指定人员 private String name;
private List<SysUser> userList;
private String assignee;
private List<String> candidateUsers;
//指定租 private List<String> candidateGroups;
private List<SysRole> roleList;
} }
...@@ -20,34 +20,54 @@ import java.util.Date; ...@@ -20,34 +20,54 @@ import java.util.Date;
@NoArgsConstructor @NoArgsConstructor
@ApiModel("流程定义") @ApiModel("流程定义")
public class FlowProcDefPdu implements Serializable { public class FlowProcDefPdu implements Serializable {
/**
* 流程id
*/
@ApiModelProperty("流程id") @ApiModelProperty("流程id")
private String id; private String id;
/**
* 流程名称
*/
@ApiModelProperty("流程名称") @ApiModelProperty("流程名称")
private String name; private String name;
/**
* 流程key
*/
@ApiModelProperty("流程key") @ApiModelProperty("流程key")
private String key; private String key;
/**
* 流程分类
*/
@ApiModelProperty("流程分类") @ApiModelProperty("流程分类")
private String category; private String category;
/**
* 配置表单名称
*/
@ApiModelProperty("配置表单名称") @ApiModelProperty("配置表单名称")
private String formName; private String formName;
/**
* 配置表单id
*/
@ApiModelProperty("配置表单id") @ApiModelProperty("配置表单id")
private Long formId; private Long formId;
/**
* 版本
*/
@ApiModelProperty("版本") @ApiModelProperty("版本")
private int version; private int version;
/**
* 部署id
*/
@ApiModelProperty("部署ID") @ApiModelProperty("部署ID")
private String deploymentId; private String deploymentId;
/**
* 流程定义状态: 1:激活 , 2:中止
*/
@ApiModelProperty("流程定义状态: 1:激活 , 2:中止") @ApiModelProperty("流程定义状态: 1:激活 , 2:中止")
private int suspensionState; private int suspensionState;
/**
* 部署时间
*/
@ApiModelProperty("部署时间") @ApiModelProperty("部署时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date deploymentTime; private Date deploymentTime;
......
package com.mortals.xhx.common.pdu.flow; package com.mortals.xhx.common.pdu.flow;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.xhx.feign.AttachmentEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
...@@ -99,7 +100,13 @@ public class FlowTaskPdu implements Serializable { ...@@ -99,7 +100,13 @@ public class FlowTaskPdu implements Serializable {
@ApiModelProperty("流程变量信息") @ApiModelProperty("流程变量信息")
private Map<String, Object> values; private Map<String, Object> values;
private String userId; @ApiModelProperty("附件信息")
private List<AttachmentEntity> attachmentList;
/**
* 用户名称
*/
private String userCode;
@ApiModelProperty("审批人") @ApiModelProperty("审批人")
private String assignee; private String assignee;
...@@ -110,7 +117,7 @@ public class FlowTaskPdu implements Serializable { ...@@ -110,7 +117,7 @@ public class FlowTaskPdu implements Serializable {
@ApiModelProperty("审批组") @ApiModelProperty("审批组")
private List<String> candidateGroups; private List<String> candidateGroups;
@ApiModelProperty("租户Id") @ApiModelProperty("业务平台标识")
private String tenantId; private String platformSn;
} }
package com.mortals.xhx.common.pdu.flow;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Getter
@Setter
@ApiModel("工作流任务相关-返回参数")
public class FlowTaskVars implements Serializable {
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("节点")
private String targetKey;
private String name;
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers;
@ApiModelProperty("审批组")
private List<String> candidateGroups;
@ApiModelProperty("el表达式")
private String el;
@ApiModelProperty("是否多实例并行,0否1是")
private Integer multiple;
private List<String> assigneeList;
public static void main(String[] args) {
String temp="[{\"el\":\"${assignee1}\",\"multiple\":0,\"name\":\"行政审批\",\"targetKey\":\"Activity_04yxg8r\",\"assignee\":\"finegirl\",\"assigneeName\":\"张三\"},{\"el\":\"${assignee2}\",\"multiple\":0,\"name\":\"经理审批\",\"targetKey\":\"Activity_0m7qwz2\",\"assignee\":\"zhaoxiaofei\",\"assigneeName\":\"赵啸非\"},{\"el\":\"assigneeList\",\"multiple\":1,\"name\":\"领导会签\",\"targetKey\":\"Activity_1uv5dhe\",\"assigneeList\":[\"zhang1\",\"zhangbao\"],\"assigneeName\":\"张1,张宝,\"}]\n";
List<FlowTaskVars> list = JSON.parseObject(temp, new TypeReference<List<FlowTaskVars>>() {
});
//构建提交参数
JSONObject jsonObject = new JSONObject();
for(FlowTaskVars var:list){
//判断是否并联
if(var.getMultiple()==0){
//key
String el = var.getEl();
String key = el.substring(2, el.length() - 1);
//值
String assignee = var.getAssignee();
jsonObject.put(key,assignee);
}else{
//key
String key = var.getEl();
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(var.getAssigneeList());
jsonObject.put(key,jsonArray);
}
}
System.out.println(JSON.toJSONString(jsonObject));
}
}
...@@ -36,6 +36,8 @@ public class FlowTaskVoPdu implements Serializable { ...@@ -36,6 +36,8 @@ public class FlowTaskVoPdu implements Serializable {
@ApiModelProperty("节点") @ApiModelProperty("节点")
private String targetKey; private String targetKey;
private String name;
@ApiModelProperty("流程变量信息") @ApiModelProperty("流程变量信息")
private Map<String, Object> values; private Map<String, Object> values;
...@@ -51,4 +53,11 @@ public class FlowTaskVoPdu implements Serializable { ...@@ -51,4 +53,11 @@ public class FlowTaskVoPdu implements Serializable {
@ApiModelProperty("租户Id") @ApiModelProperty("租户Id")
private String tenantId; private String tenantId;
@ApiModelProperty("el表达式")
private String el;
@ApiModelProperty("是否多实例并行,0否1是")
private Integer multiple;
} }
package com.mortals.xhx.feign;
import lombok.Data;
/**
* 附件实体类
*
* @author: zxfei
* @date: 2021/8/26 17:46
* @description:
**/
@Data
public class AttachmentEntity {
/**
* 附件名称
*/
protected String name;
/**
* 附件描述
*/
protected String desc;
/**
* 附件类型
*/
protected String type;
/**
* 附件下载地址
*/
protected String url;
}
package com.mortals.xhx.feign;
import com.mortals.xhx.common.code.CommentTypeEnum;
import com.mortals.xhx.common.code.ProcessStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 流程执行过程中的基本参数Req
*
* @author: zxfei
* @date: 2021/8/26 9:55
*/
@Data
public abstract class BaseTaskReq implements Serializable {
/**********************任务相关的参数**********************/
/**
* 任务id 必填
*/
@ApiModelProperty(value = "任务id", required = true)
private String taskId;
/**
* 流程实例的id
*/
@ApiModelProperty(value = "流程实例的id", required = true)
private String processInstanceId;
/**
* 节点id 选填
*/
@ApiModelProperty(value = "节点id")
private String activityId;
/**
* 节点名称 选填
*/
@ApiModelProperty(value = "节点名称")
private String activityName;
/**
* 流程实例状态 必填
*/
@ApiModelProperty(value = "流程实例状态", required = true)
private ProcessStatusEnum processStatusEnum;
/**********************审批意见的参数**********************/
/**
* 操作人code 必填
*/
@ApiModelProperty(value = "操作人code", required = true)
private String userCode;
/**
* 审批意见 必填
*/
@ApiModelProperty(value = "审批意见", required = true)
private String message;
/**
* 审批意见类型 必填
*/
@ApiModelProperty(value = "审批意见类型", required = true)
private CommentTypeEnum commentTypeEnum;
}
package com.mortals.xhx.feign.api;
import com.mortals.xhx.common.pdu.sms.SmsSendReq;
import com.mortals.xhx.feign.IFeign;
import com.mortals.framework.exception.AppException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @描述
* @创建人 zxfei
* @创建时间 2021/1/19
* @修改人和其它信息
*/
@FeignClient(name = "${application.register.service-name:coops-gate-api/m}")
public interface IApiGateFeign extends IFeign {
/**
* 短信发送
* @param
* @return
* @throws AppException
*/
@PostMapping(value = "/sms/send")
String smsSend(SmsSendReq smsSendReq) throws AppException;
}
package com.mortals.xhx.feign.flowable; package com.mortals.xhx.feign.flowable;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu;
import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.feign.IFeign;
import io.swagger.annotations.ApiParam; import com.mortals.xhx.feign.req.BaseFlowReq;
import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.req.DefinitionReq;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.DefinitionDeployRsp;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/** /**
* 工作流流程定义 * 工作流程访问
*
* @author: zxfei
* @date: 2021/8/31 9:34
*/ */
@FeignClient(name = "${application.register.service-name:government-workflow}") @FeignClient(name = "${application.register.service-name:workflow-manager/m}")
public interface IApiFlowDefinitionFeign extends IFeign { public interface IApiFlowDefinitionFeign extends IFeign {
/** /**
* 获取列表 * 流程部署列表查询
* *
* @param userId * @param req
* @param pageInfo
* @return * @return
*/ */
@PostMapping("/flowable/def/list") @PostMapping("/api/definition/deploy/list")
ApiRespPdu<Result<FlowProcDefPdu>> list(@RequestParam(value = "userId") String userId, ApiResp<DefinitionDeployRsp> deploymentsList(@RequestBody BaseFlowReq<BaseQuery> req);
@RequestParam(value = "tenantId") String tenantId,
@RequestBody PageInfo pageInfo);
/**
* 保存流程设计器内的xml文件
*
* @param name
* @param category
* @param bpmnXml
* @return
*/
@PostMapping("/flowable/def/save")
ApiRespPdu<String> save(@RequestParam(required = false) String name,
@RequestParam(required = false) String category,
@RequestParam(required = false) String bpmnXml,
@RequestParam(required = false) String tenantId);
/** /**
* 启动流程 * 激活或挂起流程定义(已经部署)
* *
* @param procDefId 部署的流程 Id,来自 ACT_RE_PROCDEF * @param req
* @param userId 业务发起人
* @param dataKey 业务数据 Key,业务键,一般为表单数据的 ID,仅作为表单数据与流程实例关联的依据
* @param variables 变量集合,json对象
* @return * @return
* @throws AppException
*/ */
@PostMapping("/flowable/def/start") @PostMapping("/api/definition/deploy/updateState")
ApiRespPdu<String> start(@RequestParam(value = "procDefId") String procDefId, ApiResp<String> updateState(@RequestBody DefinitionReq req);
@RequestParam(value = "tenantId") String tenantId,
@RequestParam(value = "userId") String userId,
@RequestParam(value = "dataKey") String dataKey,
@RequestBody Map<String, Object> variables);
/** /**
* 激活或挂起流程定义 * 激活或挂起流程定义(已经部署)
* *
* @param state 状态"1:激活,2:挂起" * @param req
* @param deployId 流程部署ID
* @return * @return
*/ */
@PostMapping(value = "/flowable/def/updateState") @PostMapping("/api/definition/deploy/readXml")
ApiRespPdu<String> updateState(@RequestParam Integer state, ApiResp<String> readXml(@RequestBody DefinitionReq req);
@RequestParam String deployId,
@RequestParam String tenantId);
/**
* 删除流程
*
* @param deployId 流程部署ID
* @return
*/
@PostMapping(value = "/flowable/def/delete")
ApiRespPdu<String> delete(@RequestParam String deployId);
/**
* 读取xml文件
*
* @param deployId 流程定义id
*/
@PostMapping("/flowable/def/readXml")
ApiRespPdu<String> readXml(@RequestParam(value = "deployId") String deployId);
/**
* 根据流程定义 ID 获取流程图 返回BASE64图片
*
* @param deployId 流程定义id
* @return base64图片数据
* @throws AppException
*/
@PostMapping("/flowable/def/readImage")
ApiRespPdu<String> readImage(@RequestParam("deployId") String deployId);
}
}
\ No newline at end of file
package com.mortals.xhx.feign.flowable; package com.mortals.xhx.feign.flowable;
import com.mortals.xhx.common.pdu.api.ApiRespPdu; import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskVoPdu;
import com.mortals.xhx.common.pdu.flow.FlowViewerPdu; import com.mortals.xhx.common.pdu.flow.FlowViewerPdu;
import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.feign.IFeign;
import com.mortals.xhx.feign.processinstance.ProcessCommonReq;
import com.mortals.xhx.feign.processinstance.ProcessDeleteReq;
import com.mortals.xhx.feign.processinstance.ProcessStopReq;
import com.mortals.xhx.feign.processinstance.ProcessUpdateStateReq;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.runtime.StartProcessInstanceReq;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -13,66 +20,72 @@ import java.util.List; ...@@ -13,66 +20,72 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 工作流流程实例管理 * 工作流流程实例
* *
* @author: finegirl * @author: finegirl
* @date: 2021/7/31 19:52 * @date: 2021/7/31 19:52
*/ */
@FeignClient(name = "${application.register.service-name:government-workflow}") @FeignClient(name = "${application.register.service-name:workflow-manager/m}")
public interface IApiFlowInstanceFeign extends IFeign { public interface IApiFlowInstanceFeign extends IFeign {
/** /**
* 根据流程定义id启动流程实例 * 启动流程
* *
* @param deployId 流程定义id * @param req
* @param variables 变量集合,json对象
* @return * @return
*/ */
@PostMapping("/flowable/instance/startById") @PostMapping("/api/flow/process/start")
ApiRespPdu<String> startById(@RequestParam(value = "deployId") String deployId, ApiResp<String> processStart(@RequestBody StartProcessInstanceReq req);
@RequestBody Map<String, Object> variables);
/** /**
* 激活或挂起流程实例 * 激活或挂起流程实例
* *
* @param state 1:激活,2:挂起 * @param req
* @param instanceId 流程实例ID
* @return * @return
*/ */
@PostMapping("/flowable/instance/updateState") @PostMapping("/api/flow/process/updateState")
ApiRespPdu<String> updateState(@RequestParam Integer state, ApiResp updateState(@RequestBody ProcessUpdateStateReq req);
@RequestParam String instanceId);
/** /**
* 止流程 * 止流程
* *
* @param processId 流程ID * @param req
* @return * @return
*/ */
@RequestMapping("/flowable/instance/stopProcess") @PostMapping("/api/flow/process/stop")
ApiRespPdu<String> stopProcess(@RequestParam(value = "processId") String processId); ApiResp<String> stopProcess(@RequestBody ProcessStopReq req);
/** /**
* 删除流程实例 * 删除流程
* *
* @param instanceId 流程实例ID * @param req
* @param deleteReason 删除原因
* @return * @return
*/ */
@PostMapping("/flowable/instance/deleteProcess") @PostMapping("/api/flow/process/delete")
ApiRespPdu<String> deleteProcess(@RequestParam String instanceId, ApiResp<String> deleteProcess(@RequestBody ProcessDeleteReq req);
@RequestParam String deleteReason);
/** /**
* 获取流程执行过程
* *
* @param procInsId * @param req
* @return * @return
*/ */
@PostMapping("/flowable/instance/getFlowViewer") @PostMapping("/api/flow/process/getFlowViewer")
ApiRespPdu<List<FlowViewerPdu>> getFlowViewer(String procInsId); ApiResp<List<FlowViewerPdu>> getFlowViewer(@RequestBody ProcessCommonReq req);
/**
* 根据流程实例ID 获取当前流程运行情况 返回BASE64图片
*
* @param req
* @return base64图片数据
*/
@PostMapping("/api/flow/process/getImage")
ApiResp<String> processReadImage(@RequestBody ProcessCommonReq req);
} @PostMapping("/api/flow/process/getAllProcessInstanceEl")
ApiResp<List<FlowTaskVoPdu>> getAllProcessInstanceEl(@RequestBody StartProcessInstanceReq req);
}
\ No newline at end of file
package com.mortals.xhx.feign.flowable; package com.mortals.xhx.feign.flowable;
import com.mortals.framework.exception.AppException; import com.mortals.xhx.common.pdu.flow.FlowNextPdu;
import com.mortals.framework.model.PageInfo; import com.mortals.xhx.common.pdu.flow.FlowUserTaskPdu;
import com.mortals.framework.model.Result;
import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.flow.*;
import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.feign.IFeign;
import io.swagger.annotations.ApiOperation; import com.mortals.xhx.feign.req.BaseFlowReq;
import io.swagger.annotations.ApiParam; import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.TaskRsp;
import com.mortals.xhx.feign.task.*;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,184 +21,154 @@ import java.util.Map; ...@@ -20,184 +21,154 @@ import java.util.Map;
* @author: finegirl * @author: finegirl
* @date: 2021/7/31 19:52 * @date: 2021/7/31 19:52
*/ */
@FeignClient(name = "${application.register.service-name:government-workflow}") @FeignClient(name = "${application.register.service-name:workflow-manager/m}")
public interface IApiFlowTaskFeign extends IFeign { public interface IApiFlowTaskFeign extends IFeign {
/** /**
* 我发起的流程 * 我发起的流程
* *
* @param userId * @param req
* @param pageInfo
* @return
*/
@PostMapping("/flowable/task/myProcess")
ApiRespPdu<Result<FlowTaskPdu>> myProcess(@RequestParam(value = "userId") String userId,
@RequestParam(value = "tenantId") String tenantId,
@RequestBody PageInfo pageInfo);
/**
* 撤回流程
*
* @param flowTaskPdu
* @return * @return
*/ */
@PostMapping("/flowable/task/revokeProcess") @PostMapping("/api/flow/task/myProcess")
ApiRespPdu<String> revokeProcess(@RequestBody FlowTaskPdu flowTaskPdu); ApiResp<TaskRsp> myProcess(@RequestBody BaseFlowReq<BaseQuery> req);
/**
* 取消申请
*
* @param flowTaskVoPdu
* @return
*/
@PostMapping("/flowable/task/stopProcess")
ApiRespPdu<String> stopProcess(@RequestBody FlowTaskVoPdu flowTaskVoPdu);
/** /**
* 获取待办列表 * 获取待办列表
* 获取的列表需要和业务系统数据合并 * 获取的列表需要和业务系统数据合并
* *
* @param userId * @param req
* @param pageInfo
* @return * @return
*/ */
@PostMapping("/flowable/task/todoList") @PostMapping("/api/flow/task/todoList")
ApiRespPdu<Result<FlowTaskPdu>> todoList(@RequestParam(value = "userId") String userId, ApiResp<TaskRsp> todoList(@RequestBody BaseFlowReq<BaseQuery> req);
@RequestParam(value = "tenantId") String tenantId,
@RequestBody PageInfo pageInfo);
/** /**
* 获取已办任务 * 获取已办任务
* 获取的列表需要和业务系统数据合并 * 获取的列表需要和业务系统数据合并
* *
* @param userId * @param req
* @param pageInfo
* @return * @return
*/ */
@PostMapping("/flowable/task/finishedList") @PostMapping("/api/flow/task/finishedList")
ApiRespPdu<Result<FlowTaskPdu>> finishedList(@RequestParam(value = "userId") String userId, ApiResp<TaskRsp> finishedList(@RequestBody BaseFlowReq<BaseQuery> req);
@RequestParam(value = "tenantId") String tenantId,
@RequestBody PageInfo pageInfo);
/** /**
* 流程历史流转记录 * 流程历史流转记录
* *
* @param procInsId * @param req
* @param deployId
* @return * @return
*/ */
@PostMapping("/flowable/task/flowRecord") @PostMapping("/api/flow/task/flowRecord")
ApiRespPdu<List<FlowTaskPdu>> flowRecord(@RequestParam(required = false) String procInsId, ApiResp<TaskRsp> flowRecord(@RequestBody BaseFlowReq<BaseQuery> req);
@RequestParam(required = false) String deployId);
/** /**
* 获取流程变量 * 获取流程变量
* *
* @param taskId * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/processVariables") @PostMapping("/api/flow/task/processVariables")
ApiRespPdu<Map<String, Object>> processVariables(@RequestParam String taskId); ApiResp<Map<String, Object>> processVariables(@RequestBody CommonTaskReq req);
/** /**
* 审批任务 * 撤回流程
* *
* @param flowTaskVoPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/complete") @PostMapping("/api/flow/task/revokeProcess")
ApiRespPdu<String> complete(@RequestBody FlowTaskVoPdu flowTaskVoPdu); ApiResp revokeProcess(@RequestBody RevokeTaskReq req);
/** /**
* 驳回任务 * 取消申请
* *
* @param flowTaskVoPdu * @param commonTaskReq
* @return * @return
*/ */
@PostMapping("/flowable/task/reject") @PostMapping("/api/flow/task/stopProcess")
ApiRespPdu<String> reject(@RequestBody FlowTaskVoPdu flowTaskVoPdu); ApiResp stopProcess(@RequestBody CommonTaskReq commonTaskReq);
/** /**
* 退回任务 * 审批任务
* *
* @param flowTaskVoPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/return") @PostMapping("/api/flow/task/complete")
ApiRespPdu<String> taskReturn(@RequestBody FlowTaskVoPdu flowTaskVoPdu); ApiResp<String> complete(@RequestBody CompleteTaskReq req);
/** /**
* 删除任务 * 驳回任务
* *
* @param flowTaskPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/delete") @PostMapping("/api/flow/task/reject")
ApiRespPdu<String> delete(@RequestBody FlowTaskVoPdu flowTaskPdu); ApiResp<String> reject(@RequestBody RejectTaskReq req);
/** /**
* 认领/签收任务 * 退回任务
* *
* @param flowTaskPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/claim") @PostMapping("/api/flow/task/return")
ApiRespPdu<String> claim(@RequestBody FlowTaskVoPdu flowTaskPdu); ApiResp<String> taskReturn(@RequestBody ReturnTaskReq req);
/** /**
* 取消认领/签收任务 * 删除任务
* *
* @param flowTaskPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/unClaim") @PostMapping("/api/flow/task/delete")
ApiRespPdu<String> unClaim(@RequestBody FlowTaskVoPdu flowTaskPdu); ApiResp<String> delete(@RequestBody DeleteTaskReq req);
/** /**
* 委派任务 * 委派任务
* *
* @param flowTaskPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/delegate") @PostMapping("/api/flow/task/delegate")
ApiRespPdu<String> delegateTask(@RequestBody FlowTaskVoPdu flowTaskPdu); ApiResp<String> delegateTask(@RequestBody DelegateTaskReq req);
/** /**
* 转办任务 * 转办任务
* *
* @param flowTaskPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/assign") @PostMapping("/api/flow/task/assign")
ApiRespPdu<String> assignTask(@RequestBody FlowTaskVoPdu flowTaskPdu); ApiResp<String> assignTask(@RequestBody TurnTaskReq req);
/** /**
* 获取所有可回退的节点 * 获取所有可回退的节点
* *
* @param flowTaskVoPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/findReturnTaskList") @PostMapping("/api/flow/task/findReturnTaskList")
ApiRespPdu<List<FlowUserTaskPdu>> findReturnTaskList(@RequestBody FlowTaskVoPdu flowTaskVoPdu); ApiResp<List<FlowUserTaskPdu>> findReturnTaskList(@RequestBody CommonTaskReq req);
/** /**
* 获取下一节点 * 获取下一节点
* *
* @param flowTaskVoPdu * @param req
* @return * @return
*/ */
@PostMapping("/flowable/task/nextFlowNode") @PostMapping("/api/flow/task/nextFlowNode")
ApiRespPdu<FlowNextPdu> getNextFlowNode(@RequestBody FlowTaskVoPdu flowTaskVoPdu); ApiResp<FlowNextPdu> nextFlowNode(@RequestBody CommonTaskReq req);
} }
package com.mortals.xhx.feign.processinstance;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 实例查询Query
*
* @author: zxfei
* @date: 2021/8/24 20:42
*/
@Data
public class InstanceQueryParamsReq {
/**
* 用户的工号 必填
*/
@ApiModelProperty(value = "用户的工号")
private String userCode;
/**
* 平台应用标识 必填
*/
@ApiModelProperty(value = "平台应用标识")
private String platformSn;
/**
* 开始时间
*/
@ApiModelProperty(value = "开始时间")
private String startTime;
/**
* 结束时间
*/
@ApiModelProperty(value = "结束时间")
private String endTime;
/**
* 业务系统的id
*/
@ApiModelProperty(value = "业务系统的id")
private String businessKey;
/**
* 排序字段 1 升序 0 降序
*/
@ApiModelProperty(value = "排序字段 1 升序 0 降序")
private Integer orderFlag = 0;
/**
* 流程实例ID
*/
@ApiModelProperty(value = "流程实例ID")
private String processInstanceId;
/**
* 流程定义KEY
*/
@ApiModelProperty(value = "流程定义KEY")
private String processDefinitionKey;
/**
* 流程状态
*/
@ApiModelProperty(value = "流程状态")
private String processType;
/**
* 发起人工号集合
*/
@ApiModelProperty(value = "发起人工号集合")
private String startedUserIds;
}
package com.mortals.xhx.feign.processinstance;
import lombok.Data;
/**
* 实例通用请求
* @author: zxfei
* @date: 2021/8/26 10:42
* @description:
**/
@Data
public class ProcessCommonReq {
/**
* 处理人Id
*/
private String userCode;
/**
* 流程实例id
*/
private String processInstanceId;
}
package com.mortals.xhx.feign.processinstance;
import lombok.Data;
/**
* @author: zxfei
* @date: 2021/8/26 10:42
* @description:
**/
@Data
public class ProcessDeleteReq {
/**
* 处理人Id 必填
*/
private String userCode;
/**
* 流程实例id 必填
*/
private String processInstanceId;
/**
* 删除原因 必填
*/
private String deleteReason;
}
package com.mortals.xhx.feign.processinstance;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 流程实例返回数据对象
*
* @author: zxfei
* @date: 2021/8/26 10:31
*/
@Data
@ApiModel(value = "ProcessInstanceInfo" , description = "查询流程实例返回对象")
public class ProcessInstanceInfo implements Serializable {
private static final long serialVersionUID = -5038515846218363889L;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 流程定义id
*/
private String processDefinitionId;
/**
* 流程定义的名称
*/
private String processDefinitionName;
/**
* 流程定义的key
*/
private String processDefinitionKey;
/**
* 流程定义类型
*/
private Integer processDefinitionType;
/**
* 流程定义的版本号
*/
private Integer processDefinitionVersion;
/**
* 分类编号
*/
private String categoryCode;
/**
* 部署id
*/
private String deploymentId;
/**
* 业务表单的id
*/
private String businessKey;
/**
* 办理人
*/
private String assignees;
/**
* 应用id
*/
private String appId;
/**
* 平台应用标识
*/
private String appSn;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 挂起状态 1激活 2挂起 @see ProcessInstanceStatusEnum
*/
private Integer pState;
/**
* 删除标记
*/
private String reason;
/**
* 创建人的id
*/
private String startedUserId;
/**
* 创建人的名称
*/
private String startedUserName;
/**
* 创建人ids
*/
private List<String> startedUserIds;
/**
* 默认所有的
*/
private Boolean finishFlag = false;
/**
* 流程实例状态 @see {@link ProcessStatusEnum}
*/
private String processStatus;
/**
* 流程实例状态名称
*/
private String processStatusName;
/**
* 表单的名称
*/
private String formName;
/**
* 流程创建人姓名
*/
private String startPersonName;
/**
* 流程的创建时间
*/
@JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
private String startTimeStr;
private String endTimeStr;
/**
* 系统名称
*/
private String appName;
/**
* 业务系统的url
*/
private String businessUrl;
/**
* 总耗时
*/
private String totalTime;
/**
* 当前办理人(当前流程是多人办理)
*/
// private List<ApproverVo> currentAssignees;
public ProcessInstanceInfo() {
}
public ProcessInstanceInfo(String processInstanceId, String businessKey, String formName, String startedUserId) {
this.processInstanceId = processInstanceId;
this.businessKey = businessKey;
this.formName = formName;
this.startedUserId = startedUserId;
}
}
package com.mortals.xhx.feign.processinstance;
import lombok.Data;
/**
* @author: zxfei
* @date: 2021/8/26 10:42
* @description:
**/
@Data
public class ProcessStopReq {
/**
* 处理人Id 必填
*/
private String userCode;
/**
* 流程实例id
*/
private String processInstanceId;
}
package com.mortals.xhx.feign.processinstance;
import lombok.Data;
/**
* @author: zxfei
* @date: 2021/8/26 10:42
* @description:
**/
@Data
public class ProcessUpdateStateReq {
/**
* 处理人Id 必填
*/
private String userCode;
/**
* 流程实例id 必填
*/
private String processInstanceId;
/**
* 激活或挂起流程实例(1:激活,2:挂起) 必填
*/
private Integer suspensionState;
}
package com.mortals.xhx.feign.req;
import lombok.Data;
/**
* 工作流请求头信息
*
* @author: zxfei
* @date: 2021/8/25 9:50
*/
@Data
public class ApiReq<T> {
/**
* 业务平台标识(唯一)
*/
private String tenantId;
/**
* 实体数据()
*/
private T entity;
}
package com.mortals.xhx.feign.req;
import com.mortals.xhx.common.pdu.api.Page;
import lombok.Data;
/**
* 流程通用Req
*
* @author: zxfei
* @date: 2021/8/24 20:40
*/
@Data
public class BaseFlowReq<T> {
/**
* 分页对象
*/
private Page page;
/**
* 列表查询对象
*/
private T query;
}
package com.mortals.xhx.feign.req;
import lombok.Data;
/**
* 基础Query
*
* @author: zxfei
* @date: 2021/8/24 20:42
*/
@Data
public class BaseQuery {
/**
* 业务平台标识(唯一)
*/
private String platformSn;
/**
* 业务平台用户
*/
private String userCode;
/**
* 流程实例ID
*/
private String processInstanceId;
/**
* 流程部署ID
*/
private String deployId;
}
package com.mortals.xhx.feign.req;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* 工作流定义实体请求类
*
* @author: zxfei
* @date: 2021/8/25 10:29
*/
@Getter
@Setter
public class DefinitionReq implements Serializable {
/**
* 业务系统标识
*/
private String platformSn;
/**
* 流程部署ID
*/
private String deployId;
/**
* 流程部署状态(1:激活,2:挂起)
*/
private Integer state;
}
package com.mortals.xhx.feign.req;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 工作流任务相关-请求参数
*
* @author: zxfei
* @date: 2021/8/25 11:13
*/
@Getter
@Setter
public class FlowTaskReq implements Serializable {
/**
* 任务Id
*/
private String taskId;
/**
* 用户Id
*/
private String userId;
/**
* 任务意见
*/
private String comment;
/**
* 流程实例Id
*/
private String instanceId;
/**
* 节点
*/
private String targetKey;
/**
* 流程变量信息
*/
private Map<String, Object> values;
/**
* 审批人
*/
private String assignee;
/**
* 候选人
*/
private List<String> candidateUsers;
/**
* 候选审批组
*/
private List<String> candidateGroups;
}
package com.mortals.xhx.feign.rsp;
import com.mortals.xhx.common.code.YesNoEnum;
import lombok.Data;
/**
* @author karlhoo
*/
@Data
public class ApiResp<T> {
/**
* 结果编码
*/
private int code;
/**
* 结果描述
*/
private String msg;
/**
* 响应数据
*/
private T data;
public boolean isSuccess() {
if (YesNoEnum.YES.getValue() == code) {
return true;
}
return false;
}
}
package com.mortals.xhx.feign.rsp;
import com.mortals.xhx.common.pdu.api.Page;
import lombok.Data;
import java.util.List;
/**
* 流程部署列表(业务端可发起的实例)
*
* @author: zxfei
* @date: 2021/8/24 20:51
*/
@Data
public class DefinitionDeployRsp {
private Page page;
private List<FlowProcDef> list;
}
package com.mortals.xhx.feign.rsp;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 流程定义类
*
* @author: zxfei
* @date: 2021/8/24 22:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FlowProcDef implements Serializable {
/**
* 流程定义id
*/
private String id;
/**
* 流程名称
*/
private String name;
/**
* 流程key
*/
private String key;
/**
* 流程key
*/
private String processDefinitionKey;
/**
* 流程分类
*/
private String category;
/**
* 版本
*/
private int version;
/**
* 流程部署id
*/
private String deployId;
/**
* 流程部署id
*/
private String deploymentId;
/**
* 流程定义状态: 1:激活 , 2:中止
*/
private int suspensionState;
/**
* 部署时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date deploymentTime;
}
package com.mortals.xhx.feign.rsp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 流程启动响应类
*
* @author: zxfei
* @date: 2021/8/24 22:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FlowProcStartInfo implements Serializable {
/**
* 流程实例id
*/
private String proInstanceId;
}
package com.mortals.xhx.feign.rsp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.xhx.common.pdu.flow.FlowCommentPdu;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 工作流任务相关-返回参数
*
* @author: zxfei
* @date: 2021/8/25 11:13
*/
@Getter
@Setter
public class FlowTaskInfo implements Serializable {
/**
* 任务编号
*/
private String taskId;
/**
* 任务名称
*/
private String taskName;
/**
* 任务Key
*/
private String taskDefKey;
/**
* 任务执行人Id
*/
private String assigneeId;
/**
* 任务执行人名称
*/
private String assigneeName;
/**
* 流程发起人Id
*/
private String startUserId;
/**
* 流程发起人名称
*/
private String startUserName;
/**
* 流程类型
*/
private String category;
/**
* 流程变量信息
*/
private Object procVars;
/**
* 局部变量信息
*/
private Object taskLocalVars;
/**
* 流程部署ID
*/
private String deployId;
/**
* 流程定义ID
*/
private String procDefId;
/**
* 流程key
*/
private String procDefKey;
/**
* 流程定义名称
*/
private String procDefName;
/**
* 流程定义使用版本
*/
private int procDefVersion;
/**
* 流程实例ID
*/
private String procInsId;
/**
* 历史流程实例ID
*/
private String hisProcInsId;
/**
* 任务耗时
*/
private String duration;
/**
* 任务意见
*/
private FlowCommentPdu comment;
/**
* 候选执行人(多个人都能办理当前任务)
*/
private String candidate;
/**
* 任务创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 任务完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date finishTime;
/**
* 流程变量信息
*/
private Map<String, Object> values;
/**
* 用户id
*/
private String userId;
/**
* 审批人
*/
private String assignee;
/**
* 候选人
*/
private List<String> candidateUsers;
/**
* 候选审批组
*/
private List<String> candidateGroups;
/**
* 业务系统编号
*/
private String tenantId;
}
package com.mortals.xhx.feign.rsp;
import com.mortals.xhx.common.pdu.api.Page;
import com.mortals.xhx.common.pdu.flow.FlowTaskPdu;
import lombok.Data;
import java.util.List;
/**
* 流程任务详细返回
*
* @author: zxfei
* @date: 2021/8/24 20:51
*/
@Data
public class TaskRsp {
private Page page;
private List<FlowTaskPdu> list;
}
package com.mortals.xhx.feign.runtime;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.mortals.framework.util.DateUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
/**
* 启动流程参数
*
* @author: zxfei
* @date: 2021/8/26 10:45
*/
@Data
public class StartProcessInstanceReq implements Serializable {
/**
* 流程部署key 必填
*/
@ApiModelProperty(value = "流程定义key" , required = true)
private String processDefinitionKey;
/**
* 业务系统表单id 必填
*/
@ApiModelProperty(value = "业务系统唯一标识" , required = true)
private String businessKey;
/**
* 业务表单显示名称 必填(如请假单)
*/
@ApiModelProperty(value = "表单显示名称" , required = true)
private String formName;
/**
* 启动流程变量 选填
*/
@ApiModelProperty(value = "启动流程变量")
private Map<String, Object> variables;
/**
* 申请人id号 必填
*/
@ApiModelProperty(value = "申请人id号")
private String userCode;
/**
* 平台系统标识 必填
*/
@ApiModelProperty(value = "平台系统标识" , required = true)
private String platformSn;
/**
* 流程提交人工号 通常和申请人id一致即可 必填
*/
@ApiModelProperty(value = "流程提交人工号 通常和申请人id一致即可" , required = true)
private String creator;
public static void main(String[] args) {
DateTime dateTime = DateUtil.offsetMonth(new Date(), 2);
System.out.println(DateUtils.getStrDate(dateTime));
}
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 任务参数
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "CommonTaskReq" , description = "任务参数")
public class CommonTaskReq extends BaseTaskReq implements Serializable {
/**
* 平台系统标识 必填
*/
@ApiModelProperty(value = "平台系统标识" , required = true)
private String platformSn;
}
package com.mortals.xhx.feign.task;
import com.alibaba.fastjson.JSON;
import com.mortals.xhx.feign.AttachmentEntity;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 任务执行(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "CompleteTask" , description = "审批参数")
public class CompleteTaskReq extends BaseTaskReq implements Serializable {
private static final long serialVersionUID = -5583096980348786337L;
/**
* 流程标题 选填 只有在重新发起的时候才会修改表单标题
*/
@ApiModelProperty(value = "流程标题")
private String formTitle;
/**
* 任务参数 选填
*/
@ApiModelProperty(value = "任务参数")
private Map<String, Object> variables;
/**
* 任务参数 附件 选填
*/
@ApiModelProperty(value = "附件参数")
private List<AttachmentEntity> attachments;
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务委派(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "DelegateTaskReq" , description = "审批参数")
public class DelegateTaskReq extends BaseTaskReq implements Serializable {
/**
* 委派人
*/
private String delegateUserCode;
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务删除(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "DeleteTaskReq" , description = "审批参数")
public class DeleteTaskReq extends BaseTaskReq implements Serializable {
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务驳回(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "RejectTaskReq" , description = "审批参数")
public class RejectTaskReq extends BaseTaskReq implements Serializable {
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务驳回(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "RejectTaskReq" , description = "审批参数")
public class ReturnTaskReq extends BaseTaskReq implements Serializable {
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务撤回(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "RevokeTaskReq" , description = "审批参数")
public class RevokeTaskReq extends BaseTaskReq implements Serializable {
}
package com.mortals.xhx.feign.task;
import com.mortals.xhx.feign.BaseTaskReq;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 任务转办(审批参数)
*
* @author: zxfei
* @date: 2021/8/26 17:23
*/
@Data
@ApiModel(value = "RejectTaskReq", description = "审批参数")
public class TurnTaskReq extends BaseTaskReq implements Serializable {
/**
* 被转办人工号 必填
*/
private String turnToUserId;
}
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
"core-js": "3.8.1", "core-js": "3.8.1",
"echarts": "^4.3.0", "echarts": "^4.3.0",
"element-react": "^1.4.34", "element-react": "^1.4.34",
"element-ui": "^2.13.2", "element-ui": "^2.15.5",
"file-saver": "2.0.4", "file-saver": "2.0.4",
"form-gen-parser": "^1.0.3", "form-gen-parser": "^1.0.3",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>工作流管理平台</title> <title>工作流管理平台</title>
<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.2/lib/theme-chalk/index.css"> <link rel="stylesheet" href="https://unpkg.com/element-ui@2.15.5/lib/theme-chalk/index.css">
</head> </head>
<body> <body>
<noscript> <noscript>
...@@ -17,6 +17,6 @@ ...@@ -17,6 +17,6 @@
<script src="https://unpkg.com/vue@2.6.14/dist/vue.runtime.min.js"></script> <script src="https://unpkg.com/vue@2.6.14/dist/vue.runtime.min.js"></script>
<script src="https://unpkg.com/vuex@3.6.0/dist/vuex.min.js"></script> <script src="https://unpkg.com/vuex@3.6.0/dist/vuex.min.js"></script>
<script src="https://unpkg.com/vue-router@3.4.9/dist/vue-router.min.js"></script> <script src="https://unpkg.com/vue-router@3.4.9/dist/vue-router.min.js"></script>
<script src="https://unpkg.com/element-ui@2.13.2/lib/index.js"></script> <script src="https://unpkg.com/element-ui@2.15.5/lib/index.js"></script>
</body> </body>
</html> </html>
...@@ -27,11 +27,7 @@ export function updateState(params) { ...@@ -27,11 +27,7 @@ export function updateState(params) {
// 指定流程办理人员列表 // 指定流程办理人员列表
export function userList(query) { export function userList(query) {
return normalCallPost('/user/list', query) return normalCallPost('/user/list', query)
// return request({
// url: '/flowable/definition/userList',
// method: 'get',
// params: query
// })
} }
// 指定流程办理组列表(由角色确定) // 指定流程办理组列表(由角色确定)
......
...@@ -10,11 +10,13 @@ export function complete(data) { ...@@ -10,11 +10,13 @@ export function complete(data) {
// 委派任务 // 委派任务
export function delegate(data) { export function delegate(data) {
return normalCallPost('/task/process/delegate', data) return normalCallPost('/task/process/delegate', data)
// return request({
// url: '/flowable/task/delegate', }
// method: 'post',
// data: data // 转办任务
// }) export function assignTask(data) {
return normalCallPost('/task/process/assignTask', data)
} }
// 退回任务 // 退回任务
......
...@@ -70,7 +70,7 @@ export class TreeCache extends Cache { ...@@ -70,7 +70,7 @@ export class TreeCache extends Cache {
export const treeCache = new TreeCache('/data/area/list', 6000); export const treeCache = new TreeCache('/area/list', 6000);
/** /**
* 获取父级节点的id列表 * 获取父级节点的id列表
......
...@@ -48,6 +48,7 @@ const layouts = { ...@@ -48,6 +48,7 @@ const layouts = {
} }
function renderFrom(h) { function renderFrom(h) {
console.log(this)
const { formConfCopy } = this const { formConfCopy } = this
return ( return (
......
...@@ -40,6 +40,10 @@ const router = new Router({ ...@@ -40,6 +40,10 @@ const router = new Router({
...restBuilder('healthinfo/apply', 'healthinfo/apply'), //健康列表 ...restBuilder('healthinfo/apply', 'healthinfo/apply'), //健康列表
...restBuilder('information', 'information'), //办件列表 ...restBuilder('information', 'information'), //办件列表
...restBuilder('member', 'member'), // 一件事管理-微信人员
...restBuilder('onething', 'onething'), // 一件事管理-微信人员提交审核材料
//在此添加业务模块 //在此添加业务模块
builder('/basics/index', 'basics/index'),//事项工作台 builder('/basics/index', 'basics/index'),//事项工作台
......
...@@ -17,14 +17,12 @@ ...@@ -17,14 +17,12 @@
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{label: "材料名", prop: "materialname"}, {label: "材料名", prop: "materialName"},
{label: "材料地址", prop: "yburl"}, {label: "材料必要性", prop: "isMust",formatter:this.formatter},
{label: "填报须知", prop: "remarksub"}, {label: "材料类型", prop: "materialType",formatter:this.formatter},
{label: "受理标准", prop: "remark"}, {label: "材料形式", prop: "materialProperty",formatter:this.formatter},
{label: "要求提供材料的依据", prop: "clausecontent"}, {label: "纸质材料份数", prop: "paperNum"},
{label: "备注", prop: "summary"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{ {
label: "操作", label: "操作",
width: 180, width: 180,
......
<template> <template>
<layout-form> <layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form"> <el-form
<el-row> :model="form"
<Field label="材料名" prop="materialName" v-model="form.materialName" placeholder="请输入材料名"/> :loading="loading"
<Field label="基础表one_basics id" prop="basicsId" v-model="form.basicsId" placeholder="请输入基础表one_basics id"/> :rules="rules"
<Field label="事项表yth_matter id 表示从一体化获取的材料" prop="matterid" v-model="form.matterid" placeholder="请输入事项表yth_matter id 表示从一体化获取的材料"/> size="small"
<Field label="材料表yth_datum id 表示从一体化获取的材料" prop="datumId" v-model="form.datumId" placeholder="请输入材料表yth_datum id 表示从一体化获取的材料"/> style="width: 100%"
<Field label="材料形式" prop="materialProperty" v-model="form.materialProperty" placeholder="请输入材料形式"/> label-width="120px"
<Field label="是否必交,0 否 1 是 默认0" prop="isMust" v-model="form.isMust" placeholder="请输入是否必交,0 否 1 是 默认0"/> ref="form"
<Field label="材料类型" prop="materialType" v-model="form.materialType" placeholder="请输入材料类型"/> >
<Field label="电子材料格式" prop="electronicgs" v-model="form.electronicgs" placeholder="请输入电子材料格式"/> <el-row>
<Field label="材料来源渠道" prop="materialSource" v-model="form.materialSource" placeholder="请输入材料来源渠道"/> <Field
<Field label="纸质材料份数" prop="paperNum" v-model="form.paperNum" placeholder="请输入纸质材料份数"/> label="材料名"
<Field label="纸质材料规格" prop="paperGg" v-model="form.paperGg" placeholder="请输入纸质材料规格"/> prop="materialName"
<Field label="减免模式" prop="jianmMs" v-model="form.jianmMs" placeholder="请输入减免模式"/> :span="24"
<Field label="盖章方式" prop="sealWay" v-model="form.sealWay" placeholder="请输入盖章方式"/> v-model="form.materialName"
<Field label="是否减免" prop="isjianm" v-model="form.isjianm" placeholder="请输入是否减免"/> placeholder="请输入材料名"
<Field label="材料是否容缺" prop="isLack" v-model="form.isLack" placeholder="请输入材料是否容缺"/> />
<Field label="材料地址" prop="ybUrl" v-model="form.ybUrl" placeholder="请输入材料地址"/> <Field
<Field label="来源渠道说明" prop="materialSourceSm" v-model="form.materialSourceSm" placeholder="请输入来源渠道说明"/> label="事项表"
<Field label="填报须知" prop="remarkSub" v-model="form.remarkSub" placeholder="请输入填报须知"/> prop="matterid"
<Field label="受理标准" prop="remark" v-model="form.remark" placeholder="请输入受理标准"/> :span="24"
<Field label="要求提供材料的依据" prop="clauseContent" v-model="form.clauseContent" placeholder="请输入要求提供材料的依据"/> v-model="form.matterid"
<Field label="备注" prop="summary" v-model="form.summary" placeholder="请输入备注"/> placeholder="请输入事项表"
<Field label="1正常 2删除" prop="delete" v-model="form.delete" placeholder="请输入1正常 2删除"/> />
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/> <Field
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/> label="材料形式"
</el-row> prop="materialProperty"
<form-buttons @submit='submitForm'/> v-model="form.materialProperty"
</el-form> :enumData="dict.materialProperty"
</layout-form> placeholder="请输入材料形式"
type="select"
/>
<Field
label="材料必要性"
prop="isMust"
v-model="form.isMust"
:enumData="dict.isMust"
placeholder="请选择是否必交"
type="select"
/>
<Field
label="材料类型"
prop="materialType"
v-model="form.materialType"
:enumData="dict.materialType"
type="select"
placeholder="请输入材料类型"
/>
<Field
label="电子材料格式"
prop="electronicgs"
v-model="form.electronicgs"
:enumData="dict.electronicgs"
type="select"
placeholder="请输入电子材料格式"
/>
<Field
label="材料来源渠道"
prop="materialSource"
v-model="form.materialSource"
:enumData="dict.materialSource"
type="select"
placeholder="请输入材料来源渠道"
/>
<Field
label="纸质材料份数"
prop="paperNum"
v-model="form.paperNum"
placeholder="请输入纸质材料份数"
/>
<Field
label="纸质材料规格"
prop="paperGg"
v-model="form.paperGg"
:enumData="dict.paperGg"
type="select"
placeholder="请输入纸质材料规格"
/>
<Field
label="减免模式"
prop="jianmMs"
v-model="form.jianmMs"
:enumData="dict.jianmMs"
type="select"
placeholder="请输入减免模式"
/>
<Field
label="盖章方式"
prop="sealWay"
v-model="form.sealWay"
:enumData="dict.sealWay"
type="select"
placeholder="请输入盖章方式"
/>
<Field
label="是否减免"
prop="isjianm"
v-model="form.isjianm"
:enumData="dict.isjianm"
type="select"
placeholder="请输入是否减免"
/>
<Field
label="材料是否容缺"
prop="isLack"
v-model="form.isLack"
:enumData="dict.isLack"
type="radio"
placeholder="请输入材料是否容缺"
/>
<Field
label="来源渠道说明"
prop="materialSourceSm"
type="textarea"
v-model="form.materialSourceSm"
placeholder="请输入来源渠道说明"
/>
<Field :span="16" label="上传附件">
<el-upload
:action="upload.url + '?prePath=' + upload.prePath"
:on-success="handleFileSuccess"
multiple
:file-list="fileList"
>
<el-button size="small">上传示例样表</el-button>
</el-upload>
</Field>
<Field
label="填报须知"
prop="remarkSub"
type="textarea"
v-model="form.remarkSub"
placeholder="请输入填报须知"
/>
<Field
label="受理标准"
prop="remark"
type="textarea"
v-model="form.remark"
placeholder="请输入受理标准"
/>
<Field
label="要求提供材料的依据"
type="textarea"
prop="clauseContent"
v-model="form.clauseContent"
placeholder="请输入要求提供材料的依据"
/>
<Field
label="备注"
prop="summary"
v-model="form.summary"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit="submitForm" />
</el-form>
</layout-form>
</template> </template>
<script> <script>
import form from "@/assets/mixins/form"; import form from "@/assets/mixins/form";
export default { export default {
mixins: [form], mixins: [form],
data() { methods: {
return { beforeSubmit(data) {
rules: { data.valid=0
materialName:[ return data
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}], },
ybUrl:[ afterSubmit(data) {
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}],
remarkSub:[ console.log("submit",data);
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}], this.$router.go(-1);
remark:[ },
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}], // 文件上传中处理
clauseContent:[ handleFileUploadProgress(event, file, fileList) {
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}], //this.upload.isUploading = true;
summary:[ },
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}], handlePreview(file){
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'}, },
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}], // 文件上传成功处理
} handleFileSuccess(response, file, fileList) {
};
} //更新fileList
console.log(response,file,fileList)
// this.upload.open = false;
// this.upload.isUploading = false;
// this.$refs.upload.clearFiles();
// this.$message(response.msg);
// this.getList();
},
},
data() {
return {
upload: {
// 是否禁用上传
isUploading: false,
prePath: "/data/",
url: "/m/datum/upload",
},
fileList: [],
toString: [
"materialProperty",
"isMust",
"materialType",
"electronicgs",
"paperGg",
"jianmMs",
"sealWay",
"isLack",
"isjianm",
"materialSource"
],
rules: {
materialName: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
ybUrl: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
remarkSub: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
remark: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
clauseContent: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
summary: [
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
]
},
}; };
},
};
</script> </script>
\ No newline at end of file
...@@ -2,33 +2,6 @@ ...@@ -2,33 +2,6 @@
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notAdd notDel> <LayoutTable :data="tableData" :config="tableConfig" notAdd notDel>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleImport"
>导入</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
@click="handleLoadXml"
>新增</el-button
>
<el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
size="mini"
disabled
@click="handleExport"
>导出</el-button
>
</LayoutTable> </LayoutTable>
<!-- bpmn20.xml导入对话框 --> <!-- bpmn20.xml导入对话框 -->
...@@ -73,6 +46,83 @@ ...@@ -73,6 +46,83 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog
append-to-body
:title="taskDialog.title"
:visible.sync="taskDialog.visible"
>
<el-form ref="form1" :model="form" label-width="120px">
<el-form-item label="选择人员">
<el-select
style="width: 50%"
v-model="assignee"
@change="handleCheckChange"
:multiple="taskDialog.multiple"
placeholder="请选择"
>
<el-option
v-for="item in userDataList"
:key="item.loginName"
:label="item.realName"
:value="item.loginName"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="taskConfirm">确 定</el-button>
<el-button @click="taskCancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog
:title="configDialog.title"
:visible.sync="configDialog.visible"
width="70%"
append-to-body
>
<!-- 动态创建对应关系 表格 -->
<el-form ref="form" :model="form" label-width="120px">
<el-table
:data="dataList"
border
style="margin-top: 10px"
max-height="480"
:key="Math.random()"
>
<el-table-column prop="name" label="任务名称"> </el-table-column>
<el-table-column prop="el" label="EL变量表达式"> </el-table-column>
<el-table-column prop="multiple" label="是否并行"> </el-table-column>
<el-table-column prop="assigneeName" label="对应人员">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-form-item label-width="0">
<el-button
size="mini"
type="text"
icon="el-icon-user"
@click="handTableSelect(scope.$index, scope.row)"
>选择人员</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitConfigForm">确 定</el-button>
<el-button @click="configDialog.visible = false">取 消</el-button>
</div>
</el-dialog>
<!-- 流程图 --> <!-- 流程图 -->
<el-dialog <el-dialog
:title="readImage.title" :title="readImage.title"
...@@ -127,8 +177,9 @@ import { ...@@ -127,8 +177,9 @@ import {
exportDeployment, exportDeployment,
definitionStart, definitionStart,
readXml, readXml,
userList,
} from "@/api/flowable/definition"; } from "@/api/flowable/definition";
import { getForm,addForm, addDeployForm ,listForm } from "@/api/flowable/form"; import { getForm, addForm, addDeployForm, listForm } from "@/api/flowable/form";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import Parser from "@/components/parser/Parser"; import Parser from "@/components/parser/Parser";
import flow from "@/views/flowable/task/record/flow"; import flow from "@/views/flowable/task/record/flow";
...@@ -140,37 +191,81 @@ export default { ...@@ -140,37 +191,81 @@ export default {
flow, flow,
}, },
mixins: [table], mixins: [table],
created() {
userList({}).then(({ data }) => {
this.userDataList = data.result;
for (let item of data.result) {
this.userDict[item.loginName] = item.realName;
}
});
},
methods: { methods: {
/** 查询流程定义列表 */ submitConfigForm() {
// getList() { let params = {};
// this.loading = true; params[this.configDialog.key] = JSON.stringify(this.dataList);
// listDefinition(this.queryParams).then(response => {
// this.definitionList = response.data.records; this.$post("/flowable/definition/setVars", params).then(({ data }) => {
// this.total = response.data.total; this.configDialog.visible=false;
// this.loading = false; //弹出框配置对应关系
// }); });
// },
// 取消按钮
cancel() {
this.open = false;
this.reset();
}, },
// 表单重置 taskConfirm() {
reset() { console.log(this.assignee);
this.form = {
id: null,
name: null, if (this.taskDialog.multiple == 0) {
category: null, this.dataList[this.taskDialog.index].assignee = this.assignee;
key: null, this.dataList[this.taskDialog.index].assigneeName =
tenantId: null, this.userDict[this.assignee];
deployTime: null, } else {
derivedFrom: null, let temp = "";
derivedFromRoot: null, for (let item of this.assignee) {
parentDeploymentId: null, temp += this.userDict[item] + ",";
engineVersion: null, }
}; this.dataList[this.taskDialog.index].assigneeName = temp;
this.resetForm("form"); this.dataList[this.taskDialog.index].assigneeList = this.assignee;
}
this.taskDialog.visible = false;
},
taskCancel() {
this.assignee = null;
this.taskDialog.visible = false;
},
handleCheckChange(val) {
if (val instanceof Array) {
console.log(1111, val);
// this.taskForm.values = {
// approval: val.join(","),
// };
} else {
console.log(222222, val);
// this.taskForm.values = {
// approval: val,
// };
}
},
handTableSelect(index, row) {
console.log("人员选择", index, row);
this.assignee=null
this.assigneeName=""
this.taskDialog.index = index;
if (row.multiple == 0) {
this.taskDialog.multiple = false;
} else {
this.taskDialog.multiple = true;
}
this.taskDialog.visible = true;
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
...@@ -193,20 +288,18 @@ export default { ...@@ -193,20 +288,18 @@ export default {
handleReadImage(row) { handleReadImage(row) {
console.log("流程图查看"); console.log("流程图查看");
this.readImage.title = "流程图"; this.readImage.title = "流程图";
this.readImage.open = true; this.readImage.open = true;
// this.readImage.src = process.env.VUE_APP_BASE_API + "/flowable/definition/readImage/" + deploymentId; // this.readImage.src = process.env.VUE_APP_BASE_API + "/flowable/definition/readImage/" + deploymentId;
// 发送请求,获取xml // 发送请求,获取xml
readXml(row.deploymentId).then(res =>{ readXml(row.deploymentId).then((res) => {
this.xmlData = res.data this.xmlData = res.data;
}) });
}, },
/** 表单查看 */ /** 表单查看 */
handleForm(formId) { handleForm(formId) {
console.log("formId:"+formId); console.log("formId:" + formId);
getForm(formId).then((res) => { getForm(formId).then((res) => {
this.formTitle = "表单详情"; this.formTitle = "表单详情";
this.formConfOpen = true; this.formConfOpen = true;
this.formConf = JSON.parse(res.data.entity.formContent); this.formConf = JSON.parse(res.data.entity.formContent);
...@@ -214,16 +307,6 @@ export default { ...@@ -214,16 +307,6 @@ export default {
}, },
readXml(row) { readXml(row) {
definitionStart(row.id).then((res) => {
this.msgSuccess(res.msg);
});
},
/** 启动流程 */
handleDefinitionStart(row) {
console.log("启动流程");
definitionStart(row.id).then((res) => { definitionStart(row.id).then((res) => {
this.msgSuccess(res.msg); this.msgSuccess(res.msg);
}); });
...@@ -232,120 +315,67 @@ export default { ...@@ -232,120 +315,67 @@ export default {
handleAddForm(row) { handleAddForm(row) {
console.log("挂载表单!"); console.log("挂载表单!");
this.formDeployParam.deployId = row.deploymentId; this.formDeployParam.deployId = row.deploymentId;
const pageInfo = { const pageInfo = {
prePageResult: 100 prePageResult: 100,
} };
listForm({},pageInfo).then((res) => { listForm({}, pageInfo).then((res) => {
this.formList = res.data.result; this.formList = res.data.result;
this.formDeployOpen = true; this.formDeployOpen = true;
this.formDeployTitle = "挂载表单"; this.formDeployTitle = "挂载表单";
}); });
}, },
// /** 更改挂载表单弹框 */
// handleEditForm(row){
// this.formDeployParam.deployId = row.deploymentId
// const queryParams = {
// pageNum: 1,
// pageSize: 10
// }
// listForm(queryParams).then(res =>{
// this.formList = res.rows;
// this.formDeployOpen = true;
// this.formDeployTitle = "挂载表单";
// })
// },
/** 挂载表单 */ /** 挂载表单 */
submitFormDeploy() { submitFormDeploy() {
//提交表单 //提交表单
addForm(); addForm();
console.log("提交表单!"); console.log("提交表单!");
console.log(this.formDeployParam); console.log(this.formDeployParam);
addDeployForm(this.formDeployParam).then(res =>{ addDeployForm(this.formDeployParam).then((res) => {
console.log(res); console.log(res);
this.$message.success("表单关联成功!"); this.$message.success("表单关联成功!");
this.formDeployOpen = false; this.formDeployOpen = false;
this.getData(); this.getData();
}) });
}, },
/** 挂起/激活流程 */ /** 挂起/激活流程 */
handleUpdateSuspensionState(row) { handleUpdateSuspensionState(row) {
console.log("挂起/激活流程!"); console.log("挂起/激活流程!");
let state = 1; let state = 1;
if (row.suspensionState === 1) { if (row.suspensionState === 1) {
state = 2 state = 2;
} }
const params = { const params = {
deployId: row.deploymentId, deployId: row.deploymentId,
state: state state: state,
} };
updateState(params).then(res => { updateState(params).then((res) => {
this.$message.success("更新成功!"); this.$message.success("更新成功!");
this.getData(); this.getData();
}); });
}, },
/** 修改按钮操作 */ /** 修改配置参数 */
handleUpdate(row) { handleUpdateVars(row) {
console.log("修改按钮操作!"); console.log("修改配置参数!");
// this.reset(); console.log(row);
// const id = row.id || this.ids
// getDeployment(id).then(response => { let query = {};
// this.form = response.data; query.processDefinitionKey = row.key;
// this.open = true;
// this.title = "修改流程定义"; this.$post("/flowable/definition/getAllProcessInstanceEl", query).then(
// }); ({ data }) => {
}, console.log(data);
/** 提交按钮 */
submitForm() { this.dataList = data;
this.$refs["form"].validate((valid) => { this.configDialog.visible = true;
if (valid) { this.configDialog.key=row.key;
if (this.form.id != null) {
updateDeployment(this.form).then((response) => { //弹出框配置对应关系
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addDeployment(this.form).then((response) => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} }
}); );
}, //查询所有el表达式
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.deploymentId || this.ids;
const params = {
deployId: row.deploymentId
}
this.$confirm('是否确认删除流程定义编号为"' + params.deployId + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delDeployment(params);
}).then(() => {
this.$message.success("删除成功");
this.getData();
})
},
/** 导出按钮操作 */
handleExport() {
// const queryParams = this.queryParams;
// this.$confirm('是否确认导出所有流程定义数据项?', "警告", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
// type: "warning"
// }).then(function() {
// return exportDeployment(queryParams);
// }).then(response => {
// this.download(response.msg);
// })
}, },
/** 导入bpmn.xml文件 */ /** 导入bpmn.xml文件 */
handleImport() { handleImport() {
this.upload.title = "bpmn20.xml文件导入"; this.upload.title = "bpmn20.xml文件导入";
...@@ -366,11 +396,27 @@ export default { ...@@ -366,11 +396,27 @@ export default {
// 提交上传文件 // 提交上传文件
submitFileForm() { submitFileForm() {
console.log("上传附件"); console.log("上传附件");
this.$refs.upload.submit(); this.$refs.upload.submit();
}, },
}, },
data() { data() {
return { return {
taskDialog: {
visible: false,
title: "选择人员",
multiple: false,
index: 0,
type: "",
},
configDialog: {
visible: false,
title: "流程人员配置",
index: 0,
},
userDataList: [], // 流程候选人
userDict: {},
assignee: null,
dataList: [],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -413,7 +459,6 @@ export default { ...@@ -413,7 +459,6 @@ export default {
// headers: { Authorization: "Bearer " + getToken() }, // headers: { Authorization: "Bearer " + getToken() },
// 上传的地址 // 上传的地址
url: "/m/flowable/definition/upload", url: "/m/flowable/definition/upload",
}, },
// 查询参数 // 查询参数
queryParams: { queryParams: {
...@@ -430,7 +475,7 @@ export default { ...@@ -430,7 +475,7 @@ export default {
engineVersion: null, engineVersion: null,
}, },
formDeployParam: { formDeployParam: {
formId: '1', formId: "1",
deployId: null, deployId: null,
}, },
// xml // xml
...@@ -446,11 +491,6 @@ export default { ...@@ -446,11 +491,6 @@ export default {
type: "text", type: "text",
label: "名称", label: "名称",
}, },
{
name: "area",
type: "cascader",
label: "区域",
},
], ],
columns: [ columns: [
{ {
...@@ -471,18 +511,18 @@ export default { ...@@ -471,18 +511,18 @@ export default {
{ {
prop: "name", prop: "name",
label: "流程名称(流程图)", label: "流程名称(流程图)",
formatter: row => { formatter: (row) => {
return ( return (
<el-button <el-button
type="text" type="text"
onClick={() => { onClick={() => {
this.handleReadImage(row); this.handleReadImage(row);
}} }}
> >
{row.name} {row.name}
</el-button> </el-button>
) );
} },
}, },
{ {
...@@ -490,22 +530,21 @@ export default { ...@@ -490,22 +530,21 @@ export default {
label: "流程分类", label: "流程分类",
}, },
{ {
prop: "formName", prop: "formName",
label: "挂载表单", label: "挂载表单",
formatter: row => { formatter: (row) => {
return ( return (
<el-button <el-button
type="text" type="text"
onClick={() => { onClick={() => {
this.handleForm(row.formId); this.handleForm(row.formId);
}} }}
> >
{row.formName} {row.formName}
</el-button> </el-button>
) );
} },
}, },
{ {
...@@ -537,10 +576,10 @@ export default { ...@@ -537,10 +576,10 @@ export default {
type="text" type="text"
icon="el-icon-edit-outline" icon="el-icon-edit-outline"
onClick={() => { onClick={() => {
this.handleLoadXml(row); this.handleUpdateVars(row);
}} }}
> >
编辑 配置
</el-button> </el-button>
<span> </span> <span> </span>
...@@ -586,32 +625,19 @@ export default { ...@@ -586,32 +625,19 @@ export default {
</el-button> </el-button>
)} )}
<span> </span>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
onClick={() => {
this.handleDelete(row);
}}
>
删除
</el-button>
<span> </span> <span> </span>
{row && row.formId !=null ? ( {row && row.formId != null ? (
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-view" icon="el-icon-view"
onClick={() => { onClick={() => {
this.handleForm(row.formId); this.handleForm(row.formId);
}} }}
> >
查看表单 查看表单
</el-button> </el-button>
) : ( ) : (
"" ""
)} )}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notAdd notDel> <LayoutTable :data="tableData" :config="tableConfig" notAdd notDel>
<el-button <!-- <el-button
slot="table-head-left2" slot="table-head-left2"
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
...@@ -17,9 +17,17 @@ ...@@ -17,9 +17,17 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
>导出</el-button >导出</el-button
> > -->
</LayoutTable> </LayoutTable>
<el-dialog
title="流程预览图"
:visible.sync="viewImageDialog.visible"
width="80%"
>
<img :src="'data:image/png;base64,' + viewImageDialog.img" />
</el-dialog>
<!-- 添加或修改流程定义对话框 --> <!-- 添加或修改流程定义对话框 -->
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-table v-loading="processLoading" fit :data="definitionList" border> <el-table v-loading="processLoading" fit :data="definitionList" border>
...@@ -56,8 +64,8 @@ ...@@ -56,8 +64,8 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="definitionTotal>0" v-show="definitionTotal > 0"
:total="definitionTotal" :total="definitionTotal"
:page.sync="formquery.pageInfo.currPage" :page.sync="formquery.pageInfo.currPage"
:limit.sync="formquery.pageInfo.prePageResult" :limit.sync="formquery.pageInfo.prePageResult"
...@@ -112,7 +120,7 @@ export default { ...@@ -112,7 +120,7 @@ export default {
}; };
this.resetForm("form"); this.resetForm("form");
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.open = true; this.open = true;
...@@ -122,13 +130,13 @@ export default { ...@@ -122,13 +130,13 @@ export default {
this.definitionList = res.data.result; this.definitionList = res.data.result;
this.definitionTotal = res.data.pageInfo.totalResult; this.definitionTotal = res.data.pageInfo.totalResult;
this.formquery.pageInfo=res.data.pageInfo; this.formquery.pageInfo = res.data.pageInfo;
this.processLoading = false; this.processLoading = false;
}); });
}, },
/** 发起流程申请 */ /** 发起流程申请 */
handleStartProcess(row) { handleStartProcess(row) {
console.log("发起流程申请",row); console.log("发起流程申请", row);
this.$router.push({ this.$router.push({
path: "/flowable/task/record/index", path: "/flowable/task/record/index",
query: { query: {
...@@ -142,7 +150,7 @@ export default { ...@@ -142,7 +150,7 @@ export default {
handleStop(row) { handleStop(row) {
console.log(row); console.log(row);
const params = { const params = {
instanceId: row.procInsId, processInstanceId: row.procInsId,
}; };
stopProcess(params).then((res) => { stopProcess(params).then((res) => {
this.$message.success(res.msg); this.$message.success(res.msg);
...@@ -161,6 +169,23 @@ export default { ...@@ -161,6 +169,23 @@ export default {
}, },
}); });
}, },
/** 预览当前流程图 */
handleView(row) {
console.log("预览当前流程图", row);
this.viewImageDialog.img = "";
this.$post("/task/process/preViewImage", {
processInstanceId: row.procInsId,
})
.then((res) => {
this.viewImageDialog.img = res.pic;
this.viewImageDialog.visible = true;
})
.catch((error) => {
this.$message.error(error.message);
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
...@@ -203,12 +228,24 @@ export default { ...@@ -203,12 +228,24 @@ export default {
type: "warning", type: "warning",
} }
) )
.then(function () {
return delDeployment(ids);
})
.then(() => { .then(() => {
this.getData(); this.$post("/task/process/deleteProcess", {
this.$message.success("删除成功"); processInstanceId: row.procInsId,
deleteReason: "强制删除",
})
.then((res) => {
this.getData();
this.$message.success("删除成功");
})
.catch((error) => {
this.$message.error(error.message);
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
}); });
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
...@@ -229,6 +266,10 @@ export default { ...@@ -229,6 +266,10 @@ export default {
}, },
data() { data() {
return { return {
viewImageDialog: {
visible: false,
img: "",
},
// 遮罩层 // 遮罩层
loading: true, loading: true,
processLoading: true, processLoading: true,
...@@ -278,8 +319,7 @@ export default { ...@@ -278,8 +319,7 @@ export default {
totalPage: 0, totalPage: 0,
totalResult: 0, totalResult: 0,
}, },
query: {} query: {},
,
}, },
// 表单参数 // 表单参数
...@@ -295,14 +335,9 @@ export default { ...@@ -295,14 +335,9 @@ export default {
}, },
], ],
columns: [ columns: [
{
type: "selection",
width: 60,
},
{ {
prop: "procInsId", prop: "procInsId",
label: "流程编号", label: "流程实例编号",
}, },
{ {
...@@ -346,7 +381,7 @@ export default { ...@@ -346,7 +381,7 @@ export default {
{ {
prop: "assigneeName", prop: "assigneeName",
label: "办理人", label: "办理人",
formatter:this.formatter formatter: this.formatter,
}, },
{ {
...@@ -391,6 +426,18 @@ export default { ...@@ -391,6 +426,18 @@ export default {
> >
删除 删除
</el-button> </el-button>
<span> </span>
<el-button
size="mini"
type="text"
icon="el-icon-view"
onClick={() => {
this.handleView(row);
}}
>
预览
</el-button>
</el-row> </el-row>
); );
}, },
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card class="box-card" > <el-dialog :title="taskDialog.title" :visible.sync="taskDialog.visible">
<div slot="header" class="clearfix"> <el-form ref="form1" :model="form" label-width="120px">
<span class="el-icon-document">基础信息</span> <el-form-item label="选择办理人">
<el-button style="float: right;" type="primary" @click="goBack">返回</el-button> <el-select
</div> style="width: 50%"
v-model="assignee"
@change="handleCheckChange"
:multiple="taskForm.multiple"
placeholder="请选择"
>
<el-option
v-for="item in userDataList"
:key="item.loginName"
:label="item.realName"
:value="item.loginName"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="taskConfirm">确 定</el-button>
<el-button @click="taskCancel">取 消</el-button>
</div>
</el-dialog>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="el-icon-document">基础信息</span>
<el-button style="float: right" type="primary" @click="goBack"
>返回</el-button
>
</div>
<el-col :span="16" :offset="6" v-if="variableOpen">
<!--申请流程初始化表单模块-->
<div>
<!-- <parser :key="new Date().getTime()" :form-conf="variablesData" /> -->
</div>
<el-col :span="16" :offset="6" v-if="variableOpen"> <el-descriptions
<!--申请流程初始化表单模块--> style="margin-left: 20px; margin-bottom: 20px; font-size: 14px"
<div> class="margin-top"
<parser :key="new Date().getTime()" :form-conf="variablesData" /> title="申请事项信息"
</div> :column="3"
:size="size"
border
>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>
用户名
</template>
kooriookami
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-mobile-phone"></i>
手机号
</template>
18100000000
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-location-outline"></i>
居住地
</template>
苏州市
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-tickets"></i>
备注
</template>
<el-tag size="small">学校</el-tag>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-office-building"></i>
联系地址
</template>
江苏省苏州市吴中区吴中大道 1188 号
</el-descriptions-item>
</el-descriptions>
<!--审批流程模块--> <!--审批流程模块-->
<div style="margin-left:20px;margin-bottom: 20px;font-size: 14px;" v-if="finished === 'true'"> <div
<el-form ref="taskForm" :model="taskForm" label-width="80px" size="mini"> style="margin-left: 20px; margin-bottom: 20px; font-size: 14px"
<el-form-item label="退回节点" prop="targetKey" v-show="taskForm.returnTaskShow"> v-if="finished === 'true'"
<el-radio-group v-model="taskForm.targetKey"> >
<el-radio-button <el-form
v-for="item in returnTaskList" ref="taskForm"
:key="item.id" :model="taskForm"
:label="item.id" label-width="80px"
>{{item.name}}</el-radio-button> size="mini"
</el-radio-group> >
</el-form-item> <el-form-item
<el-form-item label="任务接收" prop="targetKey" v-show="taskForm.sendUserShow"> label="审批意见"
prop="message"
:rules="[
{ required: true, message: '请输入意见', trigger: 'blur' },
]"
>
<el-input
style="width: 50%"
type="textarea"
v-model="taskForm.message"
placeholder="请输入意见"
/>
</el-form-item>
<el-form-item prop="attachUrl" label="附件">
<el-upload
class="upload-demo"
action="/m/file/upload"
:on-success="handleAttsSuccess"
name="uploadFile"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item
label="退回节点"
prop="targetKey"
v-show="taskForm.returnTaskShow"
>
<el-radio-group v-model="taskForm.targetKey">
<el-radio-button
v-for="item in returnTaskList"
:key="item.id"
:label="item.id"
>{{ item.name }}</el-radio-button
>
</el-radio-group>
</el-form-item>
<el-form-item label="下一步办理人" prop="targetKey" v-show="taskForm.sendUserShow">
<el-select style="width: 50%" v-model="assignee" @change="handleCheckChange" :multiple="taskForm.multiple" placeholder="请选择"> <el-select style="width: 50%" v-model="assignee" @change="handleCheckChange" :multiple="taskForm.multiple" placeholder="请选择">
<el-option <el-option
v-for="item in userDataList" v-for="item in userDataList"
...@@ -35,109 +147,231 @@ ...@@ -35,109 +147,231 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="审批意见" prop="comment" :rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
<el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见"/>
</el-form-item>
<el-form-item>
<div v-show="taskForm.defaultTaskShow">
<el-button icon="el-icon-edit-outline" type="success" size="mini" @click="handleComplete">审批</el-button>
<el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">委派</el-button>
<el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleAssign">转办</el-button>
<el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>
<el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleReturn">退回</el-button>
<el-button icon="el-icon-circle-close" type="danger" size="mini" @click="handleReject">驳回</el-button>
</div>
<div v-show="taskForm.returnTaskShow">
<el-button type="primary" @click="submitReturnTask">确 定</el-button>
<el-button @click="cancelTask">取 消</el-button>
</div>
<div v-show="taskForm.delegateTaskShow">
<el-button type="primary" @click="submitDeleteTask">确 定</el-button>
<el-button @click="cancelDelegateTask">取 消</el-button>
</div>
</el-form-item>
</el-form>
</div>
</el-col>
<!--初始化流程加载表单信息--> <el-form-item>
<el-col :span="16" :offset="4" v-if="formConfOpen"> <div v-show="taskForm.defaultTaskShow">
<div class="test-form"> <el-button
<parser :key="new Date().getTime()" :form-conf="formConf" @submit="submitForm" ref="parser" @getData="getData" /> icon="el-icon-edit-outline"
type="success"
size="mini"
@click="handleComplete"
>审批</el-button
>
<el-button
icon="el-icon-edit-outline"
type="primary"
size="mini"
@click="handleDelegate"
>委派</el-button
>
<el-button
icon="el-icon-edit-outline"
type="primary"
size="mini"
@click="handleAssign"
>转办</el-button
>
<el-button
icon="el-icon-edit-outline"
type="primary"
size="mini"
@click="handleAddSign"
>加签</el-button
>
<el-button
icon="el-icon-refresh-left"
type="warning"
size="mini"
@click="handleReturn"
>退回</el-button
>
<el-button
icon="el-icon-circle-close"
type="danger"
size="mini"
@click="handleReject"
>驳回</el-button
>
</div>
<div v-show="taskForm.returnTaskShow">
<el-button type="primary" @click="submitReturnTask"
>确 定</el-button
>
<el-button @click="cancelTask">取 消</el-button>
</div> </div>
</el-col> <div v-show="taskForm.delegateTaskShow">
</el-card> <el-button type="primary" @click="submitDeleteTask"
>确 定</el-button
>
<el-button @click="cancelDelegateTask">取 消</el-button>
</div>
</el-form-item>
</el-form>
</div>
</el-col>
<!--初始化流程加载表单信息-->
<el-col :span="16" :offset="4" v-if="formConfOpen">
<div class="test-form">
<parser
:key="new Date().getTime()"
:form-conf="formConf"
@submit="submitForm"
ref="parser"
@getData="getData"
/>
</div>
</el-col>
</el-card>
<!--流程流转记录--> <!--流程流转记录-->
<el-card class="box-card" v-if="flowRecordList"> <el-card class="box-card" v-if="flowRecordList">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-notebook-1">审批记录</span> <span class="el-icon-notebook-1">审批记录</span>
</div> </div>
<el-col :span="16" :offset="4" > <el-col :span="16" :offset="4">
<div class="block"> <div class="block">
<el-timeline> <el-timeline>
<el-timeline-item <el-timeline-item
v-for="(item,index ) in flowRecordList" v-for="(item, index) in flowRecordList"
:key="index" :key="index"
:icon="setIcon(item.finishTime)" :icon="setIcon(item.finishTime)"
:color="setColor(item.finishTime)" :color="setColor(item.finishTime)"
>
<p style="font-weight: 700">{{ item.taskName }}</p>
<el-card :body-style="{ padding: '10px' }">
<label
v-if="item.assigneeName"
style="font-weight: normal; margin-right: 30px"
>实际办理: {{ item.assigneeName }}</label
> >
<p style="font-weight: 700">{{item.taskName}}</p> <label
<el-card :body-style="{ padding: '10px' }"> v-if="item.candidate"
<label v-if="item.assigneeName" style="font-weight: normal;margin-right: 30px;">实际办理: {{item.assigneeName}} <el-tag type="info" size="mini">{{item.deptName}}</el-tag></label> style="font-weight: normal; margin-right: 30px"
<label v-if="item.candidate" style="font-weight: normal;margin-right: 30px;">候选办理: {{item.candidate}}</label> >候选办理: {{ item.candidate }}</label
<label style="font-weight: normal">接收时间: </label><label style="color:#8a909c;font-weight: normal">{{formatterDate(item.createTime)}}</label> >
<label v-if="item.finishTime" style="margin-left: 30px;font-weight: normal">办结时间: </label><label style="color:#8a909c;font-weight: normal">{{item.finishTime}}</label> <label style="font-weight: normal">接收时间: </label
<label v-if="item.duration" style="margin-left: 30px;font-weight: normal">耗时: </label><label style="color:#8a909c;font-weight: normal">{{item.duration}}</label> ><label style="color: #8a909c; font-weight: normal">{{
formatterDate(item.createTime)
}}</label>
<label
v-if="item.finishTime"
style="margin-left: 30px; font-weight: normal"
>办结时间: </label
><label
v-if="item.finishTime"
style="color: #8a909c; font-weight: normal"
>{{ formatterDate(item.finishTime) }}</label
>
<label
v-if="item.duration"
style="margin-left: 30px; font-weight: normal"
>耗时: </label
><label style="color: #8a909c; font-weight: normal">{{
item.duration
}}</label>
<el-divider></el-divider>
<p v-if="item.comment">
<el-tag type="success" v-if="item.comment.type === '1'">
{{ item.comment.comment }}</el-tag
>
<el-tag type="warning" v-if="item.comment.type === '2'">
{{ item.comment.comment }}</el-tag
>
<el-tag type="danger" v-if="item.comment.type === '3'">
{{ item.comment.comment }}</el-tag
>
</p>
<p v-if="item.comment"> <!--附件列表-->
<el-tag type="success" v-if="item.comment.type === '1'"> {{item.comment.comment}}</el-tag> <el-table
<el-tag type="warning" v-if="item.comment.type === '2'"> {{item.comment.comment}}</el-tag> v-if="item.attachmentList && item.attachmentList.length > 0"
<el-tag type="danger" v-if="item.comment.type === '3'"> {{item.comment.comment}}</el-tag> class="down"
</p> :data="item.attachmentList"
</el-card> border
</el-timeline-item> stripe
</el-timeline> style="width: 100%; margin-top: 20px"
</div> >
</el-col> <el-table-column
</el-card> prop="name"
label="文件名称"
></el-table-column>
<!--流程执行图--> <el-table-column
<!-- <el-card class="box-card" v-if="src" >--> prop="type"
<!-- <div slot="header" class="clearfix">--> label="文件类型"
<!-- <span class="el-icon-picture-outline">流程图</span>--> ></el-table-column>
<!-- </div>--> <el-table-column prop="attachSize" label="文件大小">
<!-- <el-col :span="16" :offset="4">--> </el-table-column>
<!-- <el-image :src="src"></el-image>-->
<!-- </el-col>--> <el-table-column width="150px" label="操作">
<!-- </el-card>--> <template slot-scope="scope">
<el-card class="box-card"> <el-button size="small" type="text">
<div slot="header" class="clearfix"> <el-link
<span class="el-icon-picture-outline">流程图</span> type="primary"
@click="downloadFile(scope.row.name, scope.row.url)"
>下载</el-link
>
</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-timeline-item>
</el-timeline>
</div> </div>
<flow :xmlData="xmlData" :taskData="taskList"></flow> </el-col>
</el-card>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="el-icon-picture-outline">流程图</span>
</div>
<flow :xmlData="xmlData" :taskData="taskList"></flow>
</el-card> </el-card>
</div> </div>
</template> </template>
<script> <script>
import {flowRecord} from "@/api/flowable/finished"; import { flowRecord } from "@/api/flowable/finished";
import Parser from '@/components/parser/Parser' import Parser from "@/components/parser/Parser";
import {definitionStart, getProcessVariables, userList, readXml, getFlowViewer } from "@/api/flowable/definition"; import {
import {complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate} from "@/api/flowable/todo"; definitionStart,
import flow from '@/views/flowable/task/record/flow' getProcessVariables,
userList,
readXml,
getFlowViewer,
} from "@/api/flowable/definition";
import {
complete,
rejectTask,
returnList,
returnTask,
getNextFlowNode,
delegate,
assignTask,
} from "@/api/flowable/todo";
import flow from "@/views/flowable/task/record/flow";
import Form from "../../../../components/Form.vue";
export default { export default {
name: "Record", name: "Record",
components: { components: {
Parser, Parser,
flow flow,
Form,
}, },
props: {}, props: {},
data() { data() {
return { return {
taskDialog: {
visible: false,
title: "委派任务",
type: "",
},
// 模型xml数据 // 模型xml数据
xmlData: "", xmlData: "",
taskList: [], taskList: [],
fileList: [],
// // 任务列表 // // 任务列表
// taskList: [{ // taskList: [{
// // 任务定义的key // // 任务定义的key
...@@ -158,53 +392,69 @@ export default { ...@@ -158,53 +392,69 @@ export default {
src: null, src: null,
rules: {}, // 表单校验 rules: {}, // 表单校验
variablesForm: {}, // 流程变量数据 variablesForm: {}, // 流程变量数据
taskForm:{ taskForm: {
returnTaskShow: false, // 是否展示回退表单 returnTaskShow: false, // 是否展示回退表单
delegateTaskShow: false, // 是否展示回退表单 delegateTaskShow: false, // 是否展示回退表单
defaultTaskShow: true, // 默认处理 defaultTaskShow: true, // 默认处理
sendUserShow: false, // 审批用户 sendUserShow: false, // 审批用户
multiple: false, multiple: false,
comment:"", // 意见内容 message: "", // 意见内容
procInsId: "", // 流程实例编号 processInstanceId: "", // 流程实例编号
instanceId: "", // 流程实例编号 instanceId: "", // 流程实例编号
deployId: "", // 流程定义编号 deployId: "", // 流程定义编号
taskId: "" ,// 流程任务编号 taskId: "", // 流程任务编号
procDefId: "", // 流程编号 procDefId: "", // 流程编号
vars: "", vars: "",
targetKey:"" activityId: "",
delegateUserCode: "", //委派对象人
turnToUserId: "", //转办对象人id
userCode: "", //当前任务人
attachments: [],
}, },
userDataList:[], // 流程候选人 userDataList: [], // 流程候选人
assignee: null, assignee: null,
formConf: {}, // 默认表单数据 formConf: {}, // 默认表单数据
formConfOpen: false, // 是否加载默认表单数据 formConfOpen: false, // 是否加载默认表单数据
variables: [], // 流程变量数据 variables: [], // 流程变量数据
variablesData: {}, // 流程变量数据 variablesData: {}, // 流程变量数据
variableOpen: false, // 是否加载流程变量数据 variableOpen: false, // 是否加载流程变量数据
returnTaskList: [], // 回退列表数据 returnTaskList: [], // 回退列表数据
finished: 'false' finished: "false",
}; };
}, },
created() { created() {
console.log("index",this.$route.query); console.log("index", this.$route.query);
this.taskForm.deployId = this.$route.query && this.$route.query.deployId; this.taskForm.deployId = this.$route.query && this.$route.query.deployId;
this.taskForm.taskId = this.$route.query && this.$route.query.taskId; this.taskForm.taskId = this.$route.query && this.$route.query.taskId;
this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId; this.taskForm.processInstanceId =
this.$route.query && this.$route.query.procInsId;
this.taskForm.instanceId = this.$route.query && this.$route.query.procInsId; this.taskForm.instanceId = this.$route.query && this.$route.query.procInsId;
// 初始化表单 // 初始化表单
this.taskForm.procDefId = this.$route.query && this.$route.query.procDefId; this.taskForm.procDefId = this.$route.query && this.$route.query.procDefId;
// 回显流程记录 // 回显流程记录
this.getFlowViewer(this.taskForm.procInsId); this.getFlowViewer(this.taskForm.processInstanceId);
this.getModelDetail(this.taskForm.deployId); this.getModelDetail(this.taskForm.deployId);
// 流程任务重获取变量表单 // 流程任务重获取变量表单
if (this.taskForm.taskId){ if (this.taskForm.taskId) {
this.processVariables( this.taskForm.taskId) this.processVariables(this.taskForm.taskId);
this.getNextFlowNode(this.taskForm.taskId) this.getNextFlowNode(this.taskForm.taskId);
this.taskForm.deployId = null this.taskForm.deployId = null;
} }
//获取审批记录 //获取审批记录
this.getFlowRecordList( this.taskForm.procInsId, this.taskForm.deployId); this.getFlowRecordList(
this.finished = this.$route.query && this.$route.query.finished this.taskForm.processInstanceId,
this.taskForm.deployId
);
//获取当前人员
userList({}).then(({ data }) => {
// this.variables = res.data.variables;
this.userDataList = data.result;
console.log("userDataList", this.userDataList);
});
this.finished = this.$route.query && this.$route.query.finished;
}, },
mounted() { mounted() {
// // 表单数据回填,模拟异步请求场景 // // 表单数据回填,模拟异步请求场景
...@@ -220,38 +470,69 @@ export default { ...@@ -220,38 +470,69 @@ export default {
// }, 1000) // }, 1000)
}, },
methods: { methods: {
/** 流程变量赋值 */
handleCheckChange(val) {
if (val instanceof Array) {
this.taskForm.values = {
approval: val.join(","),
};
} else {
this.taskForm.values = {
approval: val,
};
}
},
taskCancel(val) {
console.info("任务办理取消", val);
this.taskDialog.visible = false;
},
handleAttsSuccess(response, file, fileList) {
let code = response.code;
if (code === 1) {
let att = {};
att.name = file.name;
att.desc = "";
att.type = file.name.split(".")[1];
att.url = response.url;
formatterDate(time) { this.fileList.push(att);
} else {
let date = new Date(Number(time)); this.$message.error("上传文件失败");
let Y = date.getFullYear() + '-'; }
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; },
let D = this.panLeft(date.getDate()) + ' '; formatterDate(time) {
let h = this.panLeft(date.getHours()) + ':'; console.log("time:" + time);
let m = this.panLeft(date.getMinutes()) + ':'; let date = new Date(Number(time));
let s = this.panLeft(date.getSeconds()); let Y = date.getFullYear() + "-";
return Y+M+D+h+m+s; let M =
}, (date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
panLeft(num){ : date.getMonth() + 1) + "-";
return num < 10 ? '0'+num : num; let D = this.panLeft(date.getDate()) + " ";
}, let h = this.panLeft(date.getHours()) + ":";
let m = this.panLeft(date.getMinutes()) + ":";
let s = this.panLeft(date.getSeconds());
return Y + M + D + h + m + s;
},
panLeft(num) {
return num < 10 ? "0" + num : num;
},
/** xml 文件 */ /** xml 文件 */
getModelDetail(deployId) { getModelDetail(deployId) {
// 发送请求,获取xml // 发送请求,获取xml
console.log("发送请求,获取xml deployId:"+deployId); console.log("发送请求,获取xml deployId:" + deployId);
readXml(deployId).then(res =>{ readXml(deployId).then((res) => {
console.log(res); console.log(res);
this.xmlData = res.data this.xmlData = res.data;
}) });
}, },
getFlowViewer(procInsId){ getFlowViewer(procInsId) {
getFlowViewer(procInsId).then(res =>{ getFlowViewer(procInsId).then((res) => {
this.taskList = res.data this.taskList = res.data;
}) });
}, },
setIcon(val) { setIcon(val) {
if (val) { if (val) {
...@@ -268,136 +549,189 @@ panLeft(num){ ...@@ -268,136 +549,189 @@ panLeft(num){
} }
}, },
/** 流程变量赋值 */ /** 流程变量赋值 */
handleCheckChange(val){ handleCheckChange(val) {
console.log("流程变量赋值val",val); console.log("流程变量赋值val", val);
if (val instanceof Array) { if (val instanceof Array) {
this.taskForm.values = { this.taskForm.values = {
"approval": val.join(',') approval: val.join(","),
} };
}else { } else {
this.taskForm.values = { this.taskForm.values = {
"approval": val approval: val,
} };
} }
}, },
/** 流程流转记录 */ /** 流程流转记录 */
getFlowRecordList(procInsId, deployId) { getFlowRecordList(procInsId, deployId) {
console.log("流程流转记录 procInsId:"+procInsId+" deployId:"+deployId); console.log(
const params = {procInsId: procInsId, deployId: deployId} "流程流转记录 procInsId:" + procInsId + " deployId:" + deployId
flowRecord(params).then(res => { );
console.log("flowRecord res:",res); const params = { procInsId: procInsId, deployId: deployId };
this.flowRecordList = res.data.flowList; flowRecord(params)
// 流程过程中不存在初始化表单 直接读取的流程变量中存储的表单值 .then((res) => {
if (res.data.formData) { console.log("flowRecord res:", res);
this.formConf = res.data.formData; this.flowRecordList = res.data.flowList.list;
this.formConfOpen = true // 流程过程中不存在初始化表单 直接读取的流程变量中存储的表单值
} if (res.data.formData) {
}).catch(res => { this.formConf = res.data.formData;
this.goBack(); this.formConfOpen = true;
}) }
})
.catch((res) => {
this.goBack();
});
}, },
fillFormData(form, data) { fillFormData(form, data) {
form.fields.forEach(item => { form.fields.forEach((item) => {
const val = data[item.__vModel__] const val = data[item.__vModel__];
if (val) { if (val) {
item.__config__.defaultValue = val item.__config__.defaultValue = val;
} }
}) });
}, },
/** 获取流程变量内容 */ /** 获取流程变量内容 */
processVariables(taskId) { processVariables(taskId) {
if (taskId) { if (taskId) {
// 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示 // 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示
getProcessVariables(taskId).then(res => { getProcessVariables(taskId).then((res) => {
// this.variables = res.data.variables; // this.variables = res.data.variables;
console.log(res); console.log(res);
//console.log("variablesData",this.variablesData); //console.log("variablesData",this.variablesData);
//let json=JSON.parse(res.data.data); //let json=JSON.parse(res.data.data);
this.variablesData = res.data.variables; this.variablesData = res.data.variables;
this.variableOpen = true this.variableOpen = true;
}); });
} }
}, },
/** 根据当前任务或者流程设计配置的下一步节点 */ /** 根据当前任务或者流程设计配置的下一步节点 */
getNextFlowNode(taskId){ getNextFlowNode(taskId) {
// 根据当前任务或者流程设计配置的下一步节点 todo 暂时未涉及到考虑网关、表达式和多节点情况 // 根据当前任务或者流程设计配置的下一步节点 todo 暂时未涉及到考虑网关、表达式和多节点情况
const params = { taskId: taskId } const params = { taskId: taskId };
getNextFlowNode(params).then(res => { getNextFlowNode(params).then((res) => {
console.log("nextFlow",res)
const data = res.data; const data = res.data;
if (data) { if (data&&data.dateType=="dynamic") {
if (data.type === 'assignee') { if (data.type === "assignee") {
this.userDataList = res.data.userList; // this.userDataList = res.data.userList;
} else if (data.type === 'candidateUsers') { } else if (data.type === "candidateUsers") {
this.userDataList = res.data.userList; // this.userDataList = res.data.userList;
this.taskForm.multiple = true; this.taskForm.multiple = true;
} else if (data.type === 'candidateGroups') { } else if (data.type === "candidateGroups") {
res.data.roleList.forEach(role => { res.data.roleList.forEach((role) => {
role.userId = role.roleId; role.userId = role.roleId;
role.nickName = role.roleName; role.nickName = role.roleName;
}) });
this.userDataList = res.data.roleList; // this.userDataList = res.data.roleList;
this.taskForm.multiple = false; this.taskForm.multiple = false;
} else if (data.type === 'multiInstance') { } else if (data.type === "multiInstance") {
this.userDataList = res.data.userList; //this.userDataList = res.data.userList;
this.taskForm.multiple = true; this.taskForm.multiple = true;
} }
this.taskForm.sendUserShow = true; this.taskForm.sendUserShow = true;
} }
}) });
}, },
/** 审批任务 */ /** 审批任务 */
handleComplete() { handleComplete() {
this.$refs["taskForm"].validate(valid => { this.$refs["taskForm"].validate((valid) => {
if (valid) { if (valid) {
complete(this.taskForm).then(response => { for (let item of this.fileList) {
this.taskForm.attachments.push(item);
}
complete(this.taskForm).then((response) => {
this.$message.success(response.msg); this.$message.success(response.msg);
this.goBack(); this.goBack();
}); });
} }
}); });
}, },
/** 任务办理 */
taskConfirm() {
//判断是委派,转办还是其它
if (this.taskDialog.type === "delegate") {
//委派 目标人员
this.taskForm.delegateUserCode = this.assignee;
this.submitDeleteTask();
} else if (this.taskDialog.type === "assign") {
this.taskForm.turnToUserId = this.assignee;
this.submitAssignTask();
}
},
/** 委派任务 */ /** 委派任务 */
handleDelegate() { submitDeleteTask() {
this.taskForm.delegateTaskShow = true; this.$refs["taskForm"].validate((valid) => {
this.taskForm.defaultTaskShow = false; if (valid) {
delegate(this.taskForm).then((response) => {
this.$message.success(response.msg);
this.goBack();
});
}
});
},
/** 转办任务 */
submitAssignTask() {
this.$refs["taskForm"].validate((valid) => {
if (valid) {
assignTask(this.taskForm).then((response) => {
this.$message.success(response.msg);
this.goBack();
});
}
});
}, },
handleAssign(){
/** 委派任务 */
handleDelegate() {
console.log("委派人员,选择目标人员,进行办理");
this.taskDialog.title = "委派任务";
this.taskDialog.visible = true;
this.taskDialog.type = "delegate";
this.taskForm.multiple = false;
//this.taskForm.delegateTaskShow = true;
// this.taskForm.defaultTaskShow = false;
},
/** 转办任务 */
handleAssign() {
this.taskDialog.title = "转办任务";
this.taskDialog.visible = true;
this.taskDialog.type = "assign";
this.taskForm.multiple = false;
}, },
/** 返回页面 */ /** 返回页面 */
goBack() { goBack() {
// 关闭当前标签页并返回上个页面 // 关闭当前标签页并返回上个页面
this.$store.dispatch("tagsView/delView", this.$route); this.$store.dispatch("tagsView/delView", this.$route);
this.$router.go(-1) this.$router.go(-1);
}, },
/** 接收子组件传的值 */ /** 接收子组件传的值 */
getData(data) { getData(data) {
if (data) { if (data) {
const variables = []; const variables = [];
data.fields.forEach(item => { data.fields.forEach((item) => {
let variableData = {}; let variableData = {};
variableData.label = item.__config__.label variableData.label = item.__config__.label;
// 表单值为多个选项时 // 表单值为多个选项时
if (item.__config__.defaultValue instanceof Array) { if (item.__config__.defaultValue instanceof Array) {
const array = []; const array = [];
item.__config__.defaultValue.forEach(val => { item.__config__.defaultValue.forEach((val) => {
array.push(val) array.push(val);
}) });
variableData.val = array; variableData.val = array;
} else { } else {
variableData.val = item.__config__.defaultValue variableData.val = item.__config__.defaultValue;
} }
variables.push(variableData) variables.push(variableData);
}) });
this.variables = variables; this.variables = variables;
} }
}, },
/** 申请流程表单数据提交 */ /** 申请流程表单数据提交 */
submitForm(data) { submitForm(data) {
console.log("submitForm",data);
if (data) { if (data) {
const variables = data.valData; const variables = data.valData;
const formData = data.formData; const formData = data.formData;
...@@ -405,19 +739,22 @@ panLeft(num){ ...@@ -405,19 +739,22 @@ panLeft(num){
formData.formBtns = false; formData.formBtns = false;
if (this.taskForm.procDefId) { if (this.taskForm.procDefId) {
variables.variables = formData; variables.variables = formData;
// 启动流程并将表单数据加入流程变量 // 启动流程并将表单数据加入流程变量
definitionStart(this.taskForm.procDefId, JSON.stringify(variables)).then(res => { definitionStart(
this.taskForm.procDefId,
JSON.stringify(variables)
).then((res) => {
this.$message.success(res.msg); this.$message.success(res.msg);
this.goBack(); this.goBack();
}) });
} }
} }
}, },
/** 驳回任务 */ /** 驳回任务 */
handleReject() { handleReject() {
this.$refs["taskForm"].validate(valid => { this.$refs["taskForm"].validate((valid) => {
if (valid) { if (valid) {
rejectTask(this.taskForm).then(res => { rejectTask(this.taskForm).then((res) => {
this.$message.success(res.msg); this.$message.success(res.msg);
this.goBack(); this.goBack();
}); });
...@@ -426,13 +763,13 @@ panLeft(num){ ...@@ -426,13 +763,13 @@ panLeft(num){
}, },
/** 可退回任务列表 */ /** 可退回任务列表 */
handleReturn() { handleReturn() {
returnList(this.taskForm).then(res => { returnList(this.taskForm).then((res) => {
this.returnTaskList = res.data; this.returnTaskList = res.data;
this.taskForm.returnTaskShow = true; this.taskForm.returnTaskShow = true;
this.taskForm.defaultTaskShow = false; this.taskForm.defaultTaskShow = false;
this.taskForm.sendUserShow = false; this.taskForm.sendUserShow = false;
this.taskForm.values = null; this.taskForm.values = null;
}) });
}, },
/** 取消回退任务按钮 */ /** 取消回退任务按钮 */
cancelTask() { cancelTask() {
...@@ -443,26 +780,16 @@ panLeft(num){ ...@@ -443,26 +780,16 @@ panLeft(num){
}, },
/** 提交退回任务 */ /** 提交退回任务 */
submitReturnTask() { submitReturnTask() {
this.$refs["taskForm"].validate(valid => { this.$refs["taskForm"].validate((valid) => {
if (valid) { if (valid) {
returnTask(this.taskForm).then(res => { returnTask(this.taskForm).then((res) => {
this.$message.success(res.msg); this.$message.success(res.msg);
this.goBack()
});
}
});
},
/** 委派任务 */
submitDeleteTask() {
this.$refs["taskForm"].validate(valid => {
if (valid) {
delegate(this.taskForm).then(response => {
this.msgSuccess(response.msg);
this.goBack(); this.goBack();
}); });
} }
}); });
}, },
/** 取消回退任务按钮 */ /** 取消回退任务按钮 */
cancelDelegateTask() { cancelDelegateTask() {
this.taskForm.delegateTaskShow = false; this.taskForm.delegateTaskShow = false;
...@@ -470,7 +797,7 @@ panLeft(num){ ...@@ -470,7 +797,7 @@ panLeft(num){
this.taskForm.sendUserShow = true; this.taskForm.sendUserShow = true;
this.returnTaskList = []; this.returnTaskList = [];
}, },
} },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -486,7 +813,7 @@ panLeft(num){ ...@@ -486,7 +813,7 @@ panLeft(num){
content: ""; content: "";
} }
.clearfix:after { .clearfix:after {
clear: both clear: both;
} }
.box-card { .box-card {
......
...@@ -215,10 +215,6 @@ window.addEventListener('onmessageWS', getsocketData) ...@@ -215,10 +215,6 @@ window.addEventListener('onmessageWS', getsocketData)
}, },
], ],
columns: [ columns: [
{
type: "selection",
width: 60,
},
{ {
prop: "taskId", prop: "taskId",
...@@ -235,14 +231,6 @@ window.addEventListener('onmessageWS', getsocketData) ...@@ -235,14 +231,6 @@ window.addEventListener('onmessageWS', getsocketData)
label: "任务节点", label: "任务节点",
}, },
{
prop: "procDefVersion",
label: "流程版本",
formatter: (row) => {
return <el-tag size="medium">v{row.procDefVersion}</el-tag>;
},
},
{ {
prop: "startUserName", prop: "startUserName",
label: "流程发起人", label: "流程发起人",
......
...@@ -12,7 +12,7 @@ module.exports = { ...@@ -12,7 +12,7 @@ module.exports = {
lintOnSave:false, lintOnSave:false,
devServer: { devServer: {
disableHostCheck: true, disableHostCheck: true,
port: 8081, port: 8082,
hot: true,//自动保存 hot: true,//自动保存
proxy: { proxy: {
'/m': { '/m': {
......
...@@ -3680,6 +3680,18 @@ element-ui@^2.12.0, element-ui@^2.13.2: ...@@ -3680,6 +3680,18 @@ element-ui@^2.12.0, element-ui@^2.13.2:
resize-observer-polyfill "^1.5.0" resize-observer-polyfill "^1.5.0"
throttle-debounce "^1.0.1" throttle-debounce "^1.0.1"
element-ui@^2.15.5:
version "2.15.5"
resolved "https://registry.nlark.com/element-ui/download/element-ui-2.15.5.tgz#dfb376dc5cd60adab21c991bd4fac3e67e5300f4"
integrity sha1-37N23FzWCtqyHJkb1PrD5n5TAPQ=
dependencies:
async-validator "~1.8.1"
babel-helper-vue-jsx-merge-props "^2.0.0"
deepmerge "^1.2.0"
normalize-wheel "^1.0.1"
resize-observer-polyfill "^1.5.0"
throttle-debounce "^1.0.1"
elliptic@^6.5.3: elliptic@^6.5.3:
version "6.5.4" version "6.5.4"
resolved "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" resolved "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
......
...@@ -67,6 +67,23 @@ ...@@ -67,6 +67,23 @@
<version>2.5.2</version> <version>2.5.2</version>
</dependency> </dependency>
<dependency>
<groupId>io.github.yedaxia</groupId>
<artifactId>japidocs</artifactId>
<version>1.4.4</version>
</dependency>
<dependency>
<groupId>com.github.shalousun</groupId>
<artifactId>smart-doc</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
......
...@@ -50,7 +50,7 @@ import java.util.concurrent.atomic.AtomicBoolean; ...@@ -50,7 +50,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
@Slf4j @Slf4j
@Aspect @Aspect
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@Profile({"develop", "test"}) @Profile({"develop1", "test"})
public class RequestLogAspect { public class RequestLogAspect {
private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer();
......
///*
//package com.mortals.coops.base.login.web;
//
//import javax.servlet.Filter;
//
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import com.mortals.iot.portal.sso.client.web.SsoBaseConfiguration;
//
//@Configuration
//public class SsoConfiguration extends SsoBaseConfiguration {
//
// @Bean
// @ConditionalOnBean(SsoController.class)
// public FilterRegistrationBean<Filter> getSsoLoginFilterRegBean() {
// Filter filter = getSsoLoginFilter();
// FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<Filter>();
// bean.setFilter(filter);
// bean.addUrlPatterns("/*");
// bean.setOrder(2);
// return bean;
// }
//
// @Value("${cookie.ssoServerUrl}")
// @Override
// public void setSsoServerUrl(String ssoServerUrl) {
// super.setSsoServerUrl(ssoServerUrl);
// }
//
// @Value("#{ '${application.auth.unloginUrl:}'!='' ? '${application.auth.unloginUrl:}':'${spring.application.auth.unloginUrl:}' }")
// @Override
// public void setUncheckLoginUrls(String uncheckLoginUrl) {
// super.setUncheckLoginUrls(uncheckLoginUrl);
// }
//
// @Value("${cookie.key}")
// @Override
// public void setCookieSec(String cookieSec) {
// super.setCookieSec(cookieSec);
// }
//
// @Value("${cookie.domain}")
// @Override
// public void setCookieDomain(String cookieDomain) {
// super.setCookieDomain(cookieDomain);
// }
//
// @Value("${platform.mark}")
// @Override
// public void setPlatformMark(String platformMark) {
// super.setPlatformMark(platformMark);
// }
//}
//*/
//package com.mortals.coops.base.login.web;
//
//import java.net.URLEncoder;
//import java.util.Date;
//import java.util.List;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import com.mortals.coops.base.system.user.model.UserEntity;
//import org.apache.commons.lang.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.BeanUtils;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.context.request.RequestAttributes;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import com.alibaba.fastjson.JSONObject;
//import com.mortals.framework.model.Context;
//import com.mortals.iot.portal.sso.client.SsoClient;
//import com.mortals.iot.portal.sso.client.model.SsoCookie;
//import com.mortals.iot.portal.sso.client.model.SsoUser;
//import com.mortals.iot.portal.sso.client.model.SsoUserQueryReq;
//
////@RestController
//public class SsoController extends LoginController {
//
// private static Logger log = LoggerFactory.getLogger(SsoController.class);
//
// public SsoController() {
// log.info("============SSO登录模式,启动业务平台============");
// }
//
// @Override
// public String login(HttpServletRequest request, HttpServletResponse response, LoginForm loginForm)
// throws Exception {
// // 统一登录时进入>>>>>>>>>>>>>
//// log.info("request.getServerName()=====" + request.getServerName());
// // SsoClient.getConfiguration().setCookieDomain(request.getServerName());
// //SsoClient.getConfiguration().setCookieDomain("192.168.2.81");
// String sign = request.getParameter("sign");
// SsoCookie ssoCookie = null;
// String originHeads = request.getHeader("Origin");
// response.setHeader("Access-Control-Allow-Origin", originHeads);
// response.setHeader("Access-Control-Allow-Credentials", "true");
// if (sign != null && !sign.isEmpty()) {
// ssoCookie = SsoClient.decryptSign(request, response);
// if (ssoCookie == null || ssoCookie.getSsoUser() == null) {// 解密失败
// log.error("解密失败,返回到登录:" + sign);
// this.logout(request, response);
// } else {
// UserEntity localUser = saveUser(ssoCookie.getSsoUser());// 保存用户信息到本地
// super.recordSysLog(request, localUser, "用户登录");
// // 转换为业务平台用户信息,并种植cookie,以解决sso和业务平台用户ID不一至问题
// BeanUtils.copyProperties(localUser, ssoCookie.getSsoUser());
// SsoClient.setLoginCookie(ssoCookie, response);
// }
// return "";
// }
// // <<<<<<<<<<<<<
// // 非统一登录时进入>>>>>>>>>>>>>
// logout(request, response);
// return null;
// }
//
// /*
// * sso时,重写此方法,用于检查是否需要重定向到sso服务地址(未登录、已登录、修改密码重定向)
// */
// @Override
// public void logout(HttpServletRequest request, HttpServletResponse response) throws Exception {
// JSONObject ret = new JSONObject();
// JSONObject data = new JSONObject();
// String redirect = StringUtils.defaultString(request.getParameter("redirect"));
// if (!redirect.isEmpty() && SsoClient.getConfiguration().getChangePwdUrl().endsWith(redirect)) {// 修改密码跳转
// response.sendRedirect(SsoClient.getConfiguration().getChangePwdUrl());
// } else if (!redirect.isEmpty()) {// 未登录和已登录跳转
// SsoCookie info = SsoClient.getLoginCookie(request);
// if (info == null || info.getSsoUser() == null) {// 未登录
//// log.error("从请求中获取cookie失败");
// redirect = URLEncoder.encode(redirect, "UTF-8");
// response.sendRedirect(SsoClient.getConfiguration().getLogoutUrl(redirect));
// } else {// 已登录
// response.sendRedirect("/");
// }
// } else {// 正常退出
// this.doLogout(request, response);
// }
// ret.put(KEY_RESULT_DATA, data);
// ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
// this.writeResponse(response, ret.toJSONString());
// }
//
// public void doLogout(HttpServletRequest request, HttpServletResponse response) throws Exception {
// recordSysLog(request, "退出登录");
// super.removeCurrUser(request, response);
// super.deleteBlackCookie(request, response);
// SsoClient.deleteLoginCookie(response);
// }
//
// /**
// * 同步用户信息 demo
// * @param req
// */
// @RequestMapping(value = "syncSsoUsers")
// public void syncSsoUsers(SsoUserQueryReq req) {
// SsoUserQueryReq queryReq = new SsoUserQueryReq();
// List<SsoUser> ssoUsers = SsoClient.querySsoUser(queryReq);
// ssoUsers.stream().forEach(user -> {
// saveUser(user); // 保存用户信息到本地
// });
// }
//
// /**
// * 保存登录用户信息到本地用户表
// * @param ssoUser
// */
// private UserEntity saveUser(SsoUser ssoUser) {
// RequestAttributes requstAttr = RequestContextHolder.getRequestAttributes();
// HttpServletRequest request = ((ServletRequestAttributes) requstAttr).getRequest();
// String ip = this.getRequestIP(request);
// // 用户不存时,添加用户到本地用户表
// UserEntity query = new UserEntity();
// query.setId(ssoUser.getId());
// List<UserEntity> userEntities = getService().find(query, null);
// Date currDate = new Date();
// if (userEntities.isEmpty()) {
// try {
// UserEntity entity = new UserEntity();
// BeanUtils.copyProperties(ssoUser, entity);
// entity.setCreateTime(currDate);
// entity.setUpdateTime(currDate);
// entity.setLastLoginTime(currDate);
// entity.setLastLoginAddress(ip);
// return getService().save(entity, getContext());
// } catch (Exception e) {
// if (e instanceof org.springframework.dao.DuplicateKeyException) {
// userEntities = getService().find(query, null);
// } else {
// throw e;
// }
// }
// }
// if (userEntities.isEmpty()) {
// throw new RuntimeException("未找到匹配的用户信息");
// }
// UserEntity entity = userEntities.stream().findFirst().get();
// UserEntity uUserEntity = new UserEntity();
// uUserEntity.setId(entity.getId());
// uUserEntity.setUpdateTime(currDate);
// uUserEntity.setLastLoginTime(currDate);
// uUserEntity.setLastLoginAddress(ip);
// uUserEntity.setRealName(ssoUser.getRealName());
// uUserEntity.setMobile(ssoUser.getMobile());
// uUserEntity.setUserType(ssoUser.getUserType());
// uUserEntity.setStatus(ssoUser.getStatus());
// uUserEntity.setCustomerId(ssoUser.getCustomerId());
//
// Context context = getContext();
// context.setUser(entity);
// getService().update(uUserEntity, context);
// return entity;
// }
//}
...@@ -65,7 +65,7 @@ public class UploadServiceImpl implements UploadService { ...@@ -65,7 +65,7 @@ public class UploadServiceImpl implements UploadService {
} }
String newName = seqGeneratorService.nextOrderId(1024) + "." + extension; String newName = seqGeneratorService.nextOrderId(1023) + "." + extension;
String filePathAll = filePath + newName; String filePathAll = filePath + newName;
File uploadFile = new File(filePathAll); File uploadFile = new File(filePathAll);
......
package com.mortals.xhx.busiz;
import lombok.Data;
@Data
public class StartOneThingReq {
private Long oneThingId;
}
package com.mortals.xhx.busiz;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.ApiRespCodeEnum;
import com.mortals.xhx.common.code.ApproveStateEnum;
import com.mortals.xhx.common.code.OneThingTypeEnum;
import com.mortals.xhx.common.keys.BusizParams;
import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.runtime.StartProcessInstanceReq;
import com.mortals.xhx.module.member.model.MemberEntity;
import com.mortals.xhx.module.member.service.MemberService;
import com.mortals.xhx.module.onething.model.OnethingEntity;
import com.mortals.xhx.module.onething.service.OnethingService;
import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.Map;
/**
* 一件事微信对外服务接口
*
* @author: zxfei
* @date: 2021/8/24 20:28
*/
@RestController
@CommonsLog
@RequestMapping("/api/one/")
public class WxOneThingApiController {
@Autowired
private OnethingService onethingService;
@Autowired
private ParamService paramService;
@Autowired
private IApiFlowInstanceFeign apiFlowInstanceFeign;
@Autowired
private MemberService memberService;
@Autowired
private InterceptorConfig config;
/**
* 微信用户提交材料
*
* @param entity
* @return
*/
@PostMapping("thing/create")
public ApiResp<String> createThing(@RequestBody OnethingEntity entity) {
ApiResp rsp = new ApiResp<>();
rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
try {
entity.setType(OneThingTypeEnum.UNSUBMIT.getValue());
entity.setStatus(ApproveStateEnum.UN_AUDIT.getValue());
entity.setCreateUser("admin");
entity.setCreateTime(new Date());
OnethingEntity save = onethingService.save(entity);
rsp.setData(save.getId());
} catch (Exception e) {
log.error("流程实例化终止失败", e);
rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
rsp.setMsg(e.getMessage());
return rsp;
}
log.info("响应【材料创建】【响应体】--> " + JSONObject.toJSONString(rsp));
return rsp;
}
/**
* 发起流程
*
* @param req
* @return
*/
@PostMapping("thing/start")
public ApiResp<String> startProcess(@RequestBody StartOneThingReq req) {
ApiResp rsp = new ApiResp<>();
rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
try {
OnethingEntity onethingEntity = onethingService.get(req.getOneThingId());
MemberEntity memberEntity = memberService.get(onethingEntity.getMemberId());
//获取流程定义key 发起流程 当前通过param参数固定获取
String oneThingKey = paramService.getValueByKey(BusizParams.SYS_PARAM_FLOW_KEY);
//通过流程key获取基础提交参数
String vars = paramService.getValueByKey(oneThingKey);
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> variables = mapper.readValue(vars, Map.class);
StartProcessInstanceReq startProcessInstanceReq = new StartProcessInstanceReq();
startProcessInstanceReq.setProcessDefinitionKey(oneThingKey);
startProcessInstanceReq.setBusinessKey(onethingEntity.getId().toString());
startProcessInstanceReq.setFormName("一件事一次办");
startProcessInstanceReq.setUserCode(memberEntity.getOpenId());
startProcessInstanceReq.setPlatformSn(config.getTenantId());
startProcessInstanceReq.setVariables(variables);
ApiResp<String> resp = apiFlowInstanceFeign.processStart(startProcessInstanceReq);
onethingEntity.setProcessInstanceId(resp.getData());
onethingEntity.setType(OneThingTypeEnum.SUBMIT.getValue());
onethingEntity.setStatus(ApproveStateEnum.AUDITING.getValue());
onethingService.update(onethingEntity);
rsp.setData(resp.getData());
} catch (Exception e) {
log.error("发起审批流程", e);
rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
rsp.setMsg(e.getMessage());
return rsp;
}
log.info("响应【材料创建】【响应体】--> " + JSONObject.toJSONString(rsp));
return rsp;
}
}
###材料创建
POST {{baseUrl}}/m//api/one/thing/create
Content-Type: application/json
{
"memberId": 1,
"matterid": 41,
"uploadtime": 683,
"address": "黎桥8号, 江阴, 沪 949973",
"linkman": "fon85y",
"phone": 802,
"updateTime":12255555,
"manner": 0,
"getnum": "aumqil",
"number": "l6xlee",
"optionContent": "ep6etx",
"isRevoke": 1,
"siteid": 143
}
###发起审批
POST {{baseUrl}}/m//api/one/thing/start
Content-Type: application/json
{
"oneThingId": 2
}
package com.mortals.xhx.common.code;
/**
* @author karlhoo
*/
public enum ApiRespCodeEnum {
/** 接收成功 */
SUCCESS(1, "接收成功"),
/** 执行失败 */
FAILED(2,"执行失败"),
;
private final Integer value;
private final String label;
ApiRespCodeEnum(Integer value, String label) {
this.value = value;
this.label = label;
}
public int getValue() {
return this.value;
}
public String getLabel() {
return this.label;
}
}
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author: finegirl
* @date: 2021/7/16 11:50
* @description: //TODO 请完善注释信息
**/
public enum OneThingTypeEnum {
UNSUBMIT(1, "资料上传"),
SUBMIT(2, "确认提交");
private int value;
private String desc;
private OneThingTypeEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static OneThingTypeEnum getByValue(int value) {
OneThingTypeEnum[] var1 = values();
int var2 = var1.length;
for(int var3 = 0; var3 < var2; ++var3) {
OneThingTypeEnum examStatus = var1[var3];
if (examStatus.getValue() == value) {
return examStatus;
}
}
return null;
}
public static Map<String, String> getEnumMap(int... eItem) {
Map<String, String> resultMap = new LinkedHashMap();
OneThingTypeEnum[] var2 = values();
int var3 = var2.length;
for(int var4 = 0; var4 < var3; ++var4) {
OneThingTypeEnum item = var2[var4];
try {
boolean hasE = false;
int[] var7 = eItem;
int var8 = eItem.length;
for(int var9 = 0; var9 < var8; ++var9) {
int e = var7[var9];
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception var11) {
}
}
return resultMap;
}
}
\ No newline at end of file
...@@ -5,6 +5,7 @@ public final class Constant { ...@@ -5,6 +5,7 @@ public final class Constant {
/** 基础代码版本 Z-BASE.MANAGER-S1.0.0 */ /** 基础代码版本 Z-BASE.MANAGER-S1.0.0 */
public final static String BASEMANAGER_VERSION = "Z-BASE.MANAGER-S1.0.0"; public final static String BASEMANAGER_VERSION = "Z-BASE.MANAGER-S1.0.0";
public final static String Param_materialProperty = "materialProperty";
public final static String Param_materialType = "materialType"; public final static String Param_materialType = "materialType";
public final static String Param_electronicgs = "electronicgs"; public final static String Param_electronicgs = "electronicgs";
public final static String Param_materialSourceSm = "materialSourceSm"; public final static String Param_materialSourceSm = "materialSourceSm";
......
...@@ -15,6 +15,8 @@ import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign; ...@@ -15,6 +15,8 @@ import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign;
import com.mortals.xhx.feign.flowable.IApiFlowFeign; import com.mortals.xhx.feign.flowable.IApiFlowFeign;
import com.mortals.xhx.module.flowable.web.FlowableDefinitionForm; import com.mortals.xhx.module.flowable.web.FlowableDefinitionForm;
import com.mortals.xhx.module.form.web.FormForm; import com.mortals.xhx.module.form.web.FormForm;
import io.github.yedaxia.apidocs.Docs;
import io.github.yedaxia.apidocs.DocsConfig;
import lombok.extern.apachecommons.CommonsLog; import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -39,7 +41,12 @@ public class RequestDispatchController { ...@@ -39,7 +41,12 @@ public class RequestDispatchController {
private IApiFlowDefinitionFeign apiFlowDefinitionFeign; private IApiFlowDefinitionFeign apiFlowDefinitionFeign;
/**
* eeeee
*
* @param multipartFile
* @return
*/
@RequestMapping(value = "/importXml", method = RequestMethod.POST) @RequestMapping(value = "/importXml", method = RequestMethod.POST)
public ApiRespPdu importXml(@RequestParam("file") MultipartFile multipartFile) { public ApiRespPdu importXml(@RequestParam("file") MultipartFile multipartFile) {
...@@ -58,9 +65,14 @@ public class RequestDispatchController { ...@@ -58,9 +65,14 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* afdaf
*
* @param form
* @return
*/
@PostMapping("/form") @PostMapping("/form")
public ApiRespPdu form( @RequestBody FormForm form) { public ApiRespPdu form(@RequestBody FormForm form) {
ApiRespPdu<String> respPdu = new ApiRespPdu<>(); ApiRespPdu<String> respPdu = new ApiRespPdu<>();
try { try {
...@@ -71,25 +83,36 @@ public class RequestDispatchController { ...@@ -71,25 +83,36 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* adfafafd
*
* @param req
* @return
*/
@PostMapping("/readXml") @PostMapping("/readXml")
public ApiRespPdu readXml(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu readXml(@RequestBody ApiReqPdu<RequestTaskReq> req) {
ApiRespPdu<String> respPdu = new ApiRespPdu<>(); ApiRespPdu<String> respPdu = new ApiRespPdu<>();
try { try {
respPdu = apiFlowDefinitionFeign.readXml(req.getTransmission().getDeployId()); //respPdu = apiFlowDefinitionFeign.readXml(req.getTransmission().getDeployId());
} catch (Exception e) { } catch (Exception e) {
log.error("error", e); log.error("error", e);
} }
return respPdu; return respPdu;
} }
/**
* adfasfd
*
* @param req
* @return
*/
@PostMapping("/readImage") @PostMapping("/readImage")
public ApiRespPdu readImage(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu readImage(@RequestBody ApiReqPdu<RequestTaskReq> req) {
ApiRespPdu<String> respPdu = new ApiRespPdu<>(); ApiRespPdu<String> respPdu = new ApiRespPdu<>();
try { try {
respPdu = apiFlowDefinitionFeign.readImage(req.getTransmission().getDeployId()); //respPdu = apiFlowDefinitionFeign.readImage(req.getTransmission().getDeployId());
String data = respPdu.getData(); String data = respPdu.getData();
byte[] decode = Base64.decode(data); byte[] decode = Base64.decode(data);
...@@ -103,20 +126,30 @@ public class RequestDispatchController { ...@@ -103,20 +126,30 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* fafda
*
* @param req
* @return
*/
@PostMapping("/delete") @PostMapping("/delete")
public ApiRespPdu delete(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu delete(@RequestBody ApiReqPdu<RequestTaskReq> req) {
ApiRespPdu<String> respPdu = new ApiRespPdu<>(); ApiRespPdu<String> respPdu = new ApiRespPdu<>();
try { try {
respPdu = apiFlowDefinitionFeign.delete(req.getTransmission().getDeployId()); // respPdu = apiFlowDefinitionFeign.delete(req.getTransmission().getDeployId());
} catch (Exception e) { } catch (Exception e) {
log.error("error", e); log.error("error", e);
} }
return respPdu; return respPdu;
} }
/**
* afdasfdasfd
*
* @param req
* @return
*/
@PostMapping("/list") @PostMapping("/list")
public ApiRespPdu list(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu list(@RequestBody ApiReqPdu<RequestTaskReq> req) {
...@@ -131,6 +164,12 @@ public class RequestDispatchController { ...@@ -131,6 +164,12 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* dfasfdaf
*
* @param req
* @return
*/
@PostMapping("task/acceptor") @PostMapping("task/acceptor")
public ApiRespPdu taskAcceptor(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu taskAcceptor(@RequestBody ApiReqPdu<RequestTaskReq> req) {
...@@ -144,6 +183,12 @@ public class RequestDispatchController { ...@@ -144,6 +183,12 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* fasfdasfd
*
* @param req
* @return
*/
@PostMapping("task/deploy") @PostMapping("task/deploy")
public ApiRespPdu deploy(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu deploy(@RequestBody ApiReqPdu<RequestTaskReq> req) {
...@@ -156,6 +201,12 @@ public class RequestDispatchController { ...@@ -156,6 +201,12 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* dfafdasfda
*
* @param req
* @return
*/
@PostMapping("task/start") @PostMapping("task/start")
public ApiRespPdu start(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu start(@RequestBody ApiReqPdu<RequestTaskReq> req) {
log.info("receive api request:" + JSON.toJSONString(req)); log.info("receive api request:" + JSON.toJSONString(req));
...@@ -168,7 +219,12 @@ public class RequestDispatchController { ...@@ -168,7 +219,12 @@ public class RequestDispatchController {
return respPdu; return respPdu;
} }
/**
* afasdfasf
*
* @param req
* @return
*/
@PostMapping("task/complete") @PostMapping("task/complete")
public ApiRespPdu taskComplete(@RequestBody ApiReqPdu<RequestTaskReq> req) { public ApiRespPdu taskComplete(@RequestBody ApiReqPdu<RequestTaskReq> req) {
log.info("receive api request:" + JSON.toJSONString(req)); log.info("receive api request:" + JSON.toJSONString(req));
...@@ -326,14 +382,30 @@ public class RequestDispatchController { ...@@ -326,14 +382,30 @@ public class RequestDispatchController {
// System.out.println(JSON.toJSONString(requestTaskReqApiReqPdu)); // System.out.println(JSON.toJSONString(requestTaskReqApiReqPdu));
FormForm formForm = new FormForm(); // FormForm formForm = new FormForm();
formForm.getQuery().setFormName("111"); // formForm.getQuery().setFormName("111");
formForm.setId(new Long[]{1L}); // formForm.setId(new Long[]{1L});
formForm.getEntity().setFormName("test"); // formForm.getEntity().setFormName("test");
//
formForm.getQuery().setIdList(Arrays.asList(1L,2L)); // formForm.getQuery().setIdList(Arrays.asList(1L,2L));
//
System.out.println(JSON.toJSONString(formForm)); // System.out.println(JSON.toJSONString(formForm));
DocsConfig config = new DocsConfig();
// 项目根目录
config.setProjectPath("E:\\xhx\\government-platform\\government-manager");
// 项目名称
config.setProjectName("Assembly");
// 声明该API的版本
config.setApiVersion("V2.0");
// 生成API 文档所在目录
config.setDocsPath("E:\\xhx\\government-platform\\government-manager");
// 配置自动生成
//config.
config.setAutoGenerate(Boolean.TRUE);
// 执行生成文档
Docs.buildHtmlDocs(config);
} }
......
...@@ -34,7 +34,7 @@ public class RequestInstanceController { ...@@ -34,7 +34,7 @@ public class RequestInstanceController {
variables.put("initiator", req.getTransmission().getUserId()); variables.put("initiator", req.getTransmission().getUserId());
variables.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true); variables.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true);
respPdu = apiFlowInstanceFeign.startById(req.getTransmission().getProcDefId(), variables); //respPdu = apiFlowInstanceFeign.startById(req.getTransmission().getProcDefId(), variables);
} catch (Exception e) { } catch (Exception e) {
log.error("error", e); log.error("error", e);
} }
...@@ -46,7 +46,7 @@ public class RequestInstanceController { ...@@ -46,7 +46,7 @@ public class RequestInstanceController {
ApiRespPdu<String> respPdu = new ApiRespPdu<>(); ApiRespPdu<String> respPdu = new ApiRespPdu<>();
try { try {
respPdu = apiFlowInstanceFeign.updateState(req.getTransmission().getState(),req.getTransmission().getProcessInstanceId()); //respPdu = apiFlowInstanceFeign.updateState(req.getTransmission().getState(),req.getTransmission().getProcessInstanceId());
} catch (Exception e) { } catch (Exception e) {
log.error("error", e); log.error("error", e);
} }
......
package com.mortals.xhx.module.datum.model; package com.mortals.xhx.module.datum.model;
import java.util.Date; import java.util.Date;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
/** /**
* * Description:Datum
* Description:Datum * date: 2021-8-18 14:24:46
* date: 2021-8-18 14:24:46 */
*/ public class DatumEntity extends BaseEntityLong {
public class DatumEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886241L; private static final long serialVersionUID = 1629267886241L;
/** /**
* 材料名 * 材料名
*/ */
private String materialName; private String materialName;
/** /**
* 基础表one_basics id * 基础表one_basics id
*/ */
private Long basicsId; private Long basicsId;
/** /**
* 事项表yth_matter id 表示从一体化获取的材料 * 事项表yth_matter id 表示从一体化获取的材料
*/ */
private Long matterid; private Long matterid;
/** /**
* 材料表yth_datum id 表示从一体化获取的材料 * 材料表yth_datum id 表示从一体化获取的材料
*/ */
private Long datumId; private Long datumId;
/** /**
* 材料形式 * 材料形式
*/ */
private Integer materialProperty; private Integer materialProperty;
/** /**
* 是否必交,0 否 1 是 默认0 * 是否必交,0 否 1 是 默认0
*/ */
private Integer isMust; private Integer isMust;
/** /**
* 材料类型 * 材料类型
*/ */
private Integer materialType; private Integer materialType;
/** /**
* 电子材料格式 * 电子材料格式
*/ */
private Integer electronicgs; private Integer electronicgs;
/** /**
* 材料来源渠道 * 材料来源渠道
*/ */
private Integer materialSource; private Integer materialSource;
/** /**
* 纸质材料份数 * 纸质材料份数
*/ */
private Integer paperNum; private Integer paperNum;
/** /**
* 纸质材料规格 * 纸质材料规格
*/ */
private Integer paperGg; private Integer paperGg;
/** /**
* 减免模式 * 减免模式
*/ */
private Integer jianmMs; private Integer jianmMs;
/** /**
* 盖章方式 * 盖章方式
*/ */
private Integer sealWay; private Integer sealWay;
/** /**
* 是否减免 * 是否减免
*/ */
private Integer isjianm; private Integer isjianm;
/** /**
* 材料是否容缺 * 材料是否容缺
*/ */
private Integer isLack; private Integer isLack;
/** /**
* 材料地址 * 材料地址
*/ */
private String ybUrl; private String ybUrl;
/** /**
* 来源渠道说明 * 来源渠道说明
*/ */
private Integer materialSourceSm; private String materialSourceSm;
/** /**
* 填报须知 * 填报须知
*/ */
private String remarkSub; private String remarkSub;
/** /**
* 受理标准 * 受理标准
*/ */
private String remark; private String remark;
/** /**
* 要求提供材料的依据 * 要求提供材料的依据
*/ */
private String clauseContent; private String clauseContent;
/** /**
* 备注 * 备注
*/ */
private String summary; private String summary;
/** /**
* 0正常 1删除 * 0正常 1删除
*/ */
private Integer valid; private Integer valid;
/** /**
* 变更时间 * 变更时间
*/ */
private Date updateTime; private Date updateTime;
/** /**
* 变更用户loginName * 变更用户loginName
*/ */
private String updateUser; private String updateUser;
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private Date createTime;
/** /**
* 创建用户loginName * 创建用户loginName
*/ */
private String createUser; private String createUser;
public DatumEntity(){ public DatumEntity() {
} }
/** /**
* 获取 材料名 * 获取 材料名
* @return materialName *
*/ * @return materialName
*/
public String getMaterialName() { public String getMaterialName() {
return this.materialName; return this.materialName;
} }
/** /**
* 设置 材料名 * 设置 材料名
* @param materialName *
*/ * @param materialName
*/
public void setMaterialName(String materialName) { public void setMaterialName(String materialName) {
this.materialName = materialName; this.materialName = materialName;
} }
/** /**
* 获取 基础表one_basics id * 获取 基础表one_basics id
* @return basicsId *
*/ * @return basicsId
*/
public Long getBasicsId() { public Long getBasicsId() {
return this.basicsId; return this.basicsId;
} }
/** /**
* 设置 基础表one_basics id * 设置 基础表one_basics id
* @param basicsId *
*/ * @param basicsId
*/
public void setBasicsId(Long basicsId) { public void setBasicsId(Long basicsId) {
this.basicsId = basicsId; this.basicsId = basicsId;
} }
/** /**
* 获取 事项表yth_matter id 表示从一体化获取的材料 * 获取 事项表yth_matter id 表示从一体化获取的材料
* @return matterid *
*/ * @return matterid
*/
public Long getMatterid() { public Long getMatterid() {
return this.matterid; return this.matterid;
} }
/** /**
* 设置 事项表yth_matter id 表示从一体化获取的材料 * 设置 事项表yth_matter id 表示从一体化获取的材料
* @param matterid *
*/ * @param matterid
*/
public void setMatterid(Long matterid) { public void setMatterid(Long matterid) {
this.matterid = matterid; this.matterid = matterid;
} }
/** /**
* 获取 材料表yth_datum id 表示从一体化获取的材料 * 获取 材料表yth_datum id 表示从一体化获取的材料
* @return datumId *
*/ * @return datumId
*/
public Long getDatumId() { public Long getDatumId() {
return this.datumId; return this.datumId;
} }
/** /**
* 设置 材料表yth_datum id 表示从一体化获取的材料 * 设置 材料表yth_datum id 表示从一体化获取的材料
* @param datumId *
*/ * @param datumId
*/
public void setDatumId(Long datumId) { public void setDatumId(Long datumId) {
this.datumId = datumId; this.datumId = datumId;
} }
/** /**
* 获取 材料形式 * 获取 材料形式
* @return materialProperty *
*/ * @return materialProperty
*/
public Integer getMaterialProperty() { public Integer getMaterialProperty() {
return this.materialProperty; return this.materialProperty;
} }
/** /**
* 设置 材料形式 * 设置 材料形式
* @param materialProperty *
*/ * @param materialProperty
*/
public void setMaterialProperty(Integer materialProperty) { public void setMaterialProperty(Integer materialProperty) {
this.materialProperty = materialProperty; this.materialProperty = materialProperty;
} }
/** /**
* 获取 是否必交,0 否 1 是 默认0 * 获取 是否必交,0 否 1 是 默认0
* @return isMust *
*/ * @return isMust
*/
public Integer getIsMust() { public Integer getIsMust() {
return this.isMust; return this.isMust;
} }
/** /**
* 设置 是否必交,0 否 1 是 默认0 * 设置 是否必交,0 否 1 是 默认0
* @param isMust *
*/ * @param isMust
*/
public void setIsMust(Integer isMust) { public void setIsMust(Integer isMust) {
this.isMust = isMust; this.isMust = isMust;
} }
/** /**
* 获取 材料类型 * 获取 材料类型
* @return materialType *
*/ * @return materialType
*/
public Integer getMaterialType() { public Integer getMaterialType() {
return this.materialType; return this.materialType;
} }
/** /**
* 设置 材料类型 * 设置 材料类型
* @param materialType *
*/ * @param materialType
*/
public void setMaterialType(Integer materialType) { public void setMaterialType(Integer materialType) {
this.materialType = materialType; this.materialType = materialType;
} }
/** /**
* 获取 电子材料格式 * 获取 电子材料格式
* @return electronicgs *
*/ * @return electronicgs
*/
public Integer getElectronicgs() { public Integer getElectronicgs() {
return this.electronicgs; return this.electronicgs;
} }
/** /**
* 设置 电子材料格式 * 设置 电子材料格式
* @param electronicgs *
*/ * @param electronicgs
*/
public void setElectronicgs(Integer electronicgs) { public void setElectronicgs(Integer electronicgs) {
this.electronicgs = electronicgs; this.electronicgs = electronicgs;
} }
/** /**
* 获取 材料来源渠道 * 获取 材料来源渠道
* @return materialSource *
*/ * @return materialSource
*/
public Integer getMaterialSource() { public Integer getMaterialSource() {
return this.materialSource; return this.materialSource;
} }
/** /**
* 设置 材料来源渠道 * 设置 材料来源渠道
* @param materialSource *
*/ * @param materialSource
*/
public void setMaterialSource(Integer materialSource) { public void setMaterialSource(Integer materialSource) {
this.materialSource = materialSource; this.materialSource = materialSource;
} }
/** /**
* 获取 纸质材料份数 * 获取 纸质材料份数
* @return paperNum *
*/ * @return paperNum
*/
public Integer getPaperNum() { public Integer getPaperNum() {
return this.paperNum; return this.paperNum;
} }
/** /**
* 设置 纸质材料份数 * 设置 纸质材料份数
* @param paperNum *
*/ * @param paperNum
*/
public void setPaperNum(Integer paperNum) { public void setPaperNum(Integer paperNum) {
this.paperNum = paperNum; this.paperNum = paperNum;
} }
/** /**
* 获取 纸质材料规格 * 获取 纸质材料规格
* @return paperGg *
*/ * @return paperGg
*/
public Integer getPaperGg() { public Integer getPaperGg() {
return this.paperGg; return this.paperGg;
} }
/** /**
* 设置 纸质材料规格 * 设置 纸质材料规格
* @param paperGg *
*/ * @param paperGg
*/
public void setPaperGg(Integer paperGg) { public void setPaperGg(Integer paperGg) {
this.paperGg = paperGg; this.paperGg = paperGg;
} }
/** /**
* 获取 减免模式 * 获取 减免模式
* @return jianmMs *
*/ * @return jianmMs
*/
public Integer getJianmMs() { public Integer getJianmMs() {
return this.jianmMs; return this.jianmMs;
} }
/** /**
* 设置 减免模式 * 设置 减免模式
* @param jianmMs *
*/ * @param jianmMs
*/
public void setJianmMs(Integer jianmMs) { public void setJianmMs(Integer jianmMs) {
this.jianmMs = jianmMs; this.jianmMs = jianmMs;
} }
/** /**
* 获取 盖章方式 * 获取 盖章方式
* @return sealWay *
*/ * @return sealWay
*/
public Integer getSealWay() { public Integer getSealWay() {
return this.sealWay; return this.sealWay;
} }
/** /**
* 设置 盖章方式 * 设置 盖章方式
* @param sealWay *
*/ * @param sealWay
*/
public void setSealWay(Integer sealWay) { public void setSealWay(Integer sealWay) {
this.sealWay = sealWay; this.sealWay = sealWay;
} }
/** /**
* 获取 是否减免 * 获取 是否减免
* @return isjianm *
*/ * @return isjianm
*/
public Integer getIsjianm() { public Integer getIsjianm() {
return this.isjianm; return this.isjianm;
} }
/** /**
* 设置 是否减免 * 设置 是否减免
* @param isjianm *
*/ * @param isjianm
*/
public void setIsjianm(Integer isjianm) { public void setIsjianm(Integer isjianm) {
this.isjianm = isjianm; this.isjianm = isjianm;
} }
/** /**
* 获取 材料是否容缺 * 获取 材料是否容缺
* @return isLack *
*/ * @return isLack
*/
public Integer getIsLack() { public Integer getIsLack() {
return this.isLack; return this.isLack;
} }
/** /**
* 设置 材料是否容缺 * 设置 材料是否容缺
* @param isLack *
*/ * @param isLack
*/
public void setIsLack(Integer isLack) { public void setIsLack(Integer isLack) {
this.isLack = isLack; this.isLack = isLack;
} }
/** /**
* 获取 材料地址 * 获取 材料地址
* @return ybUrl *
*/ * @return ybUrl
*/
public String getYbUrl() { public String getYbUrl() {
return this.ybUrl; return this.ybUrl;
} }
/** /**
* 设置 材料地址 * 设置 材料地址
* @param ybUrl *
*/ * @param ybUrl
*/
public void setYbUrl(String ybUrl) { public void setYbUrl(String ybUrl) {
this.ybUrl = ybUrl; this.ybUrl = ybUrl;
} }
/** /**
* 获取 来源渠道说明 * 获取 来源渠道说明
* @return materialSourceSm *
*/ * @return materialSourceSm
public Integer getMaterialSourceSm() { */
public String getMaterialSourceSm() {
return this.materialSourceSm; return this.materialSourceSm;
} }
/** /**
* 设置 来源渠道说明 * 设置 来源渠道说明
* @param materialSourceSm *
*/ * @param materialSourceSm
public void setMaterialSourceSm(Integer materialSourceSm) { */
public void setMaterialSourceSm(String materialSourceSm) {
this.materialSourceSm = materialSourceSm; this.materialSourceSm = materialSourceSm;
} }
/** /**
* 获取 填报须知 * 获取 填报须知
* @return remarkSub *
*/ * @return remarkSub
*/
public String getRemarkSub() { public String getRemarkSub() {
return this.remarkSub; return this.remarkSub;
} }
/** /**
* 设置 填报须知 * 设置 填报须知
* @param remarkSub *
*/ * @param remarkSub
*/
public void setRemarkSub(String remarkSub) { public void setRemarkSub(String remarkSub) {
this.remarkSub = remarkSub; this.remarkSub = remarkSub;
} }
/** /**
* 获取 受理标准 * 获取 受理标准
* @return remark *
*/ * @return remark
*/
public String getRemark() { public String getRemark() {
return this.remark; return this.remark;
} }
/** /**
* 设置 受理标准 * 设置 受理标准
* @param remark *
*/ * @param remark
*/
public void setRemark(String remark) { public void setRemark(String remark) {
this.remark = remark; this.remark = remark;
} }
/** /**
* 获取 要求提供材料的依据 * 获取 要求提供材料的依据
* @return clauseContent *
*/ * @return clauseContent
*/
public String getClauseContent() { public String getClauseContent() {
return this.clauseContent; return this.clauseContent;
} }
/** /**
* 设置 要求提供材料的依据 * 设置 要求提供材料的依据
* @param clauseContent *
*/ * @param clauseContent
*/
public void setClauseContent(String clauseContent) { public void setClauseContent(String clauseContent) {
this.clauseContent = clauseContent; this.clauseContent = clauseContent;
} }
/** /**
* 获取 备注 * 获取 备注
* @return summary *
*/ * @return summary
*/
public String getSummary() { public String getSummary() {
return this.summary; return this.summary;
} }
/** /**
* 设置 备注 * 设置 备注
* @param summary *
*/ * @param summary
*/
public void setSummary(String summary) { public void setSummary(String summary) {
this.summary = summary; this.summary = summary;
} }
/** /**
* 获取 0正常 1删除 * 获取 0正常 1删除
* @return valid *
*/ * @return valid
*/
public Integer getValid() { public Integer getValid() {
return this.valid; return this.valid;
} }
/** /**
* 设置 0正常 1删除 * 设置 0正常 1删除
* @param valid *
*/ * @param valid
*/
public void setValid(Integer valid) { public void setValid(Integer valid) {
this.valid = valid; this.valid = valid;
} }
/** /**
* 获取 变更时间 * 获取 变更时间
* @return updateTime *
*/ * @return updateTime
*/
public Date getUpdateTime() { public Date getUpdateTime() {
return this.updateTime; return this.updateTime;
} }
/** /**
* 设置 变更时间 * 设置 变更时间
* @param updateTime *
*/ * @param updateTime
*/
public void setUpdateTime(Date updateTime) { public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
/** /**
* 获取 变更用户loginName * 获取 变更用户loginName
* @return updateUser *
*/ * @return updateUser
*/
public String getUpdateUser() { public String getUpdateUser() {
return this.updateUser; return this.updateUser;
} }
/** /**
* 设置 变更用户loginName * 设置 变更用户loginName
* @param updateUser *
*/ * @param updateUser
*/
public void setUpdateUser(String updateUser) { public void setUpdateUser(String updateUser) {
this.updateUser = updateUser; this.updateUser = updateUser;
} }
/** /**
* 获取 创建时间 * 获取 创建时间
* @return createTime *
*/ * @return createTime
*/
public Date getCreateTime() { public Date getCreateTime() {
return this.createTime; return this.createTime;
} }
/** /**
* 设置 创建时间 * 设置 创建时间
* @param createTime *
*/ * @param createTime
*/
public void setCreateTime(Date createTime) { public void setCreateTime(Date createTime) {
this.createTime = createTime; this.createTime = createTime;
} }
/** /**
* 获取 创建用户loginName * 获取 创建用户loginName
* @return createUser *
*/ * @return createUser
*/
public String getCreateUser() { public String getCreateUser() {
return this.createUser; return this.createUser;
} }
/** /**
* 设置 创建用户loginName * 设置 创建用户loginName
* @param createUser *
*/ * @param createUser
*/
public void setCreateUser(String createUser) { public void setCreateUser(String createUser) {
this.createUser = createUser; this.createUser = createUser;
} }
...@@ -513,6 +618,7 @@ public class DatumEntity extends BaseEntityLong{ ...@@ -513,6 +618,7 @@ public class DatumEntity extends BaseEntityLong{
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (obj == null) if (obj == null)
...@@ -526,10 +632,10 @@ public class DatumEntity extends BaseEntityLong{ ...@@ -526,10 +632,10 @@ public class DatumEntity extends BaseEntityLong{
return false; return false;
} }
public String toString(){ public String toString() {
StringBuilder sb = new StringBuilder(""); StringBuilder sb = new StringBuilder("");
sb sb
.append(",id:").append(getId()) .append(",id:").append(getId())
.append(",materialName:").append(getMaterialName()) .append(",materialName:").append(getMaterialName())
.append(",basicsId:").append(getBasicsId()) .append(",basicsId:").append(getBasicsId())
.append(",matterid:").append(getMatterid()) .append(",matterid:").append(getMatterid())
...@@ -560,58 +666,58 @@ public class DatumEntity extends BaseEntityLong{ ...@@ -560,58 +666,58 @@ public class DatumEntity extends BaseEntityLong{
return sb.toString(); return sb.toString();
} }
public void initAttrValue(){ public void initAttrValue() {
this.materialName = null; this.materialName = null;
this.basicsId = null; this.basicsId = null;
this.matterid = null; this.matterid = null;
this.datumId = null; this.datumId = null;
this.materialProperty = null; this.materialProperty = null;
this.isMust = null; this.isMust = null;
this.materialType = null; this.materialType = null;
this.electronicgs = null; this.electronicgs = null;
this.materialSource = null; this.materialSource = null;
this.paperNum = null; this.paperNum = null;
this.paperGg = null; this.paperGg = null;
this.jianmMs = null; this.jianmMs = null;
this.sealWay = null; this.sealWay = null;
this.isjianm = null; this.isjianm = null;
this.isLack = null; this.isLack = null;
this.ybUrl = null; this.ybUrl = null;
this.materialSourceSm = null; this.materialSourceSm = null;
this.remarkSub = null; this.remarkSub = null;
this.remark = null; this.remark = null;
this.clauseContent = null; this.clauseContent = null;
this.summary = null; this.summary = null;
this.valid = null; this.valid = 0;
this.updateTime = null; this.updateTime = null;
this.updateUser = null; this.updateUser = null;
this.createTime = null; this.createTime = null;
this.createUser = null; this.createUser = null;
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.datum.web; package com.mortals.xhx.module.datum.web;
import cn.hutool.core.io.IoUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.model.Context;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu;
import com.mortals.xhx.module.basics.web.BasicsForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonMappingController; import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.module.datum.model.DatumEntity; import com.mortals.xhx.module.datum.model.DatumEntity;
import com.mortals.xhx.module.datum.service.DatumService; import com.mortals.xhx.module.datum.service.DatumService;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/** /**
* <p>Title: 一件事申请材料</p> * <p>Title: 一件事申请材料</p>
* <p>Description: DatumController </p> * <p>Description: DatumController </p>
* <p>Copyright: Copyright &reg; </p> * <p>Copyright: Copyright &reg; </p>
* <p>Company: </p> * <p>Company: </p>
* @author zxfei *
* @version 1.0.0 * @author zxfei
*/ * @version 1.0.0
*/
@RestController @RestController
@RequestMapping("datum") @RequestMapping("datum")
public class DatumController extends BaseCRUDJsonMappingController<DatumService,DatumForm,DatumEntity,Long> { public class DatumController extends BaseCRUDJsonMappingController<DatumService, DatumForm, DatumEntity, Long> {
@Autowired
private ParamService paramService;
@Autowired
private UploadService uploadService;
public DatumController(){ public DatumController() {
super.setFormClass(DatumForm.class); super.setFormClass(DatumForm.class);
super.setModuleDesc("一件事申请材料"); super.setModuleDesc("一件事申请材料");
} }
@Override @Override
public String list(DatumForm form) { protected void init(HttpServletRequest request, HttpServletResponse response, DatumForm form, Map<String, Object> model, Context context) {
DatumEntity datumEntity = new DatumEntity(); this.addDict(model, "isMust", YesNoEnum.getEnumMap());
return super.list(form); this.addDict(model, "iszzsb", YesNoEnum.getEnumMap());
this.addDict(model, "isjianm", YesNoEnum.getEnumMap());
this.addDict(model, "isLack", YesNoEnum.getEnumMap());
this.addDict(model, "materialProperty", paramService.getParamByFirstOrganize(Constant.Param_materialProperty));
this.addDict(model, "materialType", paramService.getParamByFirstOrganize(Constant.Param_materialType));
this.addDict(model, "electronicgs", paramService.getParamByFirstOrganize(Constant.Param_electronicgs));
this.addDict(model, "materialSource", paramService.getParamByFirstOrganize(Constant.Param_materialSourceSm));
this.addDict(model, "paperGg", paramService.getParamByFirstOrganize(Constant.Param_paperGg));
this.addDict(model, "jianmMs", paramService.getParamByFirstOrganize(Constant.Param_jianmMs));
this.addDict(model, "sealWay", paramService.getParamByFirstOrganize(Constant.Param_sealWay));
} }
/**
* 上传附件
*/
@PostMapping(value = "upload")
public String upload(@RequestParam(required = false) String prePath,
MultipartFile file) {
JSONObject ret = new JSONObject();
try {
String url = uploadService.saveFileUpload(file, prePath, getCurUser());
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_DATA,url);
ret.put(KEY_RESULT_MSG, "上传附件成功!");
} catch (Exception e) {
log.error("挂起/激活流程异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
} }
\ No newline at end of file
...@@ -8,9 +8,11 @@ import com.mortals.xhx.common.pdu.api.ApiRespPdu; ...@@ -8,9 +8,11 @@ import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu; import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu;
import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu; import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu;
import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu; import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskVoPdu;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity; import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionQuery; import com.mortals.xhx.module.flowable.model.FlowableDefinitionQuery;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
...@@ -40,4 +42,6 @@ public interface FlowableDefinitionService extends ICRUDService<FlowableDefiniti ...@@ -40,4 +42,6 @@ public interface FlowableDefinitionService extends ICRUDService<FlowableDefiniti
String deleteDefinition(DefinitionVoPdu definitionVoPdu,Context context); String deleteDefinition(DefinitionVoPdu definitionVoPdu,Context context);
List<FlowTaskVoPdu> getAllProcessInstanceEl(String processDefinitionKey);
} }
\ No newline at end of file
...@@ -8,11 +8,20 @@ import com.mortals.framework.model.Result; ...@@ -8,11 +8,20 @@ import com.mortals.framework.model.Result;
import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.api.ApiRespPdu; import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.api.Page;
import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu; import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu;
import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu; import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu;
import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu; import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskVoPdu;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign; import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign;
import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign;
import com.mortals.xhx.feign.req.BaseFlowReq;
import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.req.DefinitionReq;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.DefinitionDeployRsp;
import com.mortals.xhx.feign.runtime.StartProcessInstanceReq;
import com.mortals.xhx.module.deploy.model.DeployFormEntity; import com.mortals.xhx.module.deploy.model.DeployFormEntity;
import com.mortals.xhx.module.deploy.model.DeployFormQuery; import com.mortals.xhx.module.deploy.model.DeployFormQuery;
import com.mortals.xhx.module.deploy.service.DeployFormService; import com.mortals.xhx.module.deploy.service.DeployFormService;
...@@ -52,6 +61,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -52,6 +61,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
@Autowired @Autowired
private IApiFlowDefinitionFeign apiFlowDefinitionFeign; private IApiFlowDefinitionFeign apiFlowDefinitionFeign;
@Autowired @Autowired
private IApiFlowInstanceFeign apiFlowInstanceFeign;
@Autowired
private InterceptorConfig config; private InterceptorConfig config;
@Override @Override
...@@ -62,7 +73,21 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -62,7 +73,21 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
if (!ObjectUtils.isEmpty(query)) { if (!ObjectUtils.isEmpty(query)) {
BeanUtils.copyProperties(query, flowProcDefPdu, BeanUtil.getNullPropertyNames(query)); BeanUtils.copyProperties(query, flowProcDefPdu, BeanUtil.getNullPropertyNames(query));
} }
ApiRespPdu<Result<FlowProcDefPdu>> resp = apiFlowDefinitionFeign.list(context.getUser().getId().toString(),config.getTenantId(),pageInfo);
BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
Page page = new Page();
page.setPer(pageInfo.getPrePageResult());
page.setSize(pageInfo.getCurrPage());
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn(config.getTenantId());
baseQuery.setUserCode(context.getUser().getLoginName());
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
ApiResp<DefinitionDeployRsp> resp = apiFlowDefinitionFeign.deploymentsList(baseQueryReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程定义列表异常:" + resp.getMsg()); log.error("获取流程定义列表异常:" + resp.getMsg());
throw new AppException("获取流程定义列表异常:" + resp.getMsg()); throw new AppException("获取流程定义列表异常:" + resp.getMsg());
...@@ -77,7 +102,7 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -77,7 +102,7 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
definitionEntity.setProcDefId(item.getId()); definitionEntity.setProcDefId(item.getId());
//查询关联的form表单 //查询关联的form表单
DeployFormQuery deployFormQuery = new DeployFormQuery(); DeployFormQuery deployFormQuery = new DeployFormQuery();
deployFormQuery.setDeployId(item.getDeploymentId()); deployFormQuery.setDeployId(item.getDeployId());
DeployFormEntity deployFormEntity = deployFormService.find(deployFormQuery, null).stream().findFirst().orElseGet(() -> null); DeployFormEntity deployFormEntity = deployFormService.find(deployFormQuery, null).stream().findFirst().orElseGet(() -> null);
if (!ObjectUtils.isEmpty(deployFormEntity)) { if (!ObjectUtils.isEmpty(deployFormEntity)) {
FormEntity formEntity = formService.get(deployFormEntity.getFormId(), context); FormEntity formEntity = formService.get(deployFormEntity.getFormId(), context);
...@@ -88,8 +113,9 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -88,8 +113,9 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
} }
return definitionEntity; return definitionEntity;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
pageInfo.setTotalResult(result.getPageInfo().getTotalResult());
result.setList(collect); result.setList(collect);
result.setPageInfo(resp.getData().getPageInfo()); result.setPageInfo(pageInfo);
} else { } else {
result.setList(Collections.emptyList()); result.setList(Collections.emptyList());
} }
...@@ -104,7 +130,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -104,7 +130,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
@Override @Override
public String readImage(String deployId) { public String readImage(String deployId) {
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.readImage(deployId); // ApiRespPdu<String> resp = apiFlowDefinitionFeign.readImage(deployId);
ApiRespPdu<String> resp = null;
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程图片异常:" + resp.getMsg()); log.error("获取流程图片异常:" + resp.getMsg());
throw new AppException("获取流程图片异常:" + resp.getMsg()); throw new AppException("获取流程图片异常:" + resp.getMsg());
...@@ -119,7 +146,10 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -119,7 +146,10 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
@Override @Override
public String readXml(String deployId) { public String readXml(String deployId) {
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.readXml(deployId); DefinitionReq req = new DefinitionReq();
req.setDeployId(deployId);
ApiResp<String> resp = apiFlowDefinitionFeign.readXml(req);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程XML异常:" + resp.getMsg()); log.error("获取流程XML异常:" + resp.getMsg());
throw new AppException("获取流程XML异常:" + resp.getMsg()); throw new AppException("获取流程XML异常:" + resp.getMsg());
...@@ -132,9 +162,10 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -132,9 +162,10 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
} }
@Override @Override
public String saveXml(FlowSaveXmlPdu flowSaveXmlPdu,Context context) { public String saveXml(FlowSaveXmlPdu flowSaveXmlPdu, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.save(flowSaveXmlPdu.getName(), flowSaveXmlPdu.getCategory(), flowSaveXmlPdu.getXml(),config.getTenantId()); // ApiRespPdu<String> resp = apiFlowDefinitionFeign.save(flowSaveXmlPdu.getName(), flowSaveXmlPdu.getCategory(), flowSaveXmlPdu.getXml(),config.getTenantId());
ApiRespPdu<String> resp = null;
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("保存流程XML异常:" + resp.getMsg()); log.error("保存流程XML异常:" + resp.getMsg());
throw new AppException("保存流程XML异常:" + resp.getMsg()); throw new AppException("保存流程XML异常:" + resp.getMsg());
...@@ -157,7 +188,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -157,7 +188,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
// variables.put("data", data); // variables.put("data", data);
String busiKey = "busiKey"; String busiKey = "busiKey";
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.start(procDefId, config.getTenantId(),context.getUser().getId().toString(), busiKey, variables); // ApiRespPdu<String> resp = apiFlowDefinitionFeign.start(procDefId, config.getTenantId(),context.getUser().getId().toString(), busiKey, variables);
ApiRespPdu<String> resp = null;
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("流程实例化异常:" + resp.getMsg()); log.error("流程实例化异常:" + resp.getMsg());
throw new AppException("流程实例化异常:" + resp.getMsg()); throw new AppException("流程实例化异常:" + resp.getMsg());
...@@ -172,7 +204,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -172,7 +204,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
@Override @Override
public String updateState(DefinitionVoPdu definitionVoPdu, Context context) { public String updateState(DefinitionVoPdu definitionVoPdu, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.updateState(definitionVoPdu.getState(),definitionVoPdu.getDeployId(),config.getTenantId()); // ApiRespPdu<String> resp = apiFlowDefinitionFeign.updateState(definitionVoPdu.getState(), definitionVoPdu.getDeployId(), config.getTenantId());
ApiRespPdu<String> resp = null;
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("流程挂起/激活异常:" + resp.getMsg()); log.error("流程挂起/激活异常:" + resp.getMsg());
throw new AppException("流程挂起/激活异常:" + resp.getMsg()); throw new AppException("流程挂起/激活异常:" + resp.getMsg());
...@@ -187,7 +220,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -187,7 +220,8 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
@Override @Override
public String deleteDefinition(DefinitionVoPdu definitionVoPdu, Context context) { public String deleteDefinition(DefinitionVoPdu definitionVoPdu, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowDefinitionFeign.delete(definitionVoPdu.getDeployId()); // ApiRespPdu<String> resp = apiFlowDefinitionFeign.delete(definitionVoPdu.getDeployId());
ApiRespPdu<String> resp = null;
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("删除流程异常:" + resp.getMsg()); log.error("删除流程异常:" + resp.getMsg());
throw new AppException("删除流程异常异常:" + resp.getMsg()); throw new AppException("删除流程异常异常:" + resp.getMsg());
...@@ -198,4 +232,21 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa ...@@ -198,4 +232,21 @@ public class FlowableDefinitionServiceImpl extends AbstractCRUDServiceImpl<Flowa
throw new AppException(e.getMessage()); throw new AppException(e.getMessage());
} }
} }
@Override
public List<FlowTaskVoPdu> getAllProcessInstanceEl(String processDefinitionKey) {
try {
StartProcessInstanceReq startProcessInstanceReq = new StartProcessInstanceReq();
startProcessInstanceReq.setProcessDefinitionKey(processDefinitionKey);
ApiResp<List<FlowTaskVoPdu>> resp = apiFlowInstanceFeign.getAllProcessInstanceEl(startProcessInstanceReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("异常:" + resp.getMsg());
throw new AppException("异常:" + resp.getMsg());
}
return resp.getData();
} catch (Exception e) {
log.error("删除流程异常异常", e);
throw new AppException(e.getMessage());
}
}
} }
\ No newline at end of file
...@@ -4,19 +4,28 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,19 +4,28 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.HashUtil; import cn.hutool.core.util.HashUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.mortals.framework.common.IBaseEnum; import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.common.code.YesNo; import com.mortals.framework.common.code.YesNo;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.web.BaseCRUDJsonController; import com.mortals.framework.web.BaseCRUDJsonController;
import com.mortals.framework.web.BaseCRUDMappingController; import com.mortals.framework.web.BaseCRUDMappingController;
import com.mortals.xhx.base.system.param.model.ParamEntity;
import com.mortals.xhx.base.system.param.model.ParamQuery;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.FlowStateType; import com.mortals.xhx.common.code.FlowStateType;
import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu; import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu;
import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu; import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskVars;
import com.mortals.xhx.common.pdu.flow.FlowTaskVoPdu;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.web.BaseCRUDJsonMappingController; import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity; import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity;
...@@ -26,9 +35,12 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -26,9 +35,12 @@ import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.swing.text.ParagraphView;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -46,6 +58,9 @@ import java.util.stream.Collectors; ...@@ -46,6 +58,9 @@ import java.util.stream.Collectors;
@RequestMapping("flowable/definition") @RequestMapping("flowable/definition")
public class FlowableDefinitionController extends BaseCRUDJsonMappingController<FlowableDefinitionService, FlowableDefinitionForm, FlowableDefinitionEntity, Long> { public class FlowableDefinitionController extends BaseCRUDJsonMappingController<FlowableDefinitionService, FlowableDefinitionForm, FlowableDefinitionEntity, Long> {
@Autowired
private ParamService paramService;
public FlowableDefinitionController() { public FlowableDefinitionController() {
super.setFormClass(FlowableDefinitionForm.class); super.setFormClass(FlowableDefinitionForm.class);
super.setModuleDesc("流程定义表"); super.setModuleDesc("流程定义表");
...@@ -110,6 +125,68 @@ public class FlowableDefinitionController extends BaseCRUDJsonMappingController< ...@@ -110,6 +125,68 @@ public class FlowableDefinitionController extends BaseCRUDJsonMappingController<
return jsonObject.toJSONString(); return jsonObject.toJSONString();
} }
@PostMapping(value = "setVars")
public String setVars(@ApiParam(value = "流程提交参数")@RequestParam Map<String, String> mapParam) {
JSONObject ret = new JSONObject();
try {
mapParam.entrySet().stream().forEach(item->{
if(!ObjectUtils.isEmpty(item.getValue())&&!"__mortals_token__".equals(item.getKey())){
List<FlowTaskVars> list = JSON.parseObject(item.getValue(), new TypeReference<List<FlowTaskVars>>() {
});
//构建提交参数
JSONObject jsonObject = new JSONObject();
for(FlowTaskVars var:list){
//判断是否并联
if(var.getMultiple()==0){
//key
String el = var.getEl();
String key = el.substring(2, el.length() - 1);
//值
String assignee = var.getAssignee();
jsonObject.put(key,assignee);
}else{
//key
String key = var.getEl();
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(var.getAssigneeList());
jsonObject.put(key,jsonArray);
}
}
ParamQuery paramQuery = new ParamQuery();
paramQuery.setParamKey(item.getKey());
ParamEntity entity = paramService.selectOne(paramQuery, null);
if(ObjectUtils.isEmpty(entity)){
entity=new ParamEntity();
entity.setParamKey(item.getKey());
entity.setName("流程提交参数");
entity.setCreateTime(new Date());
entity.setCreateUserId(getCurUser().getId());
entity.setCreateUser(getCurUser().getLoginName());
entity.setCreateUserName(getCurUser().getRealName());
}
entity.setParamValue(JSON.toJSONString(jsonObject));
paramService.save(entity);
}
});
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("设置流程提交参数异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
/** /**
* 读取流程XML * 读取流程XML
*/ */
...@@ -240,4 +317,23 @@ public class FlowableDefinitionController extends BaseCRUDJsonMappingController< ...@@ -240,4 +317,23 @@ public class FlowableDefinitionController extends BaseCRUDJsonMappingController<
return ret.toJSONString(); return ret.toJSONString();
} }
@PostMapping(value = "getAllProcessInstanceEl")
public String getAllProcessInstanceEl(@ApiParam(value = "流程定义key") @RequestParam(value = "processDefinitionKey") String processDefinitionKey) {
JSONObject ret = new JSONObject();
try {
List<FlowTaskVoPdu> list = this.getService().getAllProcessInstanceEl(processDefinitionKey);
ret.put(KEY_RESULT_DATA, list);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("读取流程XML异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
} }
\ No newline at end of file
package com.mortals.xhx.module.member.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.member.model.MemberEntity;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface MemberDao extends ICRUDDao<MemberEntity,Long>{
}
package com.mortals.xhx.module.member.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.member.dao.MemberDao;
import com.mortals.xhx.module.member.model.MemberEntity;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("memberDao")
public class MemberDaoImpl extends BaseCRUDDaoMybatis<MemberEntity,Long> implements MemberDao {
}
package com.mortals.xhx.module.member.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Member
* date: 2021-9-1 14:27:26
*/
public class MemberEntity extends BaseEntityLong{
private static final long serialVersionUID = 1630477646904L;
/**
* 手机号
*/
private String phone;
/**
* unionid,同一个微信开放平台的唯一标识
*/
private String unionid;
/**
* 微信openId
*/
private String openId;
/**
* 头像地址
*/
private String picImage;
/**
* 昵称
*/
private String nickname;
/**
* 真实姓名
*/
private String realName;
/**
* 1:男,2:女
*/
private String gender;
/**
* 最后登录时间
*/
private Date lastLoginTime;
/**
* 备注
*/
private String remark;
/**
* 用户状态,0:正常,1:禁用,默认0
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户
*/
private String createUser;
/**
* 创建用户名称
*/
private String createUserName;
public MemberEntity(){
}
/**
* 获取 手机号
* @return phone
*/
public String getPhone() {
return this.phone;
}
/**
* 设置 手机号
* @param phone
*/
public void setPhone(String phone) {
this.phone = phone;
}
/**
* 获取 unionid,同一个微信开放平台的唯一标识
* @return unionid
*/
public String getUnionid() {
return this.unionid;
}
/**
* 设置 unionid,同一个微信开放平台的唯一标识
* @param unionid
*/
public void setUnionid(String unionid) {
this.unionid = unionid;
}
/**
* 获取 微信openId
* @return openId
*/
public String getOpenId() {
return this.openId;
}
/**
* 设置 微信openId
* @param openId
*/
public void setOpenId(String openId) {
this.openId = openId;
}
/**
* 获取 头像地址
* @return picImage
*/
public String getPicImage() {
return this.picImage;
}
/**
* 设置 头像地址
* @param picImage
*/
public void setPicImage(String picImage) {
this.picImage = picImage;
}
/**
* 获取 昵称
* @return nickname
*/
public String getNickname() {
return this.nickname;
}
/**
* 设置 昵称
* @param nickname
*/
public void setNickname(String nickname) {
this.nickname = nickname;
}
/**
* 获取 真实姓名
* @return realName
*/
public String getRealName() {
return this.realName;
}
/**
* 设置 真实姓名
* @param realName
*/
public void setRealName(String realName) {
this.realName = realName;
}
/**
* 获取 1:男,2:女
* @return gender
*/
public String getGender() {
return this.gender;
}
/**
* 设置 1:男,2:女
* @param gender
*/
public void setGender(String gender) {
this.gender = gender;
}
/**
* 获取 最后登录时间
* @return lastLoginTime
*/
public Date getLastLoginTime() {
return this.lastLoginTime;
}
/**
* 设置 最后登录时间
* @param lastLoginTime
*/
public void setLastLoginTime(Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
/**
* 获取 备注
* @return remark
*/
public String getRemark() {
return this.remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 获取 用户状态,0:正常,1:禁用,默认0
* @return status
*/
public Integer getStatus() {
return this.status;
}
/**
* 设置 用户状态,0:正常,1:禁用,默认0
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime() {
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取 创建用户
* @return createUser
*/
public String getCreateUser() {
return this.createUser;
}
/**
* 设置 创建用户
* @param createUser
*/
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
/**
* 获取 创建用户名称
* @return createUserName
*/
public String getCreateUserName() {
return this.createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof MemberEntity) {
MemberEntity tmp = (MemberEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb
.append(",id:").append(getId())
.append(",phone:").append(getPhone())
.append(",unionid:").append(getUnionid())
.append(",openId:").append(getOpenId())
.append(",picImage:").append(getPicImage())
.append(",nickname:").append(getNickname())
.append(",realName:").append(getRealName())
.append(",gender:").append(getGender())
.append(",lastLoginTime:").append(getLastLoginTime())
.append(",remark:").append(getRemark())
.append(",status:").append(getStatus())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
.append(",createUserName:").append(getCreateUserName())
;
return sb.toString();
}
public void initAttrValue(){
this.phone = null;
this.unionid = null;
this.openId = null;
this.picImage = null;
this.nickname = null;
this.realName = null;
this.gender = null;
this.lastLoginTime = null;
this.remark = null;
this.status = null;
this.createTime = null;
this.createUser = null;
this.createUserName = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.member.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Member
* date: 2021-9-1 14:27:27
*/
public class MemberQuery extends MemberEntity{
private static final long serialVersionUID = 1630477647202L;
/** 开始 会员ID,主键,自增长 */
private Long idStart;
/** 结束 会员ID,主键,自增长 */
private Long idEnd;
/** 增加 会员ID,主键,自增长 */
private Long idIncrement;
/** 会员ID,主键,自增长 */
private List <Long> idList;
/** 手机号 */
private List<String> phoneList;
/** unionid,同一个微信开放平台的唯一标识 */
private List<String> unionidList;
/** 微信openId */
private List<String> openIdList;
/** 头像地址 */
private List<String> picImageList;
/** 昵称 */
private List<String> nicknameList;
/** 真实姓名 */
private List<String> realNameList;
/** 1:男,2:女 */
private List<String> genderList;
/** 开始 最后登录时间 */
private String lastLoginTimeStart;
/** 结束 最后登录时间 */
private String lastLoginTimeEnd;
/** 备注 */
private List<String> remarkList;
/** 开始 用户状态,0:正常,1:禁用,默认0 */
private Integer statusStart;
/** 结束 用户状态,0:正常,1:禁用,默认0 */
private Integer statusEnd;
/** 增加 用户状态,0:正常,1:禁用,默认0 */
private Integer statusIncrement;
/** 用户状态,0:正常,1:禁用,默认0 */
private List <Integer> statusList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 创建用户 */
private List<String> createUserList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<MemberQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<MemberQuery> andConditionList;
public MemberQuery(){
}
/**
* 获取 开始 会员ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 会员ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 会员ID,主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 会员ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 会员ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 会员ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 会员ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 会员ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 手机号
* @return phoneList
*/
public List<String> getPhoneList(){
return this.phoneList;
}
/**
* 设置 手机号
* @param phoneList
*/
public void setPhoneList(List<String> phoneList){
this.phoneList = phoneList;
}
/**
* 获取 unionid,同一个微信开放平台的唯一标识
* @return unionidList
*/
public List<String> getUnionidList(){
return this.unionidList;
}
/**
* 设置 unionid,同一个微信开放平台的唯一标识
* @param unionidList
*/
public void setUnionidList(List<String> unionidList){
this.unionidList = unionidList;
}
/**
* 获取 微信openId
* @return openIdList
*/
public List<String> getOpenIdList(){
return this.openIdList;
}
/**
* 设置 微信openId
* @param openIdList
*/
public void setOpenIdList(List<String> openIdList){
this.openIdList = openIdList;
}
/**
* 获取 头像地址
* @return picImageList
*/
public List<String> getPicImageList(){
return this.picImageList;
}
/**
* 设置 头像地址
* @param picImageList
*/
public void setPicImageList(List<String> picImageList){
this.picImageList = picImageList;
}
/**
* 获取 昵称
* @return nicknameList
*/
public List<String> getNicknameList(){
return this.nicknameList;
}
/**
* 设置 昵称
* @param nicknameList
*/
public void setNicknameList(List<String> nicknameList){
this.nicknameList = nicknameList;
}
/**
* 获取 真实姓名
* @return realNameList
*/
public List<String> getRealNameList(){
return this.realNameList;
}
/**
* 设置 真实姓名
* @param realNameList
*/
public void setRealNameList(List<String> realNameList){
this.realNameList = realNameList;
}
/**
* 获取 1:男,2:女
* @return genderList
*/
public List<String> getGenderList(){
return this.genderList;
}
/**
* 设置 1:男,2:女
* @param genderList
*/
public void setGenderList(List<String> genderList){
this.genderList = genderList;
}
/**
* 获取 开始 最后登录时间
* @return lastLoginTimeStart
*/
public String getLastLoginTimeStart(){
return this.lastLoginTimeStart;
}
/**
* 设置 开始 最后登录时间
* @param lastLoginTimeStart
*/
public void setLastLoginTimeStart(String lastLoginTimeStart){
this.lastLoginTimeStart = lastLoginTimeStart;
}
/**
* 获取 结束 最后登录时间
* @return lastLoginTimeEnd
*/
public String getLastLoginTimeEnd(){
return this.lastLoginTimeEnd;
}
/**
* 设置 结束 最后登录时间
* @param lastLoginTimeEnd
*/
public void setLastLoginTimeEnd(String lastLoginTimeEnd){
this.lastLoginTimeEnd = lastLoginTimeEnd;
}
/**
* 获取 备注
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 备注
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 开始 用户状态,0:正常,1:禁用,默认0
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 用户状态,0:正常,1:禁用,默认0
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 用户状态,0:正常,1:禁用,默认0
* @return statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 用户状态,0:正常,1:禁用,默认0
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 用户状态,0:正常,1:禁用,默认0
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 用户状态,0:正常,1:禁用,默认0
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 用户状态,0:正常,1:禁用,默认0
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 用户状态,0:正常,1:禁用,默认0
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 创建用户
* @return createUserList
*/
public List<String> getCreateUserList(){
return this.createUserList;
}
/**
* 设置 创建用户
* @param createUserList
*/
public void setCreateUserList(List<String> createUserList){
this.createUserList = createUserList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 会员ID,主键,自增长
* @param id
*/
public MemberQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 会员ID,主键,自增长
* @param idStart
*/
public MemberQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 会员ID,主键,自增长
* @param idEnd
*/
public MemberQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 会员ID,主键,自增长
* @param idIncrement
*/
public MemberQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 会员ID,主键,自增长
* @param idList
*/
public MemberQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 手机号
* @param phone
*/
public MemberQuery phone(String phone){
setPhone(phone);
return this;
}
/**
* 设置 手机号
* @param phoneList
*/
public MemberQuery phoneList(List<String> phoneList){
this.phoneList = phoneList;
return this;
}
/**
* 设置 unionid,同一个微信开放平台的唯一标识
* @param unionid
*/
public MemberQuery unionid(String unionid){
setUnionid(unionid);
return this;
}
/**
* 设置 unionid,同一个微信开放平台的唯一标识
* @param unionidList
*/
public MemberQuery unionidList(List<String> unionidList){
this.unionidList = unionidList;
return this;
}
/**
* 设置 微信openId
* @param openId
*/
public MemberQuery openId(String openId){
setOpenId(openId);
return this;
}
/**
* 设置 微信openId
* @param openIdList
*/
public MemberQuery openIdList(List<String> openIdList){
this.openIdList = openIdList;
return this;
}
/**
* 设置 头像地址
* @param picImage
*/
public MemberQuery picImage(String picImage){
setPicImage(picImage);
return this;
}
/**
* 设置 头像地址
* @param picImageList
*/
public MemberQuery picImageList(List<String> picImageList){
this.picImageList = picImageList;
return this;
}
/**
* 设置 昵称
* @param nickname
*/
public MemberQuery nickname(String nickname){
setNickname(nickname);
return this;
}
/**
* 设置 昵称
* @param nicknameList
*/
public MemberQuery nicknameList(List<String> nicknameList){
this.nicknameList = nicknameList;
return this;
}
/**
* 设置 真实姓名
* @param realName
*/
public MemberQuery realName(String realName){
setRealName(realName);
return this;
}
/**
* 设置 真实姓名
* @param realNameList
*/
public MemberQuery realNameList(List<String> realNameList){
this.realNameList = realNameList;
return this;
}
/**
* 设置 1:男,2:女
* @param gender
*/
public MemberQuery gender(String gender){
setGender(gender);
return this;
}
/**
* 设置 1:男,2:女
* @param genderList
*/
public MemberQuery genderList(List<String> genderList){
this.genderList = genderList;
return this;
}
/**
* 设置 开始 最后登录时间
* @param lastLoginTimeStart
*/
public MemberQuery lastLoginTimeStart(String lastLoginTimeStart){
this.lastLoginTimeStart = lastLoginTimeStart;
return this;
}
/**
* 设置 结束 最后登录时间
* @param lastLoginTimeEnd
*/
public MemberQuery lastLoginTimeEnd(String lastLoginTimeEnd){
this.lastLoginTimeEnd = lastLoginTimeEnd;
return this;
}
/**
* 设置 备注
* @param remark
*/
public MemberQuery remark(String remark){
setRemark(remark);
return this;
}
/**
* 设置 备注
* @param remarkList
*/
public MemberQuery remarkList(List<String> remarkList){
this.remarkList = remarkList;
return this;
}
/**
* 设置 用户状态,0:正常,1:禁用,默认0
* @param status
*/
public MemberQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 用户状态,0:正常,1:禁用,默认0
* @param statusStart
*/
public MemberQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 用户状态,0:正常,1:禁用,默认0
* @param statusEnd
*/
public MemberQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 用户状态,0:正常,1:禁用,默认0
* @param statusIncrement
*/
public MemberQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 用户状态,0:正常,1:禁用,默认0
* @param statusList
*/
public MemberQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public MemberQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public MemberQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户
* @param createUser
*/
public MemberQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户
* @param createUserList
*/
public MemberQuery createUserList(List<String> createUserList){
this.createUserList = createUserList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public MemberQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public MemberQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<MemberQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<MemberQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<MemberQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<MemberQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.member.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.member.model.MemberEntity;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface MemberService extends ICRUDService<MemberEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.member.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.code.YesNoEnum;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.member.dao.MemberDao;
import com.mortals.xhx.module.member.model.MemberEntity;
import com.mortals.xhx.module.member.service.MemberService;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("memberService")
public class MemberServiceImpl extends AbstractCRUDServiceImpl<MemberDao, MemberEntity, Long> implements MemberService {
@Override
protected void saveBefore(MemberEntity entity, Context context) throws AppException {
entity.setStatus(YesNoEnum.YES.getValue());
entity.setGender("男");
super.saveBefore(entity, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.member.web;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.code.UserStatus;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.basics.web.BasicsInfoForm;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.module.member.model.MemberEntity;
import com.mortals.xhx.module.member.service.MemberService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("member")
public class MemberController extends BaseCRUDJsonMappingController<MemberService,MemberForm,MemberEntity,Long> {
public MemberController(){
super.setFormClass(MemberForm.class);
super.setModuleDesc("微信会员基本信息");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, MemberForm form, Map<String, Object> model, Context context) {
this.addDict(model, "status", UserStatus.getEnumMap());
}
}
\ No newline at end of file
package com.mortals.xhx.module.member.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.member.model.MemberEntity;
import com.mortals.xhx.module.member.model.MemberQuery;
/**
* <p>Title: 微信会员基本信息</p>
* <p>Description: MemberForm </p>
* @author
* @version 1.0.0
*/
public class MemberForm extends BaseCRUDFormLong<MemberEntity> {
private MemberEntity entity = new MemberEntity();
private MemberQuery query = new MemberQuery();
public MemberForm(){
}
@Override
public MemberEntity getEntity() {
return entity;
}
public void setMember(MemberEntity entity) {
this.entity = entity;
}
@Override
public MemberQuery getQuery() {
return query;
}
public void setQuery(MemberQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.onething.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.onething.model.OnethingEntity;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface OnethingDao extends ICRUDDao<OnethingEntity,Long>{
}
package com.mortals.xhx.module.onething.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.onething.dao.OnethingDao;
import com.mortals.xhx.module.onething.model.OnethingEntity;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("onethingDao")
public class OnethingDaoImpl extends BaseCRUDDaoMybatis<OnethingEntity,Long> implements OnethingDao {
}
package com.mortals.xhx.module.onething.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Onething
* date: 2021-9-1 14:27:27
*/
public class OnethingEntity extends BaseEntityLong{
private static final long serialVersionUID = 1630477647260L;
/**
* 流程任务id
*/
private String taskId;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 微信用户ID
*/
private Long memberId;
/**
* 事项ID
*/
private Long matterid;
/**
* 上传时间
*/
private Integer uploadtime;
/**
* 1资料上传 2确认提交
*/
private Integer type;
/**
* 邮寄地址
*/
private String address;
/**
* 联系人
*/
private String linkman;
/**
* 联系电话
*/
private Integer phone;
/**
* 取件方式 0自主取件 1邮寄
*/
private Integer manner;
/**
* 取件码
*/
private String getnum;
/**
* 快递单号
*/
private String number;
/**
* 问答内容
*/
private String optionContent;
/**
* 0是否撤销 1撤销
*/
private Integer isRevoke;
/**
* 站点ID
*/
private Integer siteid;
/**
* 审批状态 0未审核 1 审核中 2 审核成功
*/
private Integer status;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public OnethingEntity(){
}
/**
* 获取 流程任务id
* @return taskId
*/
public String getTaskId() {
return this.taskId;
}
/**
* 设置 流程任务id
* @param taskId
*/
public void setTaskId(String taskId) {
this.taskId = taskId;
}
/**
* 获取 流程实例id
* @return processInstanceId
*/
public String getProcessInstanceId() {
return this.processInstanceId;
}
/**
* 设置 流程实例id
* @param processInstanceId
*/
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
/**
* 获取 微信用户ID
* @return memberId
*/
public Long getMemberId() {
return this.memberId;
}
/**
* 设置 微信用户ID
* @param memberId
*/
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
/**
* 获取 事项ID
* @return matterid
*/
public Long getMatterid() {
return this.matterid;
}
/**
* 设置 事项ID
* @param matterid
*/
public void setMatterid(Long matterid) {
this.matterid = matterid;
}
/**
* 获取 上传时间
* @return uploadtime
*/
public Integer getUploadtime() {
return this.uploadtime;
}
/**
* 设置 上传时间
* @param uploadtime
*/
public void setUploadtime(Integer uploadtime) {
this.uploadtime = uploadtime;
}
/**
* 获取 1资料上传 2确认提交
* @return type
*/
public Integer getType() {
return this.type;
}
/**
* 设置 1资料上传 2确认提交
* @param type
*/
public void setType(Integer type) {
this.type = type;
}
/**
* 获取 邮寄地址
* @return address
*/
public String getAddress() {
return this.address;
}
/**
* 设置 邮寄地址
* @param address
*/
public void setAddress(String address) {
this.address = address;
}
/**
* 获取 联系人
* @return linkman
*/
public String getLinkman() {
return this.linkman;
}
/**
* 设置 联系人
* @param linkman
*/
public void setLinkman(String linkman) {
this.linkman = linkman;
}
/**
* 获取 联系电话
* @return phone
*/
public Integer getPhone() {
return this.phone;
}
/**
* 设置 联系电话
* @param phone
*/
public void setPhone(Integer phone) {
this.phone = phone;
}
/**
* 获取 取件方式 0自主取件 1邮寄
* @return manner
*/
public Integer getManner() {
return this.manner;
}
/**
* 设置 取件方式 0自主取件 1邮寄
* @param manner
*/
public void setManner(Integer manner) {
this.manner = manner;
}
/**
* 获取 取件码
* @return getnum
*/
public String getGetnum() {
return this.getnum;
}
/**
* 设置 取件码
* @param getnum
*/
public void setGetnum(String getnum) {
this.getnum = getnum;
}
/**
* 获取 快递单号
* @return number
*/
public String getNumber() {
return this.number;
}
/**
* 设置 快递单号
* @param number
*/
public void setNumber(String number) {
this.number = number;
}
/**
* 获取 问答内容
* @return optionContent
*/
public String getOptionContent() {
return this.optionContent;
}
/**
* 设置 问答内容
* @param optionContent
*/
public void setOptionContent(String optionContent) {
this.optionContent = optionContent;
}
/**
* 获取 0是否撤销 1撤销
* @return isRevoke
*/
public Integer getIsRevoke() {
return this.isRevoke;
}
/**
* 设置 0是否撤销 1撤销
* @param isRevoke
*/
public void setIsRevoke(Integer isRevoke) {
this.isRevoke = isRevoke;
}
/**
* 获取 站点ID
* @return siteid
*/
public Integer getSiteid() {
return this.siteid;
}
/**
* 设置 站点ID
* @param siteid
*/
public void setSiteid(Integer siteid) {
this.siteid = siteid;
}
/**
* 获取 审批状态 0未审核 1 审核中 2 审核成功
* @return status
*/
public Integer getStatus() {
return this.status;
}
/**
* 设置 审批状态 0未审核 1 审核中 2 审核完成
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取 变更时间
* @return updateTime
*/
public Date getUpdateTime() {
return this.updateTime;
}
/**
* 设置 变更时间
* @param updateTime
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取 变更用户loginName
* @return updateUser
*/
public String getUpdateUser() {
return this.updateUser;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public void setUpdateUser(String updateUser) {
this.updateUser = updateUser;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime() {
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取 创建用户loginName
* @return createUser
*/
public String getCreateUser() {
return this.createUser;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof OnethingEntity) {
OnethingEntity tmp = (OnethingEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb
.append(",id:").append(getId())
.append(",taskId:").append(getTaskId())
.append(",processInstanceId:").append(getProcessInstanceId())
.append(",memberId:").append(getMemberId())
.append(",matterid:").append(getMatterid())
.append(",uploadtime:").append(getUploadtime())
.append(",type:").append(getType())
.append(",address:").append(getAddress())
.append(",linkman:").append(getLinkman())
.append(",phone:").append(getPhone())
.append(",manner:").append(getManner())
.append(",getnum:").append(getGetnum())
.append(",number:").append(getNumber())
.append(",optionContent:").append(getOptionContent())
.append(",isRevoke:").append(getIsRevoke())
.append(",siteid:").append(getSiteid())
.append(",status:").append(getStatus())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.taskId = null;
this.processInstanceId = null;
this.memberId = null;
this.matterid = null;
this.uploadtime = null;
this.type = null;
this.address = null;
this.linkman = null;
this.phone = null;
this.manner = null;
this.getnum = null;
this.number = null;
this.optionContent = null;
this.isRevoke = null;
this.siteid = null;
this.status = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.onething.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Onething
* date: 2021-9-1 14:27:27
*/
public class OnethingQuery extends OnethingEntity{
private static final long serialVersionUID = 1630477647263L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 流程任务id */
private List<String> taskIdList;
/** 流程实例id */
private List<String> processInstanceIdList;
/** 开始 微信用户ID */
private Long memberIdStart;
/** 结束 微信用户ID */
private Long memberIdEnd;
/** 增加 微信用户ID */
private Long memberIdIncrement;
/** 微信用户ID */
private List <Long> memberIdList;
/** 开始 事项ID */
private Long matteridStart;
/** 结束 事项ID */
private Long matteridEnd;
/** 增加 事项ID */
private Long matteridIncrement;
/** 事项ID */
private List <Long> matteridList;
/** 开始 上传时间 */
private Integer uploadtimeStart;
/** 结束 上传时间 */
private Integer uploadtimeEnd;
/** 增加 上传时间 */
private Integer uploadtimeIncrement;
/** 上传时间 */
private List <Integer> uploadtimeList;
/** 开始 1资料上传 2确认提交 */
private Integer typeStart;
/** 结束 1资料上传 2确认提交 */
private Integer typeEnd;
/** 增加 1资料上传 2确认提交 */
private Integer typeIncrement;
/** 1资料上传 2确认提交 */
private List <Integer> typeList;
/** 邮寄地址 */
private List<String> addressList;
/** 联系人 */
private List<String> linkmanList;
/** 开始 联系电话 */
private Integer phoneStart;
/** 结束 联系电话 */
private Integer phoneEnd;
/** 增加 联系电话 */
private Integer phoneIncrement;
/** 联系电话 */
private List <Integer> phoneList;
/** 开始 取件方式 0自主取件 1邮寄 */
private Integer mannerStart;
/** 结束 取件方式 0自主取件 1邮寄 */
private Integer mannerEnd;
/** 增加 取件方式 0自主取件 1邮寄 */
private Integer mannerIncrement;
/** 取件方式 0自主取件 1邮寄 */
private List <Integer> mannerList;
/** 取件码 */
private List<String> getnumList;
/** 快递单号 */
private List<String> numberList;
/** 问答内容 */
private List<String> optionContentList;
/** 开始 0是否撤销 1撤销 */
private Integer isRevokeStart;
/** 结束 0是否撤销 1撤销 */
private Integer isRevokeEnd;
/** 增加 0是否撤销 1撤销 */
private Integer isRevokeIncrement;
/** 0是否撤销 1撤销 */
private List <Integer> isRevokeList;
/** 开始 站点ID */
private Integer siteidStart;
/** 结束 站点ID */
private Integer siteidEnd;
/** 增加 站点ID */
private Integer siteidIncrement;
/** 站点ID */
private List <Integer> siteidList;
/** 开始 审批状态 0未审核 1 审核中 2 审核成功 */
private Integer statusStart;
/** 结束 审批状态 0未审核 1 审核中 2 审核成功 */
private Integer statusEnd;
/** 增加 审批状态 0未审核 1 审核中 2 审核成功 */
private Integer statusIncrement;
/** 审批状态 0未审核 1 审核中 2 审核成功 */
private List <Integer> statusList;
/** 开始 变更时间 */
private String updateTimeStart;
/** 结束 变更时间 */
private String updateTimeEnd;
/** 变更用户loginName */
private List<String> updateUserList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 创建用户loginName */
private List<String> createUserList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<OnethingQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<OnethingQuery> andConditionList;
public OnethingQuery(){
}
/**
* 获取 开始 主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 流程任务id
* @return taskIdList
*/
public List<String> getTaskIdList(){
return this.taskIdList;
}
/**
* 设置 流程任务id
* @param taskIdList
*/
public void setTaskIdList(List<String> taskIdList){
this.taskIdList = taskIdList;
}
/**
* 获取 流程实例id
* @return processInstanceIdList
*/
public List<String> getProcessInstanceIdList(){
return this.processInstanceIdList;
}
/**
* 设置 流程实例id
* @param processInstanceIdList
*/
public void setProcessInstanceIdList(List<String> processInstanceIdList){
this.processInstanceIdList = processInstanceIdList;
}
/**
* 获取 开始 微信用户ID
* @return memberIdStart
*/
public Long getMemberIdStart(){
return this.memberIdStart;
}
/**
* 设置 开始 微信用户ID
* @param memberIdStart
*/
public void setMemberIdStart(Long memberIdStart){
this.memberIdStart = memberIdStart;
}
/**
* 获取 结束 微信用户ID
* @return memberIdEnd
*/
public Long getMemberIdEnd(){
return this.memberIdEnd;
}
/**
* 设置 结束 微信用户ID
* @param memberIdEnd
*/
public void setMemberIdEnd(Long memberIdEnd){
this.memberIdEnd = memberIdEnd;
}
/**
* 获取 增加 微信用户ID
* @return memberIdIncrement
*/
public Long getMemberIdIncrement(){
return this.memberIdIncrement;
}
/**
* 设置 增加 微信用户ID
* @param memberIdIncrement
*/
public void setMemberIdIncrement(Long memberIdIncrement){
this.memberIdIncrement = memberIdIncrement;
}
/**
* 获取 微信用户ID
* @return memberIdList
*/
public List<Long> getMemberIdList(){
return this.memberIdList;
}
/**
* 设置 微信用户ID
* @param memberIdList
*/
public void setMemberIdList(List<Long> memberIdList){
this.memberIdList = memberIdList;
}
/**
* 获取 开始 事项ID
* @return matteridStart
*/
public Long getMatteridStart(){
return this.matteridStart;
}
/**
* 设置 开始 事项ID
* @param matteridStart
*/
public void setMatteridStart(Long matteridStart){
this.matteridStart = matteridStart;
}
/**
* 获取 结束 事项ID
* @return matteridEnd
*/
public Long getMatteridEnd(){
return this.matteridEnd;
}
/**
* 设置 结束 事项ID
* @param matteridEnd
*/
public void setMatteridEnd(Long matteridEnd){
this.matteridEnd = matteridEnd;
}
/**
* 获取 增加 事项ID
* @return matteridIncrement
*/
public Long getMatteridIncrement(){
return this.matteridIncrement;
}
/**
* 设置 增加 事项ID
* @param matteridIncrement
*/
public void setMatteridIncrement(Long matteridIncrement){
this.matteridIncrement = matteridIncrement;
}
/**
* 获取 事项ID
* @return matteridList
*/
public List<Long> getMatteridList(){
return this.matteridList;
}
/**
* 设置 事项ID
* @param matteridList
*/
public void setMatteridList(List<Long> matteridList){
this.matteridList = matteridList;
}
/**
* 获取 开始 上传时间
* @return uploadtimeStart
*/
public Integer getUploadtimeStart(){
return this.uploadtimeStart;
}
/**
* 设置 开始 上传时间
* @param uploadtimeStart
*/
public void setUploadtimeStart(Integer uploadtimeStart){
this.uploadtimeStart = uploadtimeStart;
}
/**
* 获取 结束 上传时间
* @return uploadtimeEnd
*/
public Integer getUploadtimeEnd(){
return this.uploadtimeEnd;
}
/**
* 设置 结束 上传时间
* @param uploadtimeEnd
*/
public void setUploadtimeEnd(Integer uploadtimeEnd){
this.uploadtimeEnd = uploadtimeEnd;
}
/**
* 获取 增加 上传时间
* @return uploadtimeIncrement
*/
public Integer getUploadtimeIncrement(){
return this.uploadtimeIncrement;
}
/**
* 设置 增加 上传时间
* @param uploadtimeIncrement
*/
public void setUploadtimeIncrement(Integer uploadtimeIncrement){
this.uploadtimeIncrement = uploadtimeIncrement;
}
/**
* 获取 上传时间
* @return uploadtimeList
*/
public List<Integer> getUploadtimeList(){
return this.uploadtimeList;
}
/**
* 设置 上传时间
* @param uploadtimeList
*/
public void setUploadtimeList(List<Integer> uploadtimeList){
this.uploadtimeList = uploadtimeList;
}
/**
* 获取 开始 1资料上传 2确认提交
* @return typeStart
*/
public Integer getTypeStart(){
return this.typeStart;
}
/**
* 设置 开始 1资料上传 2确认提交
* @param typeStart
*/
public void setTypeStart(Integer typeStart){
this.typeStart = typeStart;
}
/**
* 获取 结束 1资料上传 2确认提交
* @return typeEnd
*/
public Integer getTypeEnd(){
return this.typeEnd;
}
/**
* 设置 结束 1资料上传 2确认提交
* @param typeEnd
*/
public void setTypeEnd(Integer typeEnd){
this.typeEnd = typeEnd;
}
/**
* 获取 增加 1资料上传 2确认提交
* @return typeIncrement
*/
public Integer getTypeIncrement(){
return this.typeIncrement;
}
/**
* 设置 增加 1资料上传 2确认提交
* @param typeIncrement
*/
public void setTypeIncrement(Integer typeIncrement){
this.typeIncrement = typeIncrement;
}
/**
* 获取 1资料上传 2确认提交
* @return typeList
*/
public List<Integer> getTypeList(){
return this.typeList;
}
/**
* 设置 1资料上传 2确认提交
* @param typeList
*/
public void setTypeList(List<Integer> typeList){
this.typeList = typeList;
}
/**
* 获取 邮寄地址
* @return addressList
*/
public List<String> getAddressList(){
return this.addressList;
}
/**
* 设置 邮寄地址
* @param addressList
*/
public void setAddressList(List<String> addressList){
this.addressList = addressList;
}
/**
* 获取 联系人
* @return linkmanList
*/
public List<String> getLinkmanList(){
return this.linkmanList;
}
/**
* 设置 联系人
* @param linkmanList
*/
public void setLinkmanList(List<String> linkmanList){
this.linkmanList = linkmanList;
}
/**
* 获取 开始 联系电话
* @return phoneStart
*/
public Integer getPhoneStart(){
return this.phoneStart;
}
/**
* 设置 开始 联系电话
* @param phoneStart
*/
public void setPhoneStart(Integer phoneStart){
this.phoneStart = phoneStart;
}
/**
* 获取 结束 联系电话
* @return phoneEnd
*/
public Integer getPhoneEnd(){
return this.phoneEnd;
}
/**
* 设置 结束 联系电话
* @param phoneEnd
*/
public void setPhoneEnd(Integer phoneEnd){
this.phoneEnd = phoneEnd;
}
/**
* 获取 增加 联系电话
* @return phoneIncrement
*/
public Integer getPhoneIncrement(){
return this.phoneIncrement;
}
/**
* 设置 增加 联系电话
* @param phoneIncrement
*/
public void setPhoneIncrement(Integer phoneIncrement){
this.phoneIncrement = phoneIncrement;
}
/**
* 获取 联系电话
* @return phoneList
*/
public List<Integer> getPhoneList(){
return this.phoneList;
}
/**
* 设置 联系电话
* @param phoneList
*/
public void setPhoneList(List<Integer> phoneList){
this.phoneList = phoneList;
}
/**
* 获取 开始 取件方式 0自主取件 1邮寄
* @return mannerStart
*/
public Integer getMannerStart(){
return this.mannerStart;
}
/**
* 设置 开始 取件方式 0自主取件 1邮寄
* @param mannerStart
*/
public void setMannerStart(Integer mannerStart){
this.mannerStart = mannerStart;
}
/**
* 获取 结束 取件方式 0自主取件 1邮寄
* @return mannerEnd
*/
public Integer getMannerEnd(){
return this.mannerEnd;
}
/**
* 设置 结束 取件方式 0自主取件 1邮寄
* @param mannerEnd
*/
public void setMannerEnd(Integer mannerEnd){
this.mannerEnd = mannerEnd;
}
/**
* 获取 增加 取件方式 0自主取件 1邮寄
* @return mannerIncrement
*/
public Integer getMannerIncrement(){
return this.mannerIncrement;
}
/**
* 设置 增加 取件方式 0自主取件 1邮寄
* @param mannerIncrement
*/
public void setMannerIncrement(Integer mannerIncrement){
this.mannerIncrement = mannerIncrement;
}
/**
* 获取 取件方式 0自主取件 1邮寄
* @return mannerList
*/
public List<Integer> getMannerList(){
return this.mannerList;
}
/**
* 设置 取件方式 0自主取件 1邮寄
* @param mannerList
*/
public void setMannerList(List<Integer> mannerList){
this.mannerList = mannerList;
}
/**
* 获取 取件码
* @return getnumList
*/
public List<String> getGetnumList(){
return this.getnumList;
}
/**
* 设置 取件码
* @param getnumList
*/
public void setGetnumList(List<String> getnumList){
this.getnumList = getnumList;
}
/**
* 获取 快递单号
* @return numberList
*/
public List<String> getNumberList(){
return this.numberList;
}
/**
* 设置 快递单号
* @param numberList
*/
public void setNumberList(List<String> numberList){
this.numberList = numberList;
}
/**
* 获取 问答内容
* @return optionContentList
*/
public List<String> getOptionContentList(){
return this.optionContentList;
}
/**
* 设置 问答内容
* @param optionContentList
*/
public void setOptionContentList(List<String> optionContentList){
this.optionContentList = optionContentList;
}
/**
* 获取 开始 0是否撤销 1撤销
* @return isRevokeStart
*/
public Integer getIsRevokeStart(){
return this.isRevokeStart;
}
/**
* 设置 开始 0是否撤销 1撤销
* @param isRevokeStart
*/
public void setIsRevokeStart(Integer isRevokeStart){
this.isRevokeStart = isRevokeStart;
}
/**
* 获取 结束 0是否撤销 1撤销
* @return isRevokeEnd
*/
public Integer getIsRevokeEnd(){
return this.isRevokeEnd;
}
/**
* 设置 结束 0是否撤销 1撤销
* @param isRevokeEnd
*/
public void setIsRevokeEnd(Integer isRevokeEnd){
this.isRevokeEnd = isRevokeEnd;
}
/**
* 获取 增加 0是否撤销 1撤销
* @return isRevokeIncrement
*/
public Integer getIsRevokeIncrement(){
return this.isRevokeIncrement;
}
/**
* 设置 增加 0是否撤销 1撤销
* @param isRevokeIncrement
*/
public void setIsRevokeIncrement(Integer isRevokeIncrement){
this.isRevokeIncrement = isRevokeIncrement;
}
/**
* 获取 0是否撤销 1撤销
* @return isRevokeList
*/
public List<Integer> getIsRevokeList(){
return this.isRevokeList;
}
/**
* 设置 0是否撤销 1撤销
* @param isRevokeList
*/
public void setIsRevokeList(List<Integer> isRevokeList){
this.isRevokeList = isRevokeList;
}
/**
* 获取 开始 站点ID
* @return siteidStart
*/
public Integer getSiteidStart(){
return this.siteidStart;
}
/**
* 设置 开始 站点ID
* @param siteidStart
*/
public void setSiteidStart(Integer siteidStart){
this.siteidStart = siteidStart;
}
/**
* 获取 结束 站点ID
* @return siteidEnd
*/
public Integer getSiteidEnd(){
return this.siteidEnd;
}
/**
* 设置 结束 站点ID
* @param siteidEnd
*/
public void setSiteidEnd(Integer siteidEnd){
this.siteidEnd = siteidEnd;
}
/**
* 获取 增加 站点ID
* @return siteidIncrement
*/
public Integer getSiteidIncrement(){
return this.siteidIncrement;
}
/**
* 设置 增加 站点ID
* @param siteidIncrement
*/
public void setSiteidIncrement(Integer siteidIncrement){
this.siteidIncrement = siteidIncrement;
}
/**
* 获取 站点ID
* @return siteidList
*/
public List<Integer> getSiteidList(){
return this.siteidList;
}
/**
* 设置 站点ID
* @param siteidList
*/
public void setSiteidList(List<Integer> siteidList){
this.siteidList = siteidList;
}
/**
* 获取 开始 审批状态 0未审核 1 审核中 2 审核成功
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 审批状态 0未审核 1 审核中 2 审核成功
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 审批状态 0未审核 1 审核中 2 审核成功
* @return statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 审批状态 0未审核 1 审核中 2 审核成功
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 审批状态 0未审核 1 审核中 2 审核成功
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 审批状态 0未审核 1 审核中 2 审核成功
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 审批状态 0未审核 1 审核中 2 审核成功
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 审批状态 0未审核 1 审核中 2 审核成功
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 变更时间
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束 变更时间
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 获取 变更用户loginName
* @return updateUserList
*/
public List<String> getUpdateUserList(){
return this.updateUserList;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public void setUpdateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 创建用户loginName
* @return createUserList
*/
public List<String> getCreateUserList(){
return this.createUserList;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public void setCreateUserList(List<String> createUserList){
this.createUserList = createUserList;
}
/**
* 设置 主键,自增长
* @param id
*/
public OnethingQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public OnethingQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public OnethingQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public OnethingQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public OnethingQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 流程任务id
* @param taskId
*/
public OnethingQuery taskId(String taskId){
setTaskId(taskId);
return this;
}
/**
* 设置 流程任务id
* @param taskIdList
*/
public OnethingQuery taskIdList(List<String> taskIdList){
this.taskIdList = taskIdList;
return this;
}
/**
* 设置 流程实例id
* @param processInstanceId
*/
public OnethingQuery processInstanceId(String processInstanceId){
setProcessInstanceId(processInstanceId);
return this;
}
/**
* 设置 流程实例id
* @param processInstanceIdList
*/
public OnethingQuery processInstanceIdList(List<String> processInstanceIdList){
this.processInstanceIdList = processInstanceIdList;
return this;
}
/**
* 设置 微信用户ID
* @param memberId
*/
public OnethingQuery memberId(Long memberId){
setMemberId(memberId);
return this;
}
/**
* 设置 开始 微信用户ID
* @param memberIdStart
*/
public OnethingQuery memberIdStart(Long memberIdStart){
this.memberIdStart = memberIdStart;
return this;
}
/**
* 设置 结束 微信用户ID
* @param memberIdEnd
*/
public OnethingQuery memberIdEnd(Long memberIdEnd){
this.memberIdEnd = memberIdEnd;
return this;
}
/**
* 设置 增加 微信用户ID
* @param memberIdIncrement
*/
public OnethingQuery memberIdIncrement(Long memberIdIncrement){
this.memberIdIncrement = memberIdIncrement;
return this;
}
/**
* 设置 微信用户ID
* @param memberIdList
*/
public OnethingQuery memberIdList(List<Long> memberIdList){
this.memberIdList = memberIdList;
return this;
}
/**
* 设置 事项ID
* @param matterid
*/
public OnethingQuery matterid(Long matterid){
setMatterid(matterid);
return this;
}
/**
* 设置 开始 事项ID
* @param matteridStart
*/
public OnethingQuery matteridStart(Long matteridStart){
this.matteridStart = matteridStart;
return this;
}
/**
* 设置 结束 事项ID
* @param matteridEnd
*/
public OnethingQuery matteridEnd(Long matteridEnd){
this.matteridEnd = matteridEnd;
return this;
}
/**
* 设置 增加 事项ID
* @param matteridIncrement
*/
public OnethingQuery matteridIncrement(Long matteridIncrement){
this.matteridIncrement = matteridIncrement;
return this;
}
/**
* 设置 事项ID
* @param matteridList
*/
public OnethingQuery matteridList(List<Long> matteridList){
this.matteridList = matteridList;
return this;
}
/**
* 设置 上传时间
* @param uploadtime
*/
public OnethingQuery uploadtime(Integer uploadtime){
setUploadtime(uploadtime);
return this;
}
/**
* 设置 开始 上传时间
* @param uploadtimeStart
*/
public OnethingQuery uploadtimeStart(Integer uploadtimeStart){
this.uploadtimeStart = uploadtimeStart;
return this;
}
/**
* 设置 结束 上传时间
* @param uploadtimeEnd
*/
public OnethingQuery uploadtimeEnd(Integer uploadtimeEnd){
this.uploadtimeEnd = uploadtimeEnd;
return this;
}
/**
* 设置 增加 上传时间
* @param uploadtimeIncrement
*/
public OnethingQuery uploadtimeIncrement(Integer uploadtimeIncrement){
this.uploadtimeIncrement = uploadtimeIncrement;
return this;
}
/**
* 设置 上传时间
* @param uploadtimeList
*/
public OnethingQuery uploadtimeList(List<Integer> uploadtimeList){
this.uploadtimeList = uploadtimeList;
return this;
}
/**
* 设置 1资料上传 2确认提交
* @param type
*/
public OnethingQuery type(Integer type){
setType(type);
return this;
}
/**
* 设置 开始 1资料上传 2确认提交
* @param typeStart
*/
public OnethingQuery typeStart(Integer typeStart){
this.typeStart = typeStart;
return this;
}
/**
* 设置 结束 1资料上传 2确认提交
* @param typeEnd
*/
public OnethingQuery typeEnd(Integer typeEnd){
this.typeEnd = typeEnd;
return this;
}
/**
* 设置 增加 1资料上传 2确认提交
* @param typeIncrement
*/
public OnethingQuery typeIncrement(Integer typeIncrement){
this.typeIncrement = typeIncrement;
return this;
}
/**
* 设置 1资料上传 2确认提交
* @param typeList
*/
public OnethingQuery typeList(List<Integer> typeList){
this.typeList = typeList;
return this;
}
/**
* 设置 邮寄地址
* @param address
*/
public OnethingQuery address(String address){
setAddress(address);
return this;
}
/**
* 设置 邮寄地址
* @param addressList
*/
public OnethingQuery addressList(List<String> addressList){
this.addressList = addressList;
return this;
}
/**
* 设置 联系人
* @param linkman
*/
public OnethingQuery linkman(String linkman){
setLinkman(linkman);
return this;
}
/**
* 设置 联系人
* @param linkmanList
*/
public OnethingQuery linkmanList(List<String> linkmanList){
this.linkmanList = linkmanList;
return this;
}
/**
* 设置 联系电话
* @param phone
*/
public OnethingQuery phone(Integer phone){
setPhone(phone);
return this;
}
/**
* 设置 开始 联系电话
* @param phoneStart
*/
public OnethingQuery phoneStart(Integer phoneStart){
this.phoneStart = phoneStart;
return this;
}
/**
* 设置 结束 联系电话
* @param phoneEnd
*/
public OnethingQuery phoneEnd(Integer phoneEnd){
this.phoneEnd = phoneEnd;
return this;
}
/**
* 设置 增加 联系电话
* @param phoneIncrement
*/
public OnethingQuery phoneIncrement(Integer phoneIncrement){
this.phoneIncrement = phoneIncrement;
return this;
}
/**
* 设置 联系电话
* @param phoneList
*/
public OnethingQuery phoneList(List<Integer> phoneList){
this.phoneList = phoneList;
return this;
}
/**
* 设置 取件方式 0自主取件 1邮寄
* @param manner
*/
public OnethingQuery manner(Integer manner){
setManner(manner);
return this;
}
/**
* 设置 开始 取件方式 0自主取件 1邮寄
* @param mannerStart
*/
public OnethingQuery mannerStart(Integer mannerStart){
this.mannerStart = mannerStart;
return this;
}
/**
* 设置 结束 取件方式 0自主取件 1邮寄
* @param mannerEnd
*/
public OnethingQuery mannerEnd(Integer mannerEnd){
this.mannerEnd = mannerEnd;
return this;
}
/**
* 设置 增加 取件方式 0自主取件 1邮寄
* @param mannerIncrement
*/
public OnethingQuery mannerIncrement(Integer mannerIncrement){
this.mannerIncrement = mannerIncrement;
return this;
}
/**
* 设置 取件方式 0自主取件 1邮寄
* @param mannerList
*/
public OnethingQuery mannerList(List<Integer> mannerList){
this.mannerList = mannerList;
return this;
}
/**
* 设置 取件码
* @param getnum
*/
public OnethingQuery getnum(String getnum){
setGetnum(getnum);
return this;
}
/**
* 设置 取件码
* @param getnumList
*/
public OnethingQuery getnumList(List<String> getnumList){
this.getnumList = getnumList;
return this;
}
/**
* 设置 快递单号
* @param number
*/
public OnethingQuery number(String number){
setNumber(number);
return this;
}
/**
* 设置 快递单号
* @param numberList
*/
public OnethingQuery numberList(List<String> numberList){
this.numberList = numberList;
return this;
}
/**
* 设置 问答内容
* @param optionContent
*/
public OnethingQuery optionContent(String optionContent){
setOptionContent(optionContent);
return this;
}
/**
* 设置 问答内容
* @param optionContentList
*/
public OnethingQuery optionContentList(List<String> optionContentList){
this.optionContentList = optionContentList;
return this;
}
/**
* 设置 0是否撤销 1撤销
* @param isRevoke
*/
public OnethingQuery isRevoke(Integer isRevoke){
setIsRevoke(isRevoke);
return this;
}
/**
* 设置 开始 0是否撤销 1撤销
* @param isRevokeStart
*/
public OnethingQuery isRevokeStart(Integer isRevokeStart){
this.isRevokeStart = isRevokeStart;
return this;
}
/**
* 设置 结束 0是否撤销 1撤销
* @param isRevokeEnd
*/
public OnethingQuery isRevokeEnd(Integer isRevokeEnd){
this.isRevokeEnd = isRevokeEnd;
return this;
}
/**
* 设置 增加 0是否撤销 1撤销
* @param isRevokeIncrement
*/
public OnethingQuery isRevokeIncrement(Integer isRevokeIncrement){
this.isRevokeIncrement = isRevokeIncrement;
return this;
}
/**
* 设置 0是否撤销 1撤销
* @param isRevokeList
*/
public OnethingQuery isRevokeList(List<Integer> isRevokeList){
this.isRevokeList = isRevokeList;
return this;
}
/**
* 设置 站点ID
* @param siteid
*/
public OnethingQuery siteid(Integer siteid){
setSiteid(siteid);
return this;
}
/**
* 设置 开始 站点ID
* @param siteidStart
*/
public OnethingQuery siteidStart(Integer siteidStart){
this.siteidStart = siteidStart;
return this;
}
/**
* 设置 结束 站点ID
* @param siteidEnd
*/
public OnethingQuery siteidEnd(Integer siteidEnd){
this.siteidEnd = siteidEnd;
return this;
}
/**
* 设置 增加 站点ID
* @param siteidIncrement
*/
public OnethingQuery siteidIncrement(Integer siteidIncrement){
this.siteidIncrement = siteidIncrement;
return this;
}
/**
* 设置 站点ID
* @param siteidList
*/
public OnethingQuery siteidList(List<Integer> siteidList){
this.siteidList = siteidList;
return this;
}
/**
* 设置 审批状态 0未审核 1 审核中 2 审核成功
* @param status
*/
public OnethingQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 审批状态 0未审核 1 审核中 2 审核成功
* @param statusStart
*/
public OnethingQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 审批状态 0未审核 1 审核中 2 审核成功
* @param statusEnd
*/
public OnethingQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 审批状态 0未审核 1 审核中 2 审核成功
* @param statusIncrement
*/
public OnethingQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 审批状态 0未审核 1 审核中 2 审核成功
* @param statusList
*/
public OnethingQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public OnethingQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public OnethingQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public OnethingQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public OnethingQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public OnethingQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public OnethingQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public OnethingQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public OnethingQuery createUserList(List<String> createUserList){
this.createUserList = createUserList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<OnethingQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<OnethingQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<OnethingQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<OnethingQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.onething.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.onething.model.OnethingEntity;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface OnethingService extends ICRUDService<OnethingEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.onething.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.onething.dao.OnethingDao;
import com.mortals.xhx.module.onething.model.OnethingEntity;
import com.mortals.xhx.module.onething.service.OnethingService;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("onethingService")
public class OnethingServiceImpl extends AbstractCRUDServiceImpl<OnethingDao, OnethingEntity, Long> implements OnethingService {
}
\ No newline at end of file
package com.mortals.xhx.module.onething.web;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.code.ApproveStateEnum;
import com.mortals.xhx.common.code.UserStatus;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.member.web.MemberForm;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.module.onething.model.OnethingEntity;
import com.mortals.xhx.module.onething.service.OnethingService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("onething")
public class OnethingController extends BaseCRUDJsonMappingController<OnethingService,OnethingForm,OnethingEntity,Long> {
public OnethingController(){
super.setFormClass(OnethingForm.class);
super.setModuleDesc("一件事提交基础表");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, OnethingForm form, Map<String, Object> model, Context context) {
this.addDict(model, "status", ApproveStateEnum.getEnumMap());
this.addDict(model, "isRevoke", YesNoEnum.getEnumMap());
}
}
\ No newline at end of file
package com.mortals.xhx.module.onething.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.onething.model.OnethingEntity;
import com.mortals.xhx.module.onething.model.OnethingQuery;
/**
* <p>Title: 一件事提交基础表</p>
* <p>Description: OnethingForm </p>
* @author
* @version 1.0.0
*/
public class OnethingForm extends BaseCRUDFormLong<OnethingEntity> {
private OnethingEntity entity = new OnethingEntity();
private OnethingQuery query = new OnethingQuery();
public OnethingForm(){
}
@Override
public OnethingEntity getEntity() {
return entity;
}
public void setOnething(OnethingEntity entity) {
this.entity = entity;
}
@Override
public OnethingQuery getQuery() {
return query;
}
public void setQuery(OnethingQuery query) {
this.query = query;
}
}
\ No newline at end of file
...@@ -10,6 +10,10 @@ import java.util.Date; ...@@ -10,6 +10,10 @@ import java.util.Date;
*/ */
public class TaskProcessQuery extends TaskProcessEntity{ public class TaskProcessQuery extends TaskProcessEntity{
private static final long serialVersionUID = 1628095308109L; private static final long serialVersionUID = 1628095308109L;
//微信openID
private String openId;
/** 开始 ID,主键,自增长 */ /** 开始 ID,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -459,4 +463,12 @@ public class TaskProcessQuery extends TaskProcessEntity{ ...@@ -459,4 +463,12 @@ public class TaskProcessQuery extends TaskProcessEntity{
this.andConditionList = andConditionList; this.andConditionList = andConditionList;
} }
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
} }
\ No newline at end of file
...@@ -5,6 +5,10 @@ import com.mortals.framework.model.PageInfo; ...@@ -5,6 +5,10 @@ import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.common.pdu.flow.*; import com.mortals.xhx.common.pdu.flow.*;
import com.mortals.xhx.feign.processinstance.ProcessCommonReq;
import com.mortals.xhx.feign.processinstance.ProcessDeleteReq;
import com.mortals.xhx.feign.processinstance.ProcessStopReq;
import com.mortals.xhx.feign.task.*;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity; import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity;
import com.mortals.xhx.module.task.model.TaskProcessEntity; import com.mortals.xhx.module.task.model.TaskProcessEntity;
import com.mortals.xhx.module.task.model.TaskProcessQuery; import com.mortals.xhx.module.task.model.TaskProcessQuery;
...@@ -35,23 +39,26 @@ public interface TaskProcessService extends ICRUDService<TaskProcessEntity,Long> ...@@ -35,23 +39,26 @@ public interface TaskProcessService extends ICRUDService<TaskProcessEntity,Long>
Map<String, Object> flowRecord(String procInsId, String deployId, Context context); Map<String, Object> flowRecord(String procInsId, String deployId, Context context);
String stopProcess(FlowTaskVoPdu flowTaskVoPdu, Context context); String stopProcess(ProcessStopReq processStopReq, Context context);
String complete(FlowTaskVoPdu flowTaskVoPdu, Context context); String complete(CompleteTaskReq completeTaskReq, Context context);
String reject(FlowTaskVoPdu flowTaskVoPdu, Context context); String reject(RejectTaskReq rejectTaskReq, Context context);
String taskReturn(FlowTaskVoPdu flowTaskVoPdu, Context context); String taskReturn(ReturnTaskReq returnTaskReq, Context context);
String delete(FlowTaskVoPdu flowTaskVoPdu, Context context); String delete(ProcessDeleteReq processDeleteReq, Context context);
String claim(FlowTaskVoPdu flowTaskVoPdu, Context context); String claim(FlowTaskVoPdu flowTaskVoPdu, Context context);
String unClaim(FlowTaskVoPdu flowTaskVoPdu, Context context); String unClaim(FlowTaskVoPdu flowTaskVoPdu, Context context);
String delegateTask(FlowTaskVoPdu flowTaskVoPdu, Context context); String delegateTask(DelegateTaskReq delegateTaskReq, Context context);
String assignTask(FlowTaskVoPdu flowTaskVoPdu, Context context); String assignTask(TurnTaskReq turnTaskReq, Context context);
List<FlowUserTaskPdu> getReturnList(FlowTaskVoPdu flowTaskVoPdu, Context context); List<FlowUserTaskPdu> getReturnList(CommonTaskReq commonTaskReq, Context context);
String processReadImage(ProcessCommonReq processCommonReq, Context context);
} }
\ No newline at end of file
...@@ -8,9 +8,14 @@ import com.mortals.framework.util.DateUtils; ...@@ -8,9 +8,14 @@ import com.mortals.framework.util.DateUtils;
import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.api.ApiRespPdu; import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.api.Page;
import com.mortals.xhx.common.pdu.flow.FlowTaskPdu; import com.mortals.xhx.common.pdu.flow.FlowTaskPdu;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign; import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign;
import com.mortals.xhx.feign.req.BaseFlowReq;
import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.TaskRsp;
import com.mortals.xhx.module.task.model.TaskFinishQuery; import com.mortals.xhx.module.task.model.TaskFinishQuery;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -40,35 +45,34 @@ public class TaskFinishServiceImpl extends AbstractCRUDServiceImpl<TaskFinishDao ...@@ -40,35 +45,34 @@ public class TaskFinishServiceImpl extends AbstractCRUDServiceImpl<TaskFinishDao
@Override @Override
public Result<FlowTaskPdu> finishList(TaskFinishQuery query, PageInfo pageInfo, Context context) { public Result<FlowTaskPdu> finishList(TaskFinishQuery query, PageInfo pageInfo, Context context) {
Result<FlowTaskPdu> result = new Result<>();
FlowTaskPdu flowTaskPdu = new FlowTaskPdu(); FlowTaskPdu flowTaskPdu = new FlowTaskPdu();
flowTaskPdu.setUserId(context.getUser().getLoginName()); flowTaskPdu.setUserCode(context.getUser().getLoginName());
try { try {
if (!ObjectUtils.isEmpty(query)) { BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
BeanUtils.copyProperties(query, flowTaskPdu, BeanUtil.getNullPropertyNames(query)); Page page = new Page();
} page.setPer(pageInfo.getPrePageResult());
ApiRespPdu<Result<FlowTaskPdu>> resp = apiFlowTaskFeign.finishedList(context.getUser().getId().toString(),config.getTenantId(), pageInfo); page.setSize(pageInfo.getCurrPage());
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn(config.getTenantId());
baseQuery.setUserCode(context.getUser().getLoginName());
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
ApiResp<TaskRsp> resp = apiFlowTaskFeign.finishedList(baseQueryReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取已办列表异常:" + resp.getMsg()); log.error("获取已办列表异常:" + resp.getMsg());
throw new AppException("获取办列表异常:" + resp.getMsg()); throw new AppException("获取办列表异常:" + resp.getMsg());
} }
// if (!ObjectUtils.isEmpty(resp.getData())) { pageInfo.setTotalResult(resp.getData().getPage().getTotal());
// List<TaskTodoEntity> collect = resp.getData().getList().stream().map(item -> { result.setPageInfo(pageInfo);
// TaskTodoEntity taskTodoEntity = new TaskTodoEntity(); result.setList(resp.getData().getList());
// BeanUtils.copyProperties(item, taskTodoEntity, BeanUtil.getNullPropertyNames(item));
// taskTodoEntity.setProcDefVersion("v" + item.getProcDefVersion()); return result;
//
// return taskTodoEntity;
// }).collect(Collectors.toList());
// result.setList(collect);
// result.setPageInfo(resp.getData().getPageInfo());
// } else {
// result.setList(Collections.emptyList());
// }
return resp.getData();
} catch (Exception e) { } catch (Exception e) {
throw new AppException(e.getMessage()); throw new AppException("获取代办列表异常:" + e.getMessage());
} }
} }
} }
\ No newline at end of file
...@@ -5,15 +5,28 @@ import com.mortals.framework.exception.AppException; ...@@ -5,15 +5,28 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.util.HttpUtil;
import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.model.UserQuery;
import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.FlowStatusEnum; import com.mortals.xhx.common.code.FlowStatusEnum;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.api.ApiRespPdu; import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.api.Page;
import com.mortals.xhx.common.pdu.flow.*; import com.mortals.xhx.common.pdu.flow.*;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign; import com.mortals.xhx.feign.flowable.IApiFlowDefinitionFeign;
import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign; import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign;
import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign; import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign;
import com.mortals.xhx.feign.processinstance.ProcessCommonReq;
import com.mortals.xhx.feign.processinstance.ProcessDeleteReq;
import com.mortals.xhx.feign.processinstance.ProcessStopReq;
import com.mortals.xhx.feign.req.BaseFlowReq;
import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.TaskRsp;
import com.mortals.xhx.feign.task.*;
import com.mortals.xhx.module.deploy.model.DeployFormEntity; import com.mortals.xhx.module.deploy.model.DeployFormEntity;
import com.mortals.xhx.module.deploy.model.DeployFormQuery; import com.mortals.xhx.module.deploy.model.DeployFormQuery;
import com.mortals.xhx.module.deploy.service.DeployFormService; import com.mortals.xhx.module.deploy.service.DeployFormService;
...@@ -39,7 +52,7 @@ import java.util.stream.Collectors; ...@@ -39,7 +52,7 @@ import java.util.stream.Collectors;
@Service("taskProcessService") @Service("taskProcessService")
@CommonsLog @CommonsLog
public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessDao, TaskProcessEntity, Long> implements TaskProcessService { public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessDao, TaskProcessEntity, Long> implements TaskProcessService {
@Autowired @Autowired
private IApiFlowTaskFeign apiFlowTaskFeign; private IApiFlowTaskFeign apiFlowTaskFeign;
...@@ -50,6 +63,8 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -50,6 +63,8 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
private DeployFormService deployFormService; private DeployFormService deployFormService;
@Autowired @Autowired
private FormService formService; private FormService formService;
@Autowired
private UserService userService;
@Autowired @Autowired
private InterceptorConfig config; private InterceptorConfig config;
...@@ -59,12 +74,29 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -59,12 +74,29 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
Result<TaskProcessEntity> result = new Result<>(); Result<TaskProcessEntity> result = new Result<>();
FlowTaskPdu flowTaskPdu = new FlowTaskPdu(); FlowTaskPdu flowTaskPdu = new FlowTaskPdu();
flowTaskPdu.setUserId(context.getUser().getLoginName()); flowTaskPdu.setUserCode(context.getUser().getLoginName());
try { try {
if (!ObjectUtils.isEmpty(query)) { if (!ObjectUtils.isEmpty(query)) {
BeanUtils.copyProperties(query, flowTaskPdu, BeanUtil.getNullPropertyNames(query)); BeanUtils.copyProperties(query, flowTaskPdu, BeanUtil.getNullPropertyNames(query));
} }
ApiRespPdu<Result<FlowTaskPdu>> resp = apiFlowTaskFeign.myProcess(context.getUser().getId().toString(),config.getTenantId(), pageInfo);
BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
Page page = new Page();
page.setPer(pageInfo.getPrePageResult());
page.setSize(pageInfo.getCurrPage());
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn(config.getTenantId());
//设置微信用户查询
baseQuery.setUserCode(context.getUser().getLoginName());
if(!ObjectUtils.isEmpty(query.getOpenId())){
baseQuery.setUserCode(query.getOpenId());
}
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
ApiResp<TaskRsp> resp = apiFlowTaskFeign.myProcess(baseQueryReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程定义列表异常:" + resp.getMsg()); log.error("获取流程定义列表异常:" + resp.getMsg());
throw new AppException("获取流程定义列表异常:" + resp.getMsg()); throw new AppException("获取流程定义列表异常:" + resp.getMsg());
...@@ -83,7 +115,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -83,7 +115,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
return taskProcessEntity; return taskProcessEntity;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
result.setList(collect); result.setList(collect);
result.setPageInfo(resp.getData().getPageInfo());
Page curPage = resp.getData().getPage();
pageInfo.setTotalResult(curPage.getTotal());
result.setPageInfo(pageInfo);
} else { } else {
result.setList(Collections.emptyList()); result.setList(Collections.emptyList());
} }
...@@ -99,15 +134,16 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -99,15 +134,16 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
List<FlowViewerPdu> flowViewerList = null; List<FlowViewerPdu> flowViewerList = null;
try { try {
ProcessCommonReq processCommonReq = new ProcessCommonReq();
processCommonReq.setProcessInstanceId(procInsId);
ApiRespPdu<List<FlowViewerPdu>> resp = iApiFlowInstanceFeign.getFlowViewer(procInsId); ApiResp<List<FlowViewerPdu>> resp = iApiFlowInstanceFeign.getFlowViewer(processCommonReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程定义列表异常:" + resp.getMsg()); throw new AppException("获取流程列表异常:" + resp.getMsg());
throw new AppException("获取流程定义列表异常:" + resp.getMsg());
} }
flowViewerList = resp.getData(); flowViewerList = resp.getData();
} catch (Exception e) { } catch (Exception e) {
throw new AppException("获取流程定义列表异常:" + e.getMessage()); throw new AppException(e);
} }
return flowViewerList; return flowViewerList;
...@@ -117,7 +153,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -117,7 +153,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
public Map<String, Object> getProcessVariables(String taskId) { public Map<String, Object> getProcessVariables(String taskId) {
try { try {
log.error("获取流程变量 taskId:" + taskId); log.error("获取流程变量 taskId:" + taskId);
ApiRespPdu<Map<String, Object>> resp = apiFlowTaskFeign.processVariables(taskId); CommonTaskReq commonTaskReq = new CommonTaskReq();
commonTaskReq.setTaskId(taskId);
ApiResp<Map<String, Object>> resp = apiFlowTaskFeign.processVariables(commonTaskReq);
log.info("获取流程变量 resp:" + JSONObject.toJSONString(resp)); log.info("获取流程变量 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取流程变量异常:" + resp.getMsg()); log.error("获取流程变量异常:" + resp.getMsg());
...@@ -134,7 +172,12 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -134,7 +172,12 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
public FlowNextPdu getNextFlowNode(String data, Context context) { public FlowNextPdu getNextFlowNode(String data, Context context) {
try { try {
FlowTaskVoPdu flowTaskVoPdu = JSONObject.parseObject(data, FlowTaskVoPdu.class); FlowTaskVoPdu flowTaskVoPdu = JSONObject.parseObject(data, FlowTaskVoPdu.class);
ApiRespPdu<FlowNextPdu> resp = apiFlowTaskFeign.getNextFlowNode(flowTaskVoPdu);
CommonTaskReq commonTaskReq = new CommonTaskReq();
commonTaskReq.setTaskId(flowTaskVoPdu.getTaskId());
ApiResp<FlowNextPdu> resp = apiFlowTaskFeign.nextFlowNode(commonTaskReq);
log.info("获取下一节点 resp:" + JSONObject.toJSONString(resp)); log.info("获取下一节点 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取下一节点异常:" + resp.getMsg()); log.error("获取下一节点异常:" + resp.getMsg());
...@@ -156,13 +199,34 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -156,13 +199,34 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
try { try {
ApiRespPdu<List<FlowTaskPdu>> resp = apiFlowTaskFeign.flowRecord(procInsId, deployId); BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
Page page = new Page();
page.setPer(-1);
page.setSize(999);
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn(config.getTenantId());
baseQuery.setProcessInstanceId(procInsId);
baseQuery.setDeployId(deployId);
baseQuery.setUserCode(context.getUser().getLoginName());
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
ApiResp<TaskRsp> resp = apiFlowTaskFeign.flowRecord(baseQueryReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取办理列表异常:" + resp.getMsg()); log.error("获取办理列表异常:" + resp.getMsg());
throw new AppException("获取办理列表异常:" + resp.getMsg()); throw new AppException("获取办理列表异常:" + resp.getMsg());
} }
if (!ObjectUtils.isEmpty(resp.getData())) { if (!ObjectUtils.isEmpty(resp.getData())) {
resp.getData().getList().stream().peek(item -> {
UserQuery userQuery = new UserQuery();
userQuery.setLoginName(item.getAssigneeId());
UserEntity userEntity = userService.selectOne(userQuery, context);
item.setAssigneeName(userEntity.getRealName());
}).count();
map.put("flowList", resp.getData()); map.put("flowList", resp.getData());
} }
// 第一次申请获取初始化表单 // 第一次申请获取初始化表单
...@@ -184,9 +248,11 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -184,9 +248,11 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String stopProcess(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String stopProcess(ProcessStopReq processStopReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.stopProcess(flowTaskVoPdu); processStopReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = iApiFlowInstanceFeign.stopProcess(processStopReq);
log.info("取消申请 resp:" + JSONObject.toJSONString(resp)); log.info("取消申请 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("取消申请异常:" + resp.getMsg()); log.error("取消申请异常:" + resp.getMsg());
...@@ -199,9 +265,11 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -199,9 +265,11 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String complete(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String complete(CompleteTaskReq completeTaskReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.complete(flowTaskVoPdu); completeTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = apiFlowTaskFeign.complete(completeTaskReq);
log.info("审核任务 resp:" + JSONObject.toJSONString(resp)); log.info("审核任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("审核任务异常:" + resp.getMsg()); log.error("审核任务异常:" + resp.getMsg());
...@@ -214,9 +282,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -214,9 +282,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String reject(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String reject(RejectTaskReq rejectTaskReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.reject(flowTaskVoPdu); rejectTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = apiFlowTaskFeign.reject(rejectTaskReq);
log.info("拒绝任务 resp:" + JSONObject.toJSONString(resp)); log.info("拒绝任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("拒绝任务异常:" + resp.getMsg()); log.error("拒绝任务异常:" + resp.getMsg());
...@@ -229,9 +298,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -229,9 +298,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String taskReturn(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String taskReturn(ReturnTaskReq returnTaskReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.taskReturn(flowTaskVoPdu); returnTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = apiFlowTaskFeign.taskReturn(returnTaskReq);
log.info("回退任务 resp:" + JSONObject.toJSONString(resp)); log.info("回退任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("回退任务异常:" + resp.getMsg()); log.error("回退任务异常:" + resp.getMsg());
...@@ -244,13 +314,15 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -244,13 +314,15 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String delete(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String delete(ProcessDeleteReq processDeleteReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.delete(flowTaskVoPdu); processDeleteReq.setUserCode(context.getUser().getLoginName());
log.info("取消任务 resp:" + JSONObject.toJSONString(resp)); ApiResp<String> resp = iApiFlowInstanceFeign.deleteProcess(processDeleteReq);
log.info("删除实例 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("取消任务异常:" + resp.getMsg()); log.error("删除实例异常:" + resp.getMsg());
throw new AppException("取消异常:" + resp.getMsg()); throw new AppException("删除实例:" + resp.getMsg());
} }
return resp.getData(); return resp.getData();
} catch (Exception e) { } catch (Exception e) {
...@@ -261,7 +333,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -261,7 +333,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
@Override @Override
public String claim(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String claim(FlowTaskVoPdu flowTaskVoPdu, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.claim(flowTaskVoPdu); //todo
//ApiRespPdu<String> resp = apiFlowTaskFeign.claim(flowTaskVoPdu);
ApiResp<String> resp = null;
log.info("签收任务 resp:" + JSONObject.toJSONString(resp)); log.info("签收任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("签收任务异常:" + resp.getMsg()); log.error("签收任务异常:" + resp.getMsg());
...@@ -276,7 +350,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -276,7 +350,9 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
@Override @Override
public String unClaim(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String unClaim(FlowTaskVoPdu flowTaskVoPdu, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.unClaim(flowTaskVoPdu); // ApiRespPdu<String> resp = apiFlowTaskFeign.unClaim(flowTaskVoPdu);
//todo
ApiResp<String> resp = null;
log.info("拒绝签收任务 resp:" + JSONObject.toJSONString(resp)); log.info("拒绝签收任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("拒绝签收任务异常:" + resp.getMsg()); log.error("拒绝签收任务异常:" + resp.getMsg());
...@@ -289,9 +365,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -289,9 +365,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String delegateTask(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String delegateTask(DelegateTaskReq delegateTaskReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.delegateTask(flowTaskVoPdu); delegateTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = apiFlowTaskFeign.delegateTask(delegateTaskReq);
log.info("委派任务 resp:" + JSONObject.toJSONString(resp)); log.info("委派任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("委派任务异常:" + resp.getMsg()); log.error("委派任务异常:" + resp.getMsg());
...@@ -304,9 +381,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -304,9 +381,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public String assignTask(FlowTaskVoPdu flowTaskVoPdu, Context context) { public String assignTask(TurnTaskReq turnTaskReq, Context context) {
try { try {
ApiRespPdu<String> resp = apiFlowTaskFeign.assignTask(flowTaskVoPdu); turnTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<String> resp = apiFlowTaskFeign.assignTask(turnTaskReq);
log.info("转办任务 resp:" + JSONObject.toJSONString(resp)); log.info("转办任务 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("转办任务异常:" + resp.getMsg()); log.error("转办任务异常:" + resp.getMsg());
...@@ -319,9 +397,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -319,9 +397,10 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
} }
@Override @Override
public List<FlowUserTaskPdu> getReturnList(FlowTaskVoPdu flowTaskVoPdu, Context context) { public List<FlowUserTaskPdu> getReturnList(CommonTaskReq commonTaskReq, Context context) {
try { try {
ApiRespPdu<List<FlowUserTaskPdu>> resp = apiFlowTaskFeign.findReturnTaskList(flowTaskVoPdu); commonTaskReq.setUserCode(context.getUser().getLoginName());
ApiResp<List<FlowUserTaskPdu>> resp = apiFlowTaskFeign.findReturnTaskList(commonTaskReq);
log.info("获取所有可回退的节点 resp:" + JSONObject.toJSONString(resp)); log.info("获取所有可回退的节点 resp:" + JSONObject.toJSONString(resp));
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取所有可回退的节点异常:" + resp.getMsg()); log.error("获取所有可回退的节点异常:" + resp.getMsg());
...@@ -332,4 +411,18 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD ...@@ -332,4 +411,18 @@ public class TaskProcessServiceImpl extends AbstractCRUDServiceImpl<TaskProcessD
throw new AppException(e.getMessage()); throw new AppException(e.getMessage());
} }
} }
@Override
public String processReadImage(ProcessCommonReq processCommonReq, Context context) {
try {
ApiResp<String> resp = iApiFlowInstanceFeign.processReadImage(processCommonReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取图片异常:" + resp.getMsg());
throw new AppException("获取图片异常:" + resp.getMsg());
}
return resp.getData();
} catch (Exception e) {
throw new AppException(e.getMessage());
}
}
} }
\ No newline at end of file
package com.mortals.xhx.module.task.service.impl; package com.mortals.xhx.module.task.service.impl;
import com.alibaba.fastjson.JSON;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
...@@ -8,10 +9,15 @@ import com.mortals.xhx.base.framework.config.InterceptorConfig; ...@@ -8,10 +9,15 @@ import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.common.code.FlowStatusEnum; import com.mortals.xhx.common.code.FlowStatusEnum;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.api.ApiRespPdu; import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.api.Page;
import com.mortals.xhx.common.pdu.flow.FlowTaskPdu; import com.mortals.xhx.common.pdu.flow.FlowTaskPdu;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign; import com.mortals.xhx.feign.flowable.IApiFlowInstanceFeign;
import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign; import com.mortals.xhx.feign.flowable.IApiFlowTaskFeign;
import com.mortals.xhx.feign.req.BaseFlowReq;
import com.mortals.xhx.feign.req.BaseQuery;
import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.feign.rsp.TaskRsp;
import com.mortals.xhx.module.deploy.service.DeployFormService; import com.mortals.xhx.module.deploy.service.DeployFormService;
import com.mortals.xhx.module.form.service.FormService; import com.mortals.xhx.module.form.service.FormService;
import com.mortals.xhx.module.task.model.TaskProcessEntity; import com.mortals.xhx.module.task.model.TaskProcessEntity;
...@@ -55,20 +61,49 @@ public class TaskTodoServiceImpl extends AbstractCRUDServiceImpl<TaskTodoDao, Ta ...@@ -55,20 +61,49 @@ public class TaskTodoServiceImpl extends AbstractCRUDServiceImpl<TaskTodoDao, Ta
@Override @Override
public Result<FlowTaskPdu> todoList(TaskTodoQuery query, PageInfo pageInfo, Context context) { public Result<FlowTaskPdu> todoList(TaskTodoQuery query, PageInfo pageInfo, Context context) {
Result<FlowTaskPdu> result = new Result<>(); Result<FlowTaskPdu> result = new Result<>();
FlowTaskPdu flowTaskPdu = new FlowTaskPdu(); FlowTaskPdu flowTaskPdu = new FlowTaskPdu();
flowTaskPdu.setUserId(context.getUser().getLoginName()); flowTaskPdu.setUserCode(context.getUser().getLoginName());
try { try {
if (!ObjectUtils.isEmpty(query)) { BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
BeanUtils.copyProperties(query, flowTaskPdu, BeanUtil.getNullPropertyNames(query)); Page page = new Page();
} page.setPer(pageInfo.getPrePageResult());
ApiRespPdu<Result<FlowTaskPdu>> resp = apiFlowTaskFeign.todoList(context.getUser().getId().toString(),config.getTenantId(), pageInfo); page.setSize(pageInfo.getCurrPage());
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn(config.getTenantId());
baseQuery.setUserCode(context.getUser().getLoginName());
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
ApiResp<TaskRsp> resp = apiFlowTaskFeign.todoList(baseQueryReq);
if (YesNoEnum.NO.getValue() == resp.getCode()) { if (YesNoEnum.NO.getValue() == resp.getCode()) {
log.error("获取代办列表异常:" + resp.getMsg()); log.error("获取代办列表异常:" + resp.getMsg());
throw new AppException("获取代办列表异常:" + resp.getMsg()); throw new AppException("获取代办列表异常:" + resp.getMsg());
} }
return resp.getData();
pageInfo.setTotalResult(resp.getData().getPage().getTotal());
result.setPageInfo(pageInfo);
result.setList(resp.getData().getList());
return result;
} catch (Exception e) { } catch (Exception e) {
throw new AppException("获取代办列表异常:" + e.getMessage()); throw new AppException("获取代办列表异常:" + e.getMessage());
} }
} }
public static void main(String[] args) {
BaseFlowReq<BaseQuery> baseQueryReq = new BaseFlowReq<>();
Page page = new Page();
page.setPer(10);
page.setSize(1);
BaseQuery baseQuery = new BaseQuery();
baseQuery.setPlatformSn("goverment");
baseQuery.setUserCode("2323");
baseQueryReq.setPage(page);
baseQueryReq.setQuery(baseQuery);
System.out.println(JSON.toJSONString(baseQueryReq));
}
} }
\ No newline at end of file
...@@ -24,6 +24,4 @@ public class TaskFormController extends BaseCRUDJsonMappingController<TaskFormSe ...@@ -24,6 +24,4 @@ public class TaskFormController extends BaseCRUDJsonMappingController<TaskFormSe
super.setModuleDesc("流程任务关联表"); super.setModuleDesc("流程任务关联表");
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.task.web; package com.mortals.xhx.module.task.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mortals.framework.common.IBaseEnum; import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
...@@ -9,6 +13,10 @@ import com.mortals.xhx.base.system.user.service.UserService; ...@@ -9,6 +13,10 @@ import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.FlowStateType; import com.mortals.xhx.common.code.FlowStateType;
import com.mortals.xhx.common.code.FlowStatusEnum; import com.mortals.xhx.common.code.FlowStatusEnum;
import com.mortals.xhx.common.pdu.flow.*; import com.mortals.xhx.common.pdu.flow.*;
import com.mortals.xhx.feign.processinstance.ProcessCommonReq;
import com.mortals.xhx.feign.processinstance.ProcessDeleteReq;
import com.mortals.xhx.feign.processinstance.ProcessStopReq;
import com.mortals.xhx.feign.task.*;
import com.mortals.xhx.module.flowable.web.FlowableDefinitionForm; import com.mortals.xhx.module.flowable.web.FlowableDefinitionForm;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -60,7 +68,7 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -60,7 +68,7 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
} }
/** /**
* 查询流程定义 * 查询流程表
*/ */
@PostMapping(value = "list") @PostMapping(value = "list")
@Override @Override
...@@ -184,10 +192,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -184,10 +192,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
* 取消申请 * 取消申请
*/ */
@PostMapping(value = "stopProcess") @PostMapping(value = "stopProcess")
public String stopProcess(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String stopProcess(@ApiParam(value = "任务数据类") ProcessStopReq processStopReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
this.getService().stopProcess(flowTaskVoPdu, getContext()); this.getService().stopProcess(processStopReq, getContext());
ret.put(KEY_RESULT_MSG, "取消申请成功!"); ret.put(KEY_RESULT_MSG, "取消申请成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) { } catch (Exception e) {
...@@ -199,13 +207,39 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -199,13 +207,39 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
} }
/** /**
* 审核 * 删除实例
*/
@PostMapping(value = "deleteProcess")
public String deleteProcess(@ApiParam(value = "任务数据类") ProcessDeleteReq processDeleteReq) {
JSONObject ret = new JSONObject();
try {
this.getService().delete(processDeleteReq, getContext());
ret.put(KEY_RESULT_MSG, "删除成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("删除异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
/**
* 任务审核
*/ */
@PostMapping(value = "complete") @PostMapping(value = "complete")
public String complete(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String complete(@ApiParam(value = "任务数据类") CompleteTaskReq completeTaskReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
this.getService().complete(flowTaskVoPdu, getContext()); String vars = request.getParameter("vars");
if(!ObjectUtils.isEmpty(vars)){
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> variables = mapper.readValue(vars, Map.class);
completeTaskReq.setVariables(variables);
}
this.getService().complete(completeTaskReq, getContext());
ret.put(KEY_RESULT_MSG, "审核成功!"); ret.put(KEY_RESULT_MSG, "审核成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) { } catch (Exception e) {
...@@ -220,10 +254,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -220,10 +254,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
* 委派任务 * 委派任务
*/ */
@PostMapping(value = "delegate") @PostMapping(value = "delegate")
public String delegate(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String delegate(@ApiParam(value = "任务数据类") DelegateTaskReq delegateTaskReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
this.getService().delegateTask(flowTaskVoPdu, getContext()); this.getService().delegateTask(delegateTaskReq, getContext());
ret.put(KEY_RESULT_MSG, "委派任务成功!"); ret.put(KEY_RESULT_MSG, "委派任务成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) { } catch (Exception e) {
...@@ -234,14 +268,33 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -234,14 +268,33 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
return ret.toJSONString(); return ret.toJSONString();
} }
/**
* 转办任务
*/
@PostMapping(value = "assignTask")
public String assignTask(@ApiParam(value = "任务数据类") TurnTaskReq turnTaskReq) {
JSONObject ret = new JSONObject();
try {
this.getService().assignTask(turnTaskReq, getContext());
ret.put(KEY_RESULT_MSG, "转办任务成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("转办任务异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
/** /**
* 退回任务 * 退回任务
*/ */
@PostMapping(value = "return") @PostMapping(value = "return")
public String taskRreturn(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String taskRreturn(@ApiParam(value = "任务数据类") ReturnTaskReq returnTaskReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
this.getService().taskReturn(flowTaskVoPdu, getContext()); this.getService().taskReturn(returnTaskReq, getContext());
ret.put(KEY_RESULT_MSG, "退回任务成功!"); ret.put(KEY_RESULT_MSG, "退回任务成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) { } catch (Exception e) {
...@@ -256,10 +309,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -256,10 +309,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
* 退回任务 * 退回任务
*/ */
@PostMapping(value = "returnList") @PostMapping(value = "returnList")
public String returnList(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String returnList(@ApiParam(value = "任务数据类") CommonTaskReq commonTaskReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
List<FlowUserTaskPdu> returnList = this.getService().getReturnList(flowTaskVoPdu, getContext()); List<FlowUserTaskPdu> returnList = this.getService().getReturnList(commonTaskReq, getContext());
ret.put(KEY_RESULT_DATA, returnList); ret.put(KEY_RESULT_DATA, returnList);
ret.put(KEY_RESULT_MSG, "退回任务成功!"); ret.put(KEY_RESULT_MSG, "退回任务成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
...@@ -275,10 +328,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -275,10 +328,10 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
* 驳回任务 * 驳回任务
*/ */
@PostMapping(value = "reject") @PostMapping(value = "reject")
public String rejectTask(@ApiParam(value = "任务数据类") FlowTaskVoPdu flowTaskVoPdu) { public String rejectTask(@ApiParam(value = "任务数据类") RejectTaskReq rejectTaskReq) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
this.getService().reject(flowTaskVoPdu, getContext()); this.getService().reject(rejectTaskReq, getContext());
ret.put(KEY_RESULT_MSG, "驳回成功!"); ret.put(KEY_RESULT_MSG, "驳回成功!");
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
...@@ -290,4 +343,39 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro ...@@ -290,4 +343,39 @@ public class TaskProcessController extends BaseCRUDJsonMappingController<TaskPro
return ret.toJSONString(); return ret.toJSONString();
} }
/**
* 查询当前流程图
*/
@PostMapping(value = "preViewImage")
public String preViewImage(@ApiParam(value = "任务数据类") ProcessCommonReq processCommonReq) {
JSONObject ret = new JSONObject();
try {
String base64 = this.getService().processReadImage(processCommonReq, getContext());
ret.put(KEY_RESULT_MSG, "获取图片成功!");
ret.put("pic",base64);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("获取图片异常", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
public static void main(String[] args) throws JsonProcessingException {
HashMap<String, String> test = new HashMap<>();
test.put("name","value");
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> variables = mapper.readValue(JSON.toJSONString(test), Map.class);
System.out.println(JSON.toJSONString(variables));
}
} }
\ No newline at end of file
...@@ -10,6 +10,9 @@ spring: ...@@ -10,6 +10,9 @@ spring:
multipart: multipart:
max-file-size: 100MB max-file-size: 100MB
max-request-size: 1000MB max-request-size: 1000MB
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
cloud: cloud:
nacos: nacos:
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.member.dao.ibatis.MemberDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="MemberEntity" id="MemberEntity-Map">
<result property="id" column="id" />
<result property="phone" column="phone" />
<result property="unionid" column="unionid" />
<result property="openId" column="openId" />
<result property="picImage" column="picImage" />
<result property="nickname" column="nickname" />
<result property="realName" column="realName" />
<result property="gender" column="gender" />
<result property="lastLoginTime" column="lastLoginTime" />
<result property="remark" column="remark" />
<result property="status" column="status" />
<result property="createTime" column="createTime" />
<result property="createUser" column="createUser" />
<result property="createUserName" column="createUserName" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id as id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('phone') or colPickMode == 1 and data.containsKey('phone')))">
a.phone as phone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('unionid') or colPickMode == 1 and data.containsKey('unionid')))">
a.unionid as unionid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('openId') or colPickMode == 1 and data.containsKey('openId')))">
a.openId as openId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('picImage') or colPickMode == 1 and data.containsKey('picImage')))">
a.picImage as picImage,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('nickname') or colPickMode == 1 and data.containsKey('nickname')))">
a.nickname as nickname,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('realName') or colPickMode == 1 and data.containsKey('realName')))">
a.realName as realName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('gender') or colPickMode == 1 and data.containsKey('gender')))">
a.gender as gender,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('lastLoginTime') or colPickMode == 1 and data.containsKey('lastLoginTime')))">
a.lastLoginTime as lastLoginTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))">
a.remark as remark,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))">
a.status as status,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime as createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUser') or colPickMode == 1 and data.containsKey('createUser')))">
a.createUser as createUser,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName as createUserName,
</if>
</trim>
</sql>
<!-- 新增 -->
<insert id="insert" parameterType="MemberEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_member
(phone,unionid,openId,picImage,nickname,realName,gender,lastLoginTime,remark,status,createTime,createUser,createUserName)
VALUES
(#{phone},#{unionid},#{openId},#{picImage},#{nickname},#{realName},#{gender},#{lastLoginTime},#{remark},#{status},#{createTime},#{createUser},#{createUserName})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_member
(phone,unionid,openId,picImage,nickname,realName,gender,lastLoginTime,remark,status,createTime,createUser,createUserName)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.phone},#{item.unionid},#{item.openId},#{item.picImage},#{item.nickname},#{item.realName},#{item.gender},#{item.lastLoginTime},#{item.remark},#{item.status},#{item.createTime},#{item.createUser},#{item.createUserName})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_member as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('phone')) or (colPickMode==1 and !data.containsKey('phone'))">
a.phone=#{data.phone},
</if>
<if test="(colPickMode==0 and data.containsKey('unionid')) or (colPickMode==1 and !data.containsKey('unionid'))">
a.unionid=#{data.unionid},
</if>
<if test="(colPickMode==0 and data.containsKey('openId')) or (colPickMode==1 and !data.containsKey('openId'))">
a.openId=#{data.openId},
</if>
<if test="(colPickMode==0 and data.containsKey('picImage')) or (colPickMode==1 and !data.containsKey('picImage'))">
a.picImage=#{data.picImage},
</if>
<if test="(colPickMode==0 and data.containsKey('nickname')) or (colPickMode==1 and !data.containsKey('nickname'))">
a.nickname=#{data.nickname},
</if>
<if test="(colPickMode==0 and data.containsKey('realName')) or (colPickMode==1 and !data.containsKey('realName'))">
a.realName=#{data.realName},
</if>
<if test="(colPickMode==0 and data.containsKey('gender')) or (colPickMode==1 and !data.containsKey('gender'))">
a.gender=#{data.gender},
</if>
<if test="(colPickMode==0 and data.containsKey('lastLoginTime')) or (colPickMode==1 and !data.containsKey('lastLoginTime'))">
a.lastLoginTime=#{data.lastLoginTime},
</if>
<if test="(colPickMode==0 and data.containsKey('remark')) or (colPickMode==1 and !data.containsKey('remark'))">
a.remark=#{data.remark},
</if>
<if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))">
a.status=#{data.status},
</if>
<if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))">
a.status=ifnull(a.status,0) + #{data.statusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUser')) or (colPickMode==1 and !data.containsKey('createUser'))">
a.createUser=#{data.createUser},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_xhx_member as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="phone=(case" suffix="ELSE phone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('phone')) or (colPickMode==1 and !item.containsKey('phone'))">
when a.id=#{item.id} then #{item.phone}
</if>
</foreach>
</trim>
<trim prefix="unionid=(case" suffix="ELSE unionid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('unionid')) or (colPickMode==1 and !item.containsKey('unionid'))">
when a.id=#{item.id} then #{item.unionid}
</if>
</foreach>
</trim>
<trim prefix="openId=(case" suffix="ELSE openId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('openId')) or (colPickMode==1 and !item.containsKey('openId'))">
when a.id=#{item.id} then #{item.openId}
</if>
</foreach>
</trim>
<trim prefix="picImage=(case" suffix="ELSE picImage end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('picImage')) or (colPickMode==1 and !item.containsKey('picImage'))">
when a.id=#{item.id} then #{item.picImage}
</if>
</foreach>
</trim>
<trim prefix="nickname=(case" suffix="ELSE nickname end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('nickname')) or (colPickMode==1 and !item.containsKey('nickname'))">
when a.id=#{item.id} then #{item.nickname}
</if>
</foreach>
</trim>
<trim prefix="realName=(case" suffix="ELSE realName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('realName')) or (colPickMode==1 and !item.containsKey('realName'))">
when a.id=#{item.id} then #{item.realName}
</if>
</foreach>
</trim>
<trim prefix="gender=(case" suffix="ELSE gender end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('gender')) or (colPickMode==1 and !item.containsKey('gender'))">
when a.id=#{item.id} then #{item.gender}
</if>
</foreach>
</trim>
<trim prefix="lastLoginTime=(case" suffix="ELSE lastLoginTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('lastLoginTime')) or (colPickMode==1 and !item.containsKey('lastLoginTime'))">
when a.id=#{item.id} then #{item.lastLoginTime}
</if>
</foreach>
</trim>
<trim prefix="remark=(case" suffix="ELSE remark end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('remark')) or (colPickMode==1 and !item.containsKey('remark'))">
when a.id=#{item.id} then #{item.remark}
</if>
</foreach>
</trim>
<trim prefix="status=(case" suffix="ELSE status end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('status')) or (colPickMode==1 and !item.containsKey('status'))">
when a.id=#{item.id} then #{item.status}
</when>
<when test="(colPickMode==0 and item.containsKey('statusIncrement')) or (colPickMode==1 and !item.containsKey('statusIncrement'))">
when a.id=#{item.id} then ifnull(a.status,0) + #{item.statusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUser=(case" suffix="ELSE createUser end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUser')) or (colPickMode==1 and !item.containsKey('createUser'))">
when a.id=#{item.id} then #{item.createUser}
</if>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="MemberEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_member as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_member as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_member where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_member as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="MemberEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_member as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_xhx_member as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('phone')">
<if test="conditionParamRef.phone != null and conditionParamRef.phone != ''">
${_conditionType_} a.phone like #{${_conditionParam_}.phone}
</if>
<if test="conditionParamRef.phone == null">
${_conditionType_} a.phone is null
</if>
</if>
<if test="conditionParamRef.containsKey('phoneList')">
${_conditionType_} a.phone in
<foreach collection="conditionParamRef.phoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('unionid')">
<if test="conditionParamRef.unionid != null and conditionParamRef.unionid != ''">
${_conditionType_} a.unionid like #{${_conditionParam_}.unionid}
</if>
<if test="conditionParamRef.unionid == null">
${_conditionType_} a.unionid is null
</if>
</if>
<if test="conditionParamRef.containsKey('unionidList')">
${_conditionType_} a.unionid in
<foreach collection="conditionParamRef.unionidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('openId')">
<if test="conditionParamRef.openId != null and conditionParamRef.openId != ''">
${_conditionType_} a.openId like #{${_conditionParam_}.openId}
</if>
<if test="conditionParamRef.openId == null">
${_conditionType_} a.openId is null
</if>
</if>
<if test="conditionParamRef.containsKey('openIdList')">
${_conditionType_} a.openId in
<foreach collection="conditionParamRef.openIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('picImage')">
<if test="conditionParamRef.picImage != null and conditionParamRef.picImage != ''">
${_conditionType_} a.picImage like #{${_conditionParam_}.picImage}
</if>
<if test="conditionParamRef.picImage == null">
${_conditionType_} a.picImage is null
</if>
</if>
<if test="conditionParamRef.containsKey('picImageList')">
${_conditionType_} a.picImage in
<foreach collection="conditionParamRef.picImageList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('nickname')">
<if test="conditionParamRef.nickname != null and conditionParamRef.nickname != ''">
${_conditionType_} a.nickname like #{${_conditionParam_}.nickname}
</if>
<if test="conditionParamRef.nickname == null">
${_conditionType_} a.nickname is null
</if>
</if>
<if test="conditionParamRef.containsKey('nicknameList')">
${_conditionType_} a.nickname in
<foreach collection="conditionParamRef.nicknameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('realName')">
<if test="conditionParamRef.realName != null and conditionParamRef.realName != ''">
${_conditionType_} a.realName like #{${_conditionParam_}.realName}
</if>
<if test="conditionParamRef.realName == null">
${_conditionType_} a.realName is null
</if>
</if>
<if test="conditionParamRef.containsKey('realNameList')">
${_conditionType_} a.realName in
<foreach collection="conditionParamRef.realNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('gender')">
<if test="conditionParamRef.gender != null and conditionParamRef.gender != ''">
${_conditionType_} a.gender like #{${_conditionParam_}.gender}
</if>
<if test="conditionParamRef.gender == null">
${_conditionType_} a.gender is null
</if>
</if>
<if test="conditionParamRef.containsKey('genderList')">
${_conditionType_} a.gender in
<foreach collection="conditionParamRef.genderList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('lastLoginTime')">
<if test="conditionParamRef.lastLoginTime != null ">
${_conditionType_} a.lastLoginTime = #{${_conditionParam_}.lastLoginTime}
</if>
<if test="conditionParamRef.lastLoginTime == null">
${_conditionType_} a.lastLoginTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('lastLoginTimeStart') and conditionParamRef.lastLoginTimeStart != null and conditionParamRef.lastLoginTimeStart!=''">
${_conditionType_} a.lastLoginTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.lastLoginTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('lastLoginTimeEnd') and conditionParamRef.lastLoginTimeEnd != null and conditionParamRef.lastLoginTimeEnd!=''">
${_conditionType_} a.lastLoginTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.lastLoginTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('remark')">
<if test="conditionParamRef.remark != null and conditionParamRef.remark != ''">
${_conditionType_} a.remark like #{${_conditionParam_}.remark}
</if>
<if test="conditionParamRef.remark == null">
${_conditionType_} a.remark is null
</if>
</if>
<if test="conditionParamRef.containsKey('remarkList')">
${_conditionType_} a.remark in
<foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('status')">
<if test="conditionParamRef.status != null ">
${_conditionType_} a.status = #{${_conditionParam_}.status}
</if>
<if test="conditionParamRef.status == null">
${_conditionType_} a.status is null
</if>
</if>
<if test="conditionParamRef.containsKey('statusList')">
${_conditionType_} a.status in
<foreach collection="conditionParamRef.statusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('statusStart') and conditionParamRef.statusStart != null">
${_conditionType_} a.status <![CDATA[ >= ]]> #{${_conditionParam_}.statusStart}
</if>
<if test="conditionParamRef.containsKey('statusEnd') and conditionParamRef.statusEnd != null">
${_conditionType_} a.status <![CDATA[ <= ]]> #{${_conditionParam_}.statusEnd}
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUser')">
<if test="conditionParamRef.createUser != null and conditionParamRef.createUser != ''">
${_conditionType_} a.createUser like #{${_conditionParam_}.createUser}
</if>
<if test="conditionParamRef.createUser == null">
${_conditionType_} a.createUser is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserList')">
${_conditionType_} a.createUser in
<foreach collection="conditionParamRef.createUserList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('phone')">
a.phone
<if test='orderCol.phone != null and "DESC".equalsIgnoreCase(orderCol.phone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('unionid')">
a.unionid
<if test='orderCol.unionid != null and "DESC".equalsIgnoreCase(orderCol.unionid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('openId')">
a.openId
<if test='orderCol.openId != null and "DESC".equalsIgnoreCase(orderCol.openId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('picImage')">
a.picImage
<if test='orderCol.picImage != null and "DESC".equalsIgnoreCase(orderCol.picImage)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('nickname')">
a.nickname
<if test='orderCol.nickname != null and "DESC".equalsIgnoreCase(orderCol.nickname)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('realName')">
a.realName
<if test='orderCol.realName != null and "DESC".equalsIgnoreCase(orderCol.realName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('gender')">
a.gender
<if test='orderCol.gender != null and "DESC".equalsIgnoreCase(orderCol.gender)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('lastLoginTime')">
a.lastLoginTime
<if test='orderCol.lastLoginTime != null and "DESC".equalsIgnoreCase(orderCol.lastLoginTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('remark')">
a.remark
<if test='orderCol.remark != null and "DESC".equalsIgnoreCase(orderCol.remark)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('status')">
a.status
<if test='orderCol.status != null and "DESC".equalsIgnoreCase(orderCol.status)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUser')">
a.createUser
<if test='orderCol.createUser != null and "DESC".equalsIgnoreCase(orderCol.createUser)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.onething.dao.ibatis.OnethingDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="OnethingEntity" id="OnethingEntity-Map">
<result property="id" column="id" />
<result property="taskId" column="taskId" />
<result property="processInstanceId" column="processInstanceId" />
<result property="memberId" column="memberId" />
<result property="matterid" column="matterid" />
<result property="uploadtime" column="uploadtime" />
<result property="type" column="type" />
<result property="address" column="address" />
<result property="linkman" column="linkman" />
<result property="phone" column="phone" />
<result property="manner" column="manner" />
<result property="getnum" column="getnum" />
<result property="number" column="number" />
<result property="optionContent" column="optionContent" />
<result property="isRevoke" column="isRevoke" />
<result property="siteid" column="siteid" />
<result property="status" column="status" />
<result property="updateTime" column="updateTime" />
<result property="updateUser" column="updateUser" />
<result property="createTime" column="createTime" />
<result property="createUser" column="createUser" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id as id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('taskId') or colPickMode == 1 and data.containsKey('taskId')))">
a.taskId as taskId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processInstanceId') or colPickMode == 1 and data.containsKey('processInstanceId')))">
a.processInstanceId as processInstanceId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('memberId') or colPickMode == 1 and data.containsKey('memberId')))">
a.memberId as memberId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('matterid') or colPickMode == 1 and data.containsKey('matterid')))">
a.matterid as matterid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('uploadtime') or colPickMode == 1 and data.containsKey('uploadtime')))">
a.uploadtime as uploadtime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('type') or colPickMode == 1 and data.containsKey('type')))">
a.type as type,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('address') or colPickMode == 1 and data.containsKey('address')))">
a.address as address,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('linkman') or colPickMode == 1 and data.containsKey('linkman')))">
a.linkman as linkman,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('phone') or colPickMode == 1 and data.containsKey('phone')))">
a.phone as phone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('manner') or colPickMode == 1 and data.containsKey('manner')))">
a.manner as manner,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('getnum') or colPickMode == 1 and data.containsKey('getnum')))">
a.getnum as getnum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('number') or colPickMode == 1 and data.containsKey('number')))">
a.number as number,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('optionContent') or colPickMode == 1 and data.containsKey('optionContent')))">
a.optionContent as optionContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isRevoke') or colPickMode == 1 and data.containsKey('isRevoke')))">
a.isRevoke as isRevoke,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteid') or colPickMode == 1 and data.containsKey('siteid')))">
a.siteid as siteid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))">
a.status as status,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime as updateTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUser') or colPickMode == 1 and data.containsKey('updateUser')))">
a.updateUser as updateUser,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime as createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUser') or colPickMode == 1 and data.containsKey('createUser')))">
a.createUser as createUser,
</if>
</trim>
</sql>
<!-- 新增 -->
<insert id="insert" parameterType="OnethingEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_yth_onething
(taskId,processInstanceId,memberId,matterid,uploadtime,type,address,linkman,phone,manner,getnum,number,optionContent,isRevoke,siteid,status,updateTime,updateUser,createTime,createUser)
VALUES
(#{taskId},#{processInstanceId},#{memberId},#{matterid},#{uploadtime},#{type},#{address},#{linkman},#{phone},#{manner},#{getnum},#{number},#{optionContent},#{isRevoke},#{siteid},#{status},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_yth_onething
(taskId,processInstanceId,memberId,matterid,uploadtime,type,address,linkman,phone,manner,getnum,number,optionContent,isRevoke,siteid,status,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.taskId},#{item.processInstanceId},#{item.memberId},#{item.matterid},#{item.uploadtime},#{item.type},#{item.address},#{item.linkman},#{item.phone},#{item.manner},#{item.getnum},#{item.number},#{item.optionContent},#{item.isRevoke},#{item.siteid},#{item.status},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_yth_onething as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('taskId')) or (colPickMode==1 and !data.containsKey('taskId'))">
a.taskId=#{data.taskId},
</if>
<if test="(colPickMode==0 and data.containsKey('processInstanceId')) or (colPickMode==1 and !data.containsKey('processInstanceId'))">
a.processInstanceId=#{data.processInstanceId},
</if>
<if test="(colPickMode==0 and data.containsKey('memberId')) or (colPickMode==1 and !data.containsKey('memberId'))">
a.memberId=#{data.memberId},
</if>
<if test="(colPickMode==0 and data.containsKey('memberIdIncrement')) or (colPickMode==1 and !data.containsKey('memberIdIncrement'))">
a.memberId=ifnull(a.memberId,0) + #{data.memberIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('matterid')) or (colPickMode==1 and !data.containsKey('matterid'))">
a.matterid=#{data.matterid},
</if>
<if test="(colPickMode==0 and data.containsKey('matteridIncrement')) or (colPickMode==1 and !data.containsKey('matteridIncrement'))">
a.matterid=ifnull(a.matterid,0) + #{data.matteridIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('uploadtime')) or (colPickMode==1 and !data.containsKey('uploadtime'))">
a.uploadtime=#{data.uploadtime},
</if>
<if test="(colPickMode==0 and data.containsKey('uploadtimeIncrement')) or (colPickMode==1 and !data.containsKey('uploadtimeIncrement'))">
a.uploadtime=ifnull(a.uploadtime,0) + #{data.uploadtimeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('type')) or (colPickMode==1 and !data.containsKey('type'))">
a.type=#{data.type},
</if>
<if test="(colPickMode==0 and data.containsKey('typeIncrement')) or (colPickMode==1 and !data.containsKey('typeIncrement'))">
a.type=ifnull(a.type,0) + #{data.typeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('address')) or (colPickMode==1 and !data.containsKey('address'))">
a.address=#{data.address},
</if>
<if test="(colPickMode==0 and data.containsKey('linkman')) or (colPickMode==1 and !data.containsKey('linkman'))">
a.linkman=#{data.linkman},
</if>
<if test="(colPickMode==0 and data.containsKey('phone')) or (colPickMode==1 and !data.containsKey('phone'))">
a.phone=#{data.phone},
</if>
<if test="(colPickMode==0 and data.containsKey('phoneIncrement')) or (colPickMode==1 and !data.containsKey('phoneIncrement'))">
a.phone=ifnull(a.phone,0) + #{data.phoneIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('manner')) or (colPickMode==1 and !data.containsKey('manner'))">
a.manner=#{data.manner},
</if>
<if test="(colPickMode==0 and data.containsKey('mannerIncrement')) or (colPickMode==1 and !data.containsKey('mannerIncrement'))">
a.manner=ifnull(a.manner,0) + #{data.mannerIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('getnum')) or (colPickMode==1 and !data.containsKey('getnum'))">
a.getnum=#{data.getnum},
</if>
<if test="(colPickMode==0 and data.containsKey('number')) or (colPickMode==1 and !data.containsKey('number'))">
a.number=#{data.number},
</if>
<if test="(colPickMode==0 and data.containsKey('optionContent')) or (colPickMode==1 and !data.containsKey('optionContent'))">
a.optionContent=#{data.optionContent},
</if>
<if test="(colPickMode==0 and data.containsKey('isRevoke')) or (colPickMode==1 and !data.containsKey('isRevoke'))">
a.isRevoke=#{data.isRevoke},
</if>
<if test="(colPickMode==0 and data.containsKey('isRevokeIncrement')) or (colPickMode==1 and !data.containsKey('isRevokeIncrement'))">
a.isRevoke=ifnull(a.isRevoke,0) + #{data.isRevokeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('siteid')) or (colPickMode==1 and !data.containsKey('siteid'))">
a.siteid=#{data.siteid},
</if>
<if test="(colPickMode==0 and data.containsKey('siteidIncrement')) or (colPickMode==1 and !data.containsKey('siteidIncrement'))">
a.siteid=ifnull(a.siteid,0) + #{data.siteidIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))">
a.status=#{data.status},
</if>
<if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))">
a.status=ifnull(a.status,0) + #{data.statusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateUser')) or (colPickMode==1 and !data.containsKey('updateUser'))">
a.updateUser=#{data.updateUser},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUser')) or (colPickMode==1 and !data.containsKey('createUser'))">
a.createUser=#{data.createUser},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_yth_onething as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="taskId=(case" suffix="ELSE taskId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('taskId')) or (colPickMode==1 and !item.containsKey('taskId'))">
when a.id=#{item.id} then #{item.taskId}
</if>
</foreach>
</trim>
<trim prefix="processInstanceId=(case" suffix="ELSE processInstanceId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('processInstanceId')) or (colPickMode==1 and !item.containsKey('processInstanceId'))">
when a.id=#{item.id} then #{item.processInstanceId}
</if>
</foreach>
</trim>
<trim prefix="memberId=(case" suffix="ELSE memberId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('memberId')) or (colPickMode==1 and !item.containsKey('memberId'))">
when a.id=#{item.id} then #{item.memberId}
</when>
<when test="(colPickMode==0 and item.containsKey('memberIdIncrement')) or (colPickMode==1 and !item.containsKey('memberIdIncrement'))">
when a.id=#{item.id} then ifnull(a.memberId,0) + #{item.memberIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="matterid=(case" suffix="ELSE matterid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('matterid')) or (colPickMode==1 and !item.containsKey('matterid'))">
when a.id=#{item.id} then #{item.matterid}
</when>
<when test="(colPickMode==0 and item.containsKey('matteridIncrement')) or (colPickMode==1 and !item.containsKey('matteridIncrement'))">
when a.id=#{item.id} then ifnull(a.matterid,0) + #{item.matteridIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="uploadtime=(case" suffix="ELSE uploadtime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('uploadtime')) or (colPickMode==1 and !item.containsKey('uploadtime'))">
when a.id=#{item.id} then #{item.uploadtime}
</when>
<when test="(colPickMode==0 and item.containsKey('uploadtimeIncrement')) or (colPickMode==1 and !item.containsKey('uploadtimeIncrement'))">
when a.id=#{item.id} then ifnull(a.uploadtime,0) + #{item.uploadtimeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="type=(case" suffix="ELSE type end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('type')) or (colPickMode==1 and !item.containsKey('type'))">
when a.id=#{item.id} then #{item.type}
</when>
<when test="(colPickMode==0 and item.containsKey('typeIncrement')) or (colPickMode==1 and !item.containsKey('typeIncrement'))">
when a.id=#{item.id} then ifnull(a.type,0) + #{item.typeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="address=(case" suffix="ELSE address end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('address')) or (colPickMode==1 and !item.containsKey('address'))">
when a.id=#{item.id} then #{item.address}
</if>
</foreach>
</trim>
<trim prefix="linkman=(case" suffix="ELSE linkman end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('linkman')) or (colPickMode==1 and !item.containsKey('linkman'))">
when a.id=#{item.id} then #{item.linkman}
</if>
</foreach>
</trim>
<trim prefix="phone=(case" suffix="ELSE phone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('phone')) or (colPickMode==1 and !item.containsKey('phone'))">
when a.id=#{item.id} then #{item.phone}
</when>
<when test="(colPickMode==0 and item.containsKey('phoneIncrement')) or (colPickMode==1 and !item.containsKey('phoneIncrement'))">
when a.id=#{item.id} then ifnull(a.phone,0) + #{item.phoneIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="manner=(case" suffix="ELSE manner end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('manner')) or (colPickMode==1 and !item.containsKey('manner'))">
when a.id=#{item.id} then #{item.manner}
</when>
<when test="(colPickMode==0 and item.containsKey('mannerIncrement')) or (colPickMode==1 and !item.containsKey('mannerIncrement'))">
when a.id=#{item.id} then ifnull(a.manner,0) + #{item.mannerIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="getnum=(case" suffix="ELSE getnum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('getnum')) or (colPickMode==1 and !item.containsKey('getnum'))">
when a.id=#{item.id} then #{item.getnum}
</if>
</foreach>
</trim>
<trim prefix="number=(case" suffix="ELSE number end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('number')) or (colPickMode==1 and !item.containsKey('number'))">
when a.id=#{item.id} then #{item.number}
</if>
</foreach>
</trim>
<trim prefix="optionContent=(case" suffix="ELSE optionContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('optionContent')) or (colPickMode==1 and !item.containsKey('optionContent'))">
when a.id=#{item.id} then #{item.optionContent}
</if>
</foreach>
</trim>
<trim prefix="isRevoke=(case" suffix="ELSE isRevoke end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isRevoke')) or (colPickMode==1 and !item.containsKey('isRevoke'))">
when a.id=#{item.id} then #{item.isRevoke}
</when>
<when test="(colPickMode==0 and item.containsKey('isRevokeIncrement')) or (colPickMode==1 and !item.containsKey('isRevokeIncrement'))">
when a.id=#{item.id} then ifnull(a.isRevoke,0) + #{item.isRevokeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="siteid=(case" suffix="ELSE siteid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('siteid')) or (colPickMode==1 and !item.containsKey('siteid'))">
when a.id=#{item.id} then #{item.siteid}
</when>
<when test="(colPickMode==0 and item.containsKey('siteidIncrement')) or (colPickMode==1 and !item.containsKey('siteidIncrement'))">
when a.id=#{item.id} then ifnull(a.siteid,0) + #{item.siteidIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="status=(case" suffix="ELSE status end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('status')) or (colPickMode==1 and !item.containsKey('status'))">
when a.id=#{item.id} then #{item.status}
</when>
<when test="(colPickMode==0 and item.containsKey('statusIncrement')) or (colPickMode==1 and !item.containsKey('statusIncrement'))">
when a.id=#{item.id} then ifnull(a.status,0) + #{item.statusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
<trim prefix="updateUser=(case" suffix="ELSE updateUser end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateUser')) or (colPickMode==1 and !item.containsKey('updateUser'))">
when a.id=#{item.id} then #{item.updateUser}
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUser=(case" suffix="ELSE createUser end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUser')) or (colPickMode==1 and !item.containsKey('createUser'))">
when a.id=#{item.id} then #{item.createUser}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="OnethingEntity-Map">
select <include refid="_columns"/>
from mortals_yth_onething as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_yth_onething as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_yth_onething where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_yth_onething as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="OnethingEntity-Map">
select <include refid="_columns"/>
from mortals_yth_onething as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_yth_onething as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('taskId')">
<if test="conditionParamRef.taskId != null and conditionParamRef.taskId != ''">
${_conditionType_} a.taskId like #{${_conditionParam_}.taskId}
</if>
<if test="conditionParamRef.taskId == null">
${_conditionType_} a.taskId is null
</if>
</if>
<if test="conditionParamRef.containsKey('taskIdList')">
${_conditionType_} a.taskId in
<foreach collection="conditionParamRef.taskIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('processInstanceId')">
<if test="conditionParamRef.processInstanceId != null and conditionParamRef.processInstanceId != ''">
${_conditionType_} a.processInstanceId like #{${_conditionParam_}.processInstanceId}
</if>
<if test="conditionParamRef.processInstanceId == null">
${_conditionType_} a.processInstanceId is null
</if>
</if>
<if test="conditionParamRef.containsKey('processInstanceIdList')">
${_conditionType_} a.processInstanceId in
<foreach collection="conditionParamRef.processInstanceIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('memberId')">
<if test="conditionParamRef.memberId != null ">
${_conditionType_} a.memberId = #{${_conditionParam_}.memberId}
</if>
<if test="conditionParamRef.memberId == null">
${_conditionType_} a.memberId is null
</if>
</if>
<if test="conditionParamRef.containsKey('memberIdList')">
${_conditionType_} a.memberId in
<foreach collection="conditionParamRef.memberIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('memberIdStart') and conditionParamRef.memberIdStart != null">
${_conditionType_} a.memberId <![CDATA[ >= ]]> #{${_conditionParam_}.memberIdStart}
</if>
<if test="conditionParamRef.containsKey('memberIdEnd') and conditionParamRef.memberIdEnd != null">
${_conditionType_} a.memberId <![CDATA[ <= ]]> #{${_conditionParam_}.memberIdEnd}
</if>
<if test="conditionParamRef.containsKey('matterid')">
<if test="conditionParamRef.matterid != null ">
${_conditionType_} a.matterid = #{${_conditionParam_}.matterid}
</if>
<if test="conditionParamRef.matterid == null">
${_conditionType_} a.matterid is null
</if>
</if>
<if test="conditionParamRef.containsKey('matteridList')">
${_conditionType_} a.matterid in
<foreach collection="conditionParamRef.matteridList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('matteridStart') and conditionParamRef.matteridStart != null">
${_conditionType_} a.matterid <![CDATA[ >= ]]> #{${_conditionParam_}.matteridStart}
</if>
<if test="conditionParamRef.containsKey('matteridEnd') and conditionParamRef.matteridEnd != null">
${_conditionType_} a.matterid <![CDATA[ <= ]]> #{${_conditionParam_}.matteridEnd}
</if>
<if test="conditionParamRef.containsKey('uploadtime')">
<if test="conditionParamRef.uploadtime != null ">
${_conditionType_} a.uploadtime = #{${_conditionParam_}.uploadtime}
</if>
<if test="conditionParamRef.uploadtime == null">
${_conditionType_} a.uploadtime is null
</if>
</if>
<if test="conditionParamRef.containsKey('uploadtimeList')">
${_conditionType_} a.uploadtime in
<foreach collection="conditionParamRef.uploadtimeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('uploadtimeStart') and conditionParamRef.uploadtimeStart != null">
${_conditionType_} a.uploadtime <![CDATA[ >= ]]> #{${_conditionParam_}.uploadtimeStart}
</if>
<if test="conditionParamRef.containsKey('uploadtimeEnd') and conditionParamRef.uploadtimeEnd != null">
${_conditionType_} a.uploadtime <![CDATA[ <= ]]> #{${_conditionParam_}.uploadtimeEnd}
</if>
<if test="conditionParamRef.containsKey('type')">
<if test="conditionParamRef.type != null ">
${_conditionType_} a.type = #{${_conditionParam_}.type}
</if>
<if test="conditionParamRef.type == null">
${_conditionType_} a.type is null
</if>
</if>
<if test="conditionParamRef.containsKey('typeList')">
${_conditionType_} a.type in
<foreach collection="conditionParamRef.typeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('typeStart') and conditionParamRef.typeStart != null">
${_conditionType_} a.type <![CDATA[ >= ]]> #{${_conditionParam_}.typeStart}
</if>
<if test="conditionParamRef.containsKey('typeEnd') and conditionParamRef.typeEnd != null">
${_conditionType_} a.type <![CDATA[ <= ]]> #{${_conditionParam_}.typeEnd}
</if>
<if test="conditionParamRef.containsKey('address')">
<if test="conditionParamRef.address != null and conditionParamRef.address != ''">
${_conditionType_} a.address like #{${_conditionParam_}.address}
</if>
<if test="conditionParamRef.address == null">
${_conditionType_} a.address is null
</if>
</if>
<if test="conditionParamRef.containsKey('addressList')">
${_conditionType_} a.address in
<foreach collection="conditionParamRef.addressList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('linkman')">
<if test="conditionParamRef.linkman != null and conditionParamRef.linkman != ''">
${_conditionType_} a.linkman like #{${_conditionParam_}.linkman}
</if>
<if test="conditionParamRef.linkman == null">
${_conditionType_} a.linkman is null
</if>
</if>
<if test="conditionParamRef.containsKey('linkmanList')">
${_conditionType_} a.linkman in
<foreach collection="conditionParamRef.linkmanList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('phone')">
<if test="conditionParamRef.phone != null ">
${_conditionType_} a.phone = #{${_conditionParam_}.phone}
</if>
<if test="conditionParamRef.phone == null">
${_conditionType_} a.phone is null
</if>
</if>
<if test="conditionParamRef.containsKey('phoneList')">
${_conditionType_} a.phone in
<foreach collection="conditionParamRef.phoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('phoneStart') and conditionParamRef.phoneStart != null">
${_conditionType_} a.phone <![CDATA[ >= ]]> #{${_conditionParam_}.phoneStart}
</if>
<if test="conditionParamRef.containsKey('phoneEnd') and conditionParamRef.phoneEnd != null">
${_conditionType_} a.phone <![CDATA[ <= ]]> #{${_conditionParam_}.phoneEnd}
</if>
<if test="conditionParamRef.containsKey('manner')">
<if test="conditionParamRef.manner != null ">
${_conditionType_} a.manner = #{${_conditionParam_}.manner}
</if>
<if test="conditionParamRef.manner == null">
${_conditionType_} a.manner is null
</if>
</if>
<if test="conditionParamRef.containsKey('mannerList')">
${_conditionType_} a.manner in
<foreach collection="conditionParamRef.mannerList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('mannerStart') and conditionParamRef.mannerStart != null">
${_conditionType_} a.manner <![CDATA[ >= ]]> #{${_conditionParam_}.mannerStart}
</if>
<if test="conditionParamRef.containsKey('mannerEnd') and conditionParamRef.mannerEnd != null">
${_conditionType_} a.manner <![CDATA[ <= ]]> #{${_conditionParam_}.mannerEnd}
</if>
<if test="conditionParamRef.containsKey('getnum')">
<if test="conditionParamRef.getnum != null and conditionParamRef.getnum != ''">
${_conditionType_} a.getnum like #{${_conditionParam_}.getnum}
</if>
<if test="conditionParamRef.getnum == null">
${_conditionType_} a.getnum is null
</if>
</if>
<if test="conditionParamRef.containsKey('getnumList')">
${_conditionType_} a.getnum in
<foreach collection="conditionParamRef.getnumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('number')">
<if test="conditionParamRef.number != null and conditionParamRef.number != ''">
${_conditionType_} a.number like #{${_conditionParam_}.number}
</if>
<if test="conditionParamRef.number == null">
${_conditionType_} a.number is null
</if>
</if>
<if test="conditionParamRef.containsKey('numberList')">
${_conditionType_} a.number in
<foreach collection="conditionParamRef.numberList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('optionContent')">
<if test="conditionParamRef.optionContent != null and conditionParamRef.optionContent != ''">
${_conditionType_} a.optionContent like #{${_conditionParam_}.optionContent}
</if>
<if test="conditionParamRef.optionContent == null">
${_conditionType_} a.optionContent is null
</if>
</if>
<if test="conditionParamRef.containsKey('optionContentList')">
${_conditionType_} a.optionContent in
<foreach collection="conditionParamRef.optionContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isRevoke')">
<if test="conditionParamRef.isRevoke != null ">
${_conditionType_} a.isRevoke = #{${_conditionParam_}.isRevoke}
</if>
<if test="conditionParamRef.isRevoke == null">
${_conditionType_} a.isRevoke is null
</if>
</if>
<if test="conditionParamRef.containsKey('isRevokeList')">
${_conditionType_} a.isRevoke in
<foreach collection="conditionParamRef.isRevokeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isRevokeStart') and conditionParamRef.isRevokeStart != null">
${_conditionType_} a.isRevoke <![CDATA[ >= ]]> #{${_conditionParam_}.isRevokeStart}
</if>
<if test="conditionParamRef.containsKey('isRevokeEnd') and conditionParamRef.isRevokeEnd != null">
${_conditionType_} a.isRevoke <![CDATA[ <= ]]> #{${_conditionParam_}.isRevokeEnd}
</if>
<if test="conditionParamRef.containsKey('siteid')">
<if test="conditionParamRef.siteid != null ">
${_conditionType_} a.siteid = #{${_conditionParam_}.siteid}
</if>
<if test="conditionParamRef.siteid == null">
${_conditionType_} a.siteid is null
</if>
</if>
<if test="conditionParamRef.containsKey('siteidList')">
${_conditionType_} a.siteid in
<foreach collection="conditionParamRef.siteidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('siteidStart') and conditionParamRef.siteidStart != null">
${_conditionType_} a.siteid <![CDATA[ >= ]]> #{${_conditionParam_}.siteidStart}
</if>
<if test="conditionParamRef.containsKey('siteidEnd') and conditionParamRef.siteidEnd != null">
${_conditionType_} a.siteid <![CDATA[ <= ]]> #{${_conditionParam_}.siteidEnd}
</if>
<if test="conditionParamRef.containsKey('status')">
<if test="conditionParamRef.status != null ">
${_conditionType_} a.status = #{${_conditionParam_}.status}
</if>
<if test="conditionParamRef.status == null">
${_conditionType_} a.status is null
</if>
</if>
<if test="conditionParamRef.containsKey('statusList')">
${_conditionType_} a.status in
<foreach collection="conditionParamRef.statusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('statusStart') and conditionParamRef.statusStart != null">
${_conditionType_} a.status <![CDATA[ >= ]]> #{${_conditionParam_}.statusStart}
</if>
<if test="conditionParamRef.containsKey('statusEnd') and conditionParamRef.statusEnd != null">
${_conditionType_} a.status <![CDATA[ <= ]]> #{${_conditionParam_}.statusEnd}
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.updateTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateUser')">
<if test="conditionParamRef.updateUser != null and conditionParamRef.updateUser != ''">
${_conditionType_} a.updateUser like #{${_conditionParam_}.updateUser}
</if>
<if test="conditionParamRef.updateUser == null">
${_conditionType_} a.updateUser is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserList')">
${_conditionType_} a.updateUser in
<foreach collection="conditionParamRef.updateUserList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUser')">
<if test="conditionParamRef.createUser != null and conditionParamRef.createUser != ''">
${_conditionType_} a.createUser like #{${_conditionParam_}.createUser}
</if>
<if test="conditionParamRef.createUser == null">
${_conditionType_} a.createUser is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserList')">
${_conditionType_} a.createUser in
<foreach collection="conditionParamRef.createUserList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('taskId')">
a.taskId
<if test='orderCol.taskId != null and "DESC".equalsIgnoreCase(orderCol.taskId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('processInstanceId')">
a.processInstanceId
<if test='orderCol.processInstanceId != null and "DESC".equalsIgnoreCase(orderCol.processInstanceId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('memberId')">
a.memberId
<if test='orderCol.memberId != null and "DESC".equalsIgnoreCase(orderCol.memberId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('matterid')">
a.matterid
<if test='orderCol.matterid != null and "DESC".equalsIgnoreCase(orderCol.matterid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('uploadtime')">
a.uploadtime
<if test='orderCol.uploadtime != null and "DESC".equalsIgnoreCase(orderCol.uploadtime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('type')">
a.type
<if test='orderCol.type != null and "DESC".equalsIgnoreCase(orderCol.type)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('address')">
a.address
<if test='orderCol.address != null and "DESC".equalsIgnoreCase(orderCol.address)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('linkman')">
a.linkman
<if test='orderCol.linkman != null and "DESC".equalsIgnoreCase(orderCol.linkman)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('phone')">
a.phone
<if test='orderCol.phone != null and "DESC".equalsIgnoreCase(orderCol.phone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('manner')">
a.manner
<if test='orderCol.manner != null and "DESC".equalsIgnoreCase(orderCol.manner)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('getnum')">
a.getnum
<if test='orderCol.getnum != null and "DESC".equalsIgnoreCase(orderCol.getnum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('number')">
a.number
<if test='orderCol.number != null and "DESC".equalsIgnoreCase(orderCol.number)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('optionContent')">
a.optionContent
<if test='orderCol.optionContent != null and "DESC".equalsIgnoreCase(orderCol.optionContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isRevoke')">
a.isRevoke
<if test='orderCol.isRevoke != null and "DESC".equalsIgnoreCase(orderCol.isRevoke)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('siteid')">
a.siteid
<if test='orderCol.siteid != null and "DESC".equalsIgnoreCase(orderCol.siteid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('status')">
a.status
<if test='orderCol.status != null and "DESC".equalsIgnoreCase(orderCol.status)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateUser')">
a.updateUser
<if test='orderCol.updateUser != null and "DESC".equalsIgnoreCase(orderCol.updateUser)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUser')">
a.createUser
<if test='orderCol.createUser != null and "DESC".equalsIgnoreCase(orderCol.createUser)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
Version | Update Time | Status | Author | Description
---|---|---|---|---
v2021-09-01 17:44:05|2021-09-01 17:44:05|auto|@finegirl|Created by smart-doc
## 一件事微信对外服务接口
### 微信用户提交材料
**URL:** http://localhost:28080/api/one/thing/create
**Type:** POST
**Content-Type:** application/json; charset=utf-8
**Description:** 微信用户提交材料
**Body-parameters:**
Parameter | Type|Description|Required|Since
---|---|---|---|---
id|object|No comments found.|false|-
createTime|string|创建时间|false|-
createUser|string|创建用户loginName|false|-
createUserId|int64|No comments found.|false|-
createUserName|string|No comments found.|false|-
createUserDeptId|int64|No comments found.|false|-
createUserDeptName|string|No comments found.|false|-
updateTime|string|变更时间|false|-
updateUser|string|变更用户loginName|false|-
updateUserId|int64|No comments found.|false|-
updateUserName|string|No comments found.|false|-
updateUserDeptId|int64|No comments found.|false|-
updateUserDeptName|string|No comments found.|false|-
taskId|string|流程任务id|false|-
processInstanceId|string|流程实例id|false|-
memberId|int64|微信用户ID|false|-
matterid|int64|事项ID|false|-
uploadtime|int32|上传时间|false|-
type|int32|1资料上传 2确认提交|false|-
address|string|邮寄地址|false|-
linkman|string|联系人|false|-
phone|int32|联系电话|false|-
manner|int32|取件方式 0自主取件 1邮寄|false|-
getnum|string|取件码|false|-
number|string|快递单号|false|-
optionContent|string|问答内容|false|-
isRevoke|int32|0是否撤销 1撤销|false|-
siteid|int32|站点ID|false|-
status|int32|审批状态 0未审核 1 审核中 2 审核成功|false|-
**Request-example:**
```
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -i http://localhost:28080/api/one/thing/create --data '{
"id": "qtxloy",
"createTime": "2021-09-01 17:44:10",
"createUser": "n18s1e",
"createUserId": 69,
"createUserName": "远航.罗",
"createUserDeptId": 703,
"createUserDeptName": "远航.罗",
"updateTime": "2021-09-01 17:44:10",
"updateUser": "wip9yl",
"updateUserId": 883,
"updateUserName": "远航.罗",
"updateUserDeptId": 485,
"updateUserDeptName": "远航.罗",
"taskId": "74",
"processInstanceId": "74",
"memberId": 396,
"matterid": 41,
"uploadtime": 683,
"type": 80,
"address": "黎桥8号, 江阴, 沪 949973",
"linkman": "fon85y",
"phone": 802,
"manner": 140,
"getnum": "aumqil",
"number": "l6xlee",
"optionContent": "ep6etx",
"isRevoke": 309,
"siteid": 143,
"status": 377
}'
```
**Response-fields:**
Field | Type|Description|Since
---|---|---|---
code|int32|No comments found.|-
msg|string|No comments found.|-
data|object|No comments found.|-
**Response-example:**
```
{
"code": 405,
"msg": "yyyka6",
"data": "8k2np6"
}
```
### 发起流程
**URL:** http://localhost:28080/api/one/thing/start
**Type:** POST
**Content-Type:** application/json; charset=utf-8
**Description:** 发起流程
**Body-parameters:**
Parameter | Type|Description|Required|Since
---|---|---|---|---
oneThingId|int64|No comments found.|false|-
**Request-example:**
```
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -i http://localhost:28080/api/one/thing/start --data '{
"oneThingId": 171
}'
```
**Response-fields:**
Field | Type|Description|Since
---|---|---|---
code|int32|No comments found.|-
msg|string|No comments found.|-
data|object|No comments found.|-
**Response-example:**
```
{
"code": 921,
"msg": "sm5pty",
"data": "a2h717"
}
```
## 错误码列表
Error code |Description
---|---
200|ok
400|Bad Request
401|Unauthorized
403|Forbidden
404|Not Found
415|Unsupported Media Type
500|Internal Server Error
502|Bad Gateway
503|Service Unavailable
...@@ -107,7 +107,8 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IAp ...@@ -107,7 +107,8 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IAp
ApiRespPdu<String> rsp = new ApiRespPdu<>(); ApiRespPdu<String> rsp = new ApiRespPdu<>();
rsp.setCode(YesNoEnum.YES.getValue()); rsp.setCode(YesNoEnum.YES.getValue());
try { try {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(deployId) ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(deployId)
.processDefinitionTenantId(tenantId) .processDefinitionTenantId(tenantId)
.latestVersion().singleResult(); .latestVersion().singleResult();
if (!ObjectUtils.isEmpty(processDefinition) && processDefinition.isSuspended()) { if (!ObjectUtils.isEmpty(processDefinition) && processDefinition.isSuspended()) {
...@@ -121,6 +122,7 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IAp ...@@ -121,6 +122,7 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IAp
// 设置流程发起人Id到流程中 // 设置流程发起人Id到流程中
identityService.setAuthenticatedUserId(userId); identityService.setAuthenticatedUserId(userId);
variables.put(ProcessConstants.PROCESS_INITIATOR, ""); variables.put(ProcessConstants.PROCESS_INITIATOR, "");
//variables.put(ProcessConstants.PROCESS_APPROVAL,"admin");
ProcessInstance processInstance = runtimeService.startProcessInstanceById(deployId, dataKey, variables); ProcessInstance processInstance = runtimeService.startProcessInstanceById(deployId, dataKey, variables);
// 给第一步申请人节点设置任务执行人和意见 todo:第一个节点不设置为申请人节点有点问题? // 给第一步申请人节点设置任务执行人和意见 todo:第一个节点不设置为申请人节点有点问题?
// Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); // Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<modules> <modules>
<module>government-manager</module> <module>government-manager</module>
<module>government-workflow</module> <!-- <module>government-workflow</module>-->
<!-- <module>government-flowable</module>--> <!-- <module>government-flowable</module>-->
<module>common-lib</module> <module>common-lib</module>
<!-- <module>government-gate-api</module>--> <!-- <module>government-gate-api</module>-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment