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

一件事统一办

parent c0e4f6c4
package com.mortals.xhx.common.pdu.flow;
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;
/**
* 工作流定义前端实体类
*
* @author: finegirl
* @date: 2021/7/31 23:38
*/
@Getter
@Setter
@ApiModel("工作流定义前端实体类")
public class DefinitionVoPdu implements Serializable {
@ApiModelProperty("流程定义ID")
private String deployId;
@ApiModelProperty("状态")
private Integer state;
}
package com.mortals.xhx.common.pdu.flow;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class FlowTaskNotifyPdu implements Serializable {
/**
* 用户审核列表(一个或者多个)
*/
private List<String> userNameList;
/**
* taskId
*/
private String taskId;
/**
* taskName
*/
private String taskName;
/**
* 租户Id
*/
private String tenantId;
}
package com.mortals.xhx.utils;
import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.mortals.framework.util.Base64;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;
import java.util.Random;
/**
* 二维码工具类
*
*/
public class QRCodeUtil {
@SuppressWarnings("unused")
private static Log logger = LogFactory.getLog(QRCodeUtil.class);
private static final String CHARSET = "utf-8";
private static final String FORMAT = "JPG";
// 二维码尺寸
private static final int QRCODE_SIZE = 300;
// LOGO宽度
private static final int LOGO_WIDTH = 60;
// LOGO高度
private static final int LOGO_HEIGHT = 60;
private static BufferedImage createImage(String content, String logoPath, boolean needCompress) throws Exception {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints);
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
if (logoPath == null || "".equals(logoPath)) {
return image;
}
// 插入图片
QRCodeUtil.insertImage(image, logoPath, needCompress);
return image;
}
/**
* 插入LOGO
*
* @param source
* 二维码图片
* @param logoPath
* LOGO图片地址
* @param needCompress
* 是否压缩
* @throws Exception
*/
private static void insertImage(BufferedImage source, String logoPath, boolean needCompress) throws Exception {
File file = new File(logoPath);
if (!file.exists()) {
throw new Exception("logo file not found.");
}
Image src = ImageIO.read(new File(logoPath));
int width = src.getWidth(null);
int height = src.getHeight(null);
if (needCompress) { // 压缩LOGO
if (width > LOGO_WIDTH) {
width = LOGO_WIDTH;
}
if (height > LOGO_HEIGHT) {
height = LOGO_HEIGHT;
}
Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
src = image;
}
// 插入LOGO
Graphics2D graph = source.createGraphics();
int x = (QRCODE_SIZE - width) / 2;
int y = (QRCODE_SIZE - height) / 2;
graph.drawImage(src, x, y, width, height, null);
Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
graph.setStroke(new BasicStroke(3f));
graph.draw(shape);
graph.dispose();
}
/**
* 生成二维码(内嵌LOGO) 二维码文件名随机,文件名可能会有重复
*
* @param content
* 内容
* @param logoPath
* LOGO地址
* @param destPath
* 存放目录
* @param needCompress
* 是否压缩LOGO
* @throws Exception
*/
public static String encode(String content, String logoPath, String destPath, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
mkdirs(destPath);
String fileName = new Random().nextInt(99999999) + "." + FORMAT.toLowerCase();
ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName));
return fileName;
}
/**
* 生成二维码(内嵌LOGO) 调用者指定二维码文件名
*
* @param content
* 内容
* @param logoPath
* LOGO地址
* @param destPath
* 存放目录
* @param fileName
* 二维码文件名
* @param needCompress
* 是否压缩LOGO
* @throws Exception
*/
public static String encode(String content, String logoPath, String destPath, String fileName, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
mkdirs(destPath);
fileName = fileName.substring(0, fileName.indexOf(".") > 0 ? fileName.indexOf(".") : fileName.length()) + "." + FORMAT.toLowerCase();
ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName));
return fileName;
}
/**
* 当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir. (mkdir如果父目录不存在则会抛出异常)
*
* @param destPath
* 存放目录
*/
public static void mkdirs(String destPath) {
File file = new File(destPath);
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
}
/**
* 生成二维码
*
* @param content
* 内容
* @param destPath
* 存储地址
* @throws Exception
*/
public static String encode(String content, String destPath) throws Exception {
return QRCodeUtil.encode(content, null, destPath, false);
}
/**
* 生成二维码(内嵌LOGO)
*
* @param content
* 内容
* @param logoPath
* LOGO地址
* @param output
* 输出流
* @param needCompress
* 是否压缩LOGO
* @throws Exception
*/
public static void encode(String content, String logoPath, OutputStream output, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
ImageIO.write(image, FORMAT, output);
}
/**
* 生成二维码
*
* @param content
* 内容
* @param output
* 输出流
* @throws Exception
*/
public static void encode(String content, OutputStream output) throws Exception {
QRCodeUtil.encode(content, null, output, false);
}
/**
* 将二维码转换成base64字符串
*
* @param content
* @param logoPath
* @param needCompress
* @return
* @throws Exception
*/
public static String encode(String content, String logoPath, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, FORMAT, outputStream);
return Base64.encode(outputStream.toByteArray());
}
public static byte[] encodeToBytes(String content, String logoPath, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, FORMAT, outputStream);
return outputStream.toByteArray();
}
/**
* 解析二维码
*
* @param file
* 二维码图片
* @return
* @throws Exception
*/
public static String decode(File file) throws Exception {
BufferedImage image;
image = ImageIO.read(file);
if (image == null) {
return null;
}
BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result result;
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.CHARACTER_SET, CHARSET);
result = new MultiFormatReader().decode(bitmap, hints);
String resultStr = result.getText();
return resultStr;
}
/**
* 解析二维码
*
* @param path
* 二维码图片地址
* @return
* @throws Exception
*/
public static String decode(String path) throws Exception {
return QRCodeUtil.decode(new File(path));
}
/**
* 解析二维码
*
* @param inputStream
* 二维码图片
* @return
* @throws Exception
*/
public static String decode(InputStream inputStream) throws Exception {
BufferedImage image = ImageIO.read(inputStream);
if (image == null) {
return null;
}
BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result result;
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.CHARACTER_SET, CHARSET);
result = new MultiFormatReader().decode(bitmap, hints);
String resultStr = result.getText();
return resultStr;
}
public static void main(String[] args) throws Exception {
// String text =
// "https://mp.weixin.qq.com/a/~~qgbFJlgjTPg~wAWUfsCV6ni-VdasDWFqJg~~";
// QRCodeUtil.encode(text, "", "e:\\", "qrcodeTest", true);
// System.out.println(QRCodeUtil.decode("d:\\777.png"));
System.out.println(QRCodeUtil.decode("e:\\4.png"));
// https://mp.weixin.qq.com/a/~~7e4OEtdDP-A~N-WJjuAzvca5sdEzbkQ9hA~~
// https://mp.weixin.qq.com/a/~~hopFMAkydTI~RWT6ZsVRPo0jIZzPgXGVlg~~ 2
// https://mp.weixin.qq.com/a/~~GwiYx6fLcTQ~gglQBO3FfzX6SuWe2z65rg~~ 3
// https://mp.weixin.qq.com/a/~~UjQMf5HyHLM~8SjrWsLXuc-3XtoAgFPEIw~~ 4
// System.out.println(QRCodeUtil.encode(text,null, true).length());
}
}
package com.mortals.xhx.utils.stream.messaging;
/**
* @author karlhoo
*/
public interface ProcessTaskProcessor extends ProcessTaskSink, ProcessTaskSource {
}
package com.mortals.xhx.utils.stream.messaging;
import org.springframework.cloud.stream.annotation.Input;
import org.springframework.messaging.SubscribableChannel;
/**
* @author karlhoo
*/
public interface ProcessTaskSink {
String INPUT = "process-task-input";
@Input(ProcessTaskSink.INPUT)
SubscribableChannel input();
}
package com.mortals.xhx.utils.stream.messaging;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;
/**
* @author karlhoo
*/
public interface ProcessTaskSource {
String OUTPUT = "process-task-output";
@Output(ProcessTaskSource.OUTPUT)
MessageChannel output();
}
package com.mortals.xhx.utils.stream.service;
import org.springframework.messaging.MessageChannel;
import org.springframework.validation.annotation.Validated;
/**
* 发送消息到消息中间件
*
* @author karlhoo
*/
@Validated
public interface IMessageService {
/**
* 向指定通道发送消息
*
* @param messageChannel
* @param message
* @return true: 成功
*/
boolean sendMessage( MessageChannel messageChannel, String message);
/**
* 向指定通道发送消息(带messageKey)
*
* @param messageChannel
* @param message
* @param messageKey
* @return true: 成功
*/
boolean sendMessage(MessageChannel messageChannel, String message, String messageKey);
}
package com.mortals.xhx.utils.stream.service.impl;
import com.mortals.xhx.utils.stream.service.IMessageService;
import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;
/**
* @author karlhoo
*/
@CommonsLog
@Component
public class DefaultMessageServiceImpl implements IMessageService {
@Override
public boolean sendMessage(MessageChannel messageChannel, String message) {
return sendMessage(messageChannel, message, null);
}
@Override
public boolean sendMessage(MessageChannel messageChannel, String message, String messageKey) {
return sendMessage(messageChannel, MessageBuilder.withPayload(message).setHeader(KafkaHeaders.MESSAGE_KEY, messageKey == null ? messageKey : messageKey.getBytes()).build());
}
private boolean sendMessage(MessageChannel messageChannel, Message message) {
try {
return messageChannel.send(message);
} catch (Exception e) {
log.error(String.format("提交消息出错 messageChannel: %s, message: %s", messageChannel.toString(), message.getPayload()), e);
return false;
}
}
}
package com.mortals.flowable.common.config;
import com.sun.prism.paint.Color;
import org.flowable.bpmn.model.AssociationDirection;
import org.flowable.image.impl.DefaultProcessDiagramCanvas;
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;
/**
* 自定义流程图
*
* @author: finegirl
* @date: 2021/7/31 12:06
* @description:
*/
public class MyDefaultProcessDiagramCanvas extends DefaultProcessDiagramCanvas {
//设置高亮线的颜色 这里我设置成绿色
protected static Color HIGHLIGHT_SEQUENCEFLOW_COLOR = Color.GREEN;
public MyDefaultProcessDiagramCanvas(int width, int height, int minX, int minY, String imageType, String activityFontName, String labelFontName, String annotationFontName, ClassLoader customClassLoader) {
super(width, height, minX, minY, imageType, activityFontName, labelFontName, annotationFontName, customClassLoader);
}
public MyDefaultProcessDiagramCanvas(int width, int height, int minX, int minY, String imageType) {
super(width, height, minX, minY, imageType);
}
/**
* 画线颜色设置
*/
@Override
public void drawConnection(int[] xPoints, int[] yPoints, boolean conditional, boolean isDefault, String connectionType,
AssociationDirection associationDirection, boolean highLighted, double scaleFactor) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
g.setPaint(CONNECTION_COLOR);
if (connectionType.equals("association")) {
g.setStroke(ASSOCIATION_STROKE);
} else if (highLighted) {
//设置线的颜色
g.setPaint(originalPaint);
g.setStroke(HIGHLIGHT_FLOW_STROKE);
}
for (int i = 1; i < xPoints.length; i++) {
Integer sourceX = xPoints[i - 1];
Integer sourceY = yPoints[i - 1];
Integer targetX = xPoints[i];
Integer targetY = yPoints[i];
Line2D.Double line = new Line2D.Double(sourceX, sourceY, targetX, targetY);
g.draw(line);
}
if (isDefault) {
Line2D.Double line = new Line2D.Double(xPoints[0], yPoints[0], xPoints[1], yPoints[1]);
drawDefaultSequenceFlowIndicator(line, scaleFactor);
}
if (conditional) {
Line2D.Double line = new Line2D.Double(xPoints[0], yPoints[0], xPoints[1], yPoints[1]);
drawConditionalSequenceFlowIndicator(line, scaleFactor);
}
if (associationDirection == AssociationDirection.ONE || associationDirection == AssociationDirection.BOTH) {
Line2D.Double line = new Line2D.Double(xPoints[xPoints.length - 2], yPoints[xPoints.length - 2], xPoints[xPoints.length - 1], yPoints[xPoints.length - 1]);
drawArrowHead(line, scaleFactor);
}
if (associationDirection == AssociationDirection.BOTH) {
Line2D.Double line = new Line2D.Double(xPoints[1], yPoints[1], xPoints[0], yPoints[0]);
drawArrowHead(line, scaleFactor);
}
g.setPaint(originalPaint);
g.setStroke(originalStroke);
}
/**
* 高亮节点设置
*/
@Override
public void drawHighLight(int x, int y, int width, int height) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
//设置高亮节点的颜色
g.setPaint(HIGHLIGHT_COLOR);
g.setStroke(THICK_TASK_BORDER_STROKE);
RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, height, 20, 20);
g.draw(rect);
g.setPaint(originalPaint);
g.setStroke(originalStroke);
}
}
package com.mortals.flowable.common.constant;
/**
* 流程常量信息
*
* @author: finegirl
* @date: 2021/7/31 12:04
* @description:
*/
public class ProcessConstants {
/**
* 动态数据
*/
public static final String DATA_TYPE = "dynamic";
/**
* 单个审批人
*/
public static final String USER_TYPE_ASSIGNEE = "assignee";
/**
* 候选人
*/
public static final String USER_TYPE_USERS = "candidateUsers";
/**
* 审批组
*/
public static final String USER_TYPE_ROUPS = "candidateGroups";
/**
* 单个审批人
*/
public static final String PROCESS_APPROVAL = "approval";
/**
* 会签人员
*/
public static final String PROCESS_MULTI_INSTANCE_USER = "userList";
/**
* nameapace
*/
public static final String NAMASPASE = "http://flowable.org/bpmn";
/**
* 会签节点
*/
public static final String PROCESS_MULTI_INSTANCE = "multiInstance";
/**
* 自定义属性 dataType
*/
public static final String PROCESS_CUSTOM_DATA_TYPE = "dataType";
/**
* 自定义属性 userType
*/
public static final String PROCESS_CUSTOM_USER_TYPE = "userType";
/**
* 初始化人员
*/
public static final String PROCESS_INITIATOR = "INITIATOR";
/**
* 流程跳过
*/
public static final String FLOWABLE_SKIP_EXPRESSION_ENABLED = "_FLOWABLE_SKIP_EXPRESSION_ENABLED";
}
package com.mortals.flowable.common.enums;
/**
* 流程意见类型
*
* @author: finegirl
* @date: 2021/7/31 12:05
* @description:
*/
public enum FlowComment {
/**
* 说明
*/
NORMAL("1", "正常意见"),
REBACK("2", "退回意见"),
REJECT("3", "驳回意见"),
DELEGATE("4", "委派意见"),
ASSIGN("5", "转办意见"),
STOP("6", "终止流程");
/**
* 类型
*/
private final String type;
/**
* 说明
*/
private final String remark;
FlowComment(String type, String remark) {
this.type = type;
this.remark = remark;
}
public String getType() {
return type;
}
public String getRemark() {
return remark;
}
}
package com.mortals.flowable.factory;
import lombok.Getter;
import org.flowable.engine.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* flowable 引擎注入封装
*
* @author: finegirl
* @date: 2021/7/31 12:20
*/
@Component
@Getter
public class FlowServiceFactory {
@Resource
protected RepositoryService repositoryService;
@Resource
protected RuntimeService runtimeService;
@Resource
protected IdentityService identityService;
@Resource
protected TaskService taskService;
@Resource
protected FormService formService;
@Resource
protected HistoryService historyService;
@Resource
protected ManagementService managementService;
@Qualifier("processEngine")
@Resource
protected ProcessEngine processEngine;
}
package com.mortals.flowable.flow;
import org.flowable.bpmn.model.AssociationDirection;
import org.flowable.bpmn.model.GraphicInfo;
import org.flowable.image.impl.DefaultProcessDiagramCanvas;
import org.flowable.image.util.ReflectUtil;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.LineBreakMeasurer;
import java.awt.font.TextAttribute;
import java.awt.font.TextLayout;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.text.AttributedCharacterIterator;
import java.text.AttributedString;
/**
* 自定义流程
*
* @author: finegirl
* @date: 2021/7/31 14:40
*/
public class CustomProcessDiagramCanvas extends DefaultProcessDiagramCanvas {
//定义走过流程连线颜色为绿色
protected static Color HIGHLIGHT_SequenceFlow_COLOR = Color.GREEN;
//设置未走过流程的连接线颜色
protected static Color CONNECTION_COLOR = Color.BLACK;
//设置flows连接线字体颜色red
protected static Color LABEL_COLOR = new Color(0, 0, 0);
//高亮显示task框颜色
protected static Color HIGHLIGHT_COLOR = Color.GREEN;
protected static Color HIGHLIGHT_COLOR1 = Color.RED;
public CustomProcessDiagramCanvas(int width, int height, int minX, int minY, String imageType, String activityFontName, String labelFontName, String annotationFontName, ClassLoader customClassLoader) {
super(width, height, minX, minY, imageType, activityFontName, labelFontName, annotationFontName, customClassLoader);
this.initialize(imageType);
}
/**
* 重写绘制连线的方式,设置绘制颜色
* @param xPoints
* @param yPoints
* @param conditional
* @param isDefault
* @param connectionType
* @param associationDirection
* @param highLighted
* @param scaleFactor
*/
@Override
public void drawConnection(int[] xPoints, int[] yPoints, boolean conditional, boolean isDefault, String connectionType, AssociationDirection associationDirection, boolean highLighted, double scaleFactor) {
Paint originalPaint = this.g.getPaint();
Stroke originalStroke = this.g.getStroke();
this.g.setPaint(CONNECTION_COLOR);
if (connectionType.equals("association")) {
this.g.setStroke(ASSOCIATION_STROKE);
} else if (highLighted) {
this.g.setPaint(HIGHLIGHT_SequenceFlow_COLOR);
this.g.setStroke(HIGHLIGHT_FLOW_STROKE);
}
for (int i = 1; i < xPoints.length; ++i) {
Integer sourceX = xPoints[i - 1];
Integer sourceY = yPoints[i - 1];
Integer targetX = xPoints[i];
Integer targetY = yPoints[i];
java.awt.geom.Line2D.Double line = new java.awt.geom.Line2D.Double((double) sourceX, (double) sourceY, (double) targetX, (double) targetY);
this.g.draw(line);
}
java.awt.geom.Line2D.Double line;
if (isDefault) {
line = new java.awt.geom.Line2D.Double((double) xPoints[0], (double) yPoints[0], (double) xPoints[1], (double) yPoints[1]);
this.drawDefaultSequenceFlowIndicator(line, scaleFactor);
}
if (conditional) {
line = new java.awt.geom.Line2D.Double((double) xPoints[0], (double) yPoints[0], (double) xPoints[1], (double) yPoints[1]);
this.drawConditionalSequenceFlowIndicator(line, scaleFactor);
}
if (associationDirection.equals(AssociationDirection.ONE) || associationDirection.equals(AssociationDirection.BOTH)) {
line = new java.awt.geom.Line2D.Double((double) xPoints[xPoints.length - 2], (double) yPoints[xPoints.length - 2], (double) xPoints[xPoints.length - 1], (double) yPoints[xPoints.length - 1]);
this.drawArrowHead(line, scaleFactor);
}
if (associationDirection.equals(AssociationDirection.BOTH)) {
line = new java.awt.geom.Line2D.Double((double) xPoints[1], (double) yPoints[1], (double) xPoints[0], (double) yPoints[0]);
this.drawArrowHead(line, scaleFactor);
}
this.g.setPaint(originalPaint);
this.g.setStroke(originalStroke);
}
/**
* 设置字体大小图标颜色
* @param imageType
*/
@Override
public void initialize(String imageType) {
if ("png".equalsIgnoreCase(imageType)) {
this.processDiagram = new BufferedImage(this.canvasWidth, this.canvasHeight, 2);
} else {
this.processDiagram = new BufferedImage(this.canvasWidth, this.canvasHeight, 1);
}
this.g = this.processDiagram.createGraphics();
if (!"png".equalsIgnoreCase(imageType)) {
this.g.setBackground(new Color(255, 255, 255, 0));
this.g.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
}
this.g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//修改图标颜色,修改图标字体大小
this.g.setPaint(Color.black);
Font font = new Font(this.activityFontName, 10, 14);
this.g.setFont(font);
this.fontMetrics = this.g.getFontMetrics();
//修改连接线字体大小
LABEL_FONT = new Font(this.labelFontName, 10, 15);
ANNOTATION_FONT = new Font(this.annotationFontName, 0, 11);
try {
USERTASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/userTask.png", this.customClassLoader));
SCRIPTTASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/scriptTask.png", this.customClassLoader));
SERVICETASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/serviceTask.png", this.customClassLoader));
RECEIVETASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/receiveTask.png", this.customClassLoader));
SENDTASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/sendTask.png", this.customClassLoader));
MANUALTASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/manualTask.png", this.customClassLoader));
BUSINESS_RULE_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/businessRuleTask.png", this.customClassLoader));
SHELL_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/shellTask.png", this.customClassLoader));
DMN_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/dmnTask.png", this.customClassLoader));
CAMEL_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/camelTask.png", this.customClassLoader));
MULE_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/muleTask.png", this.customClassLoader));
HTTP_TASK_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/httpTask.png", this.customClassLoader));
TIMER_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/timer.png", this.customClassLoader));
COMPENSATE_THROW_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/compensate-throw.png", this.customClassLoader));
COMPENSATE_CATCH_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/compensate.png", this.customClassLoader));
ERROR_THROW_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/error-throw.png", this.customClassLoader));
ERROR_CATCH_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/error.png", this.customClassLoader));
MESSAGE_THROW_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/message-throw.png", this.customClassLoader));
MESSAGE_CATCH_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/message.png", this.customClassLoader));
SIGNAL_THROW_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/signal-throw.png", this.customClassLoader));
SIGNAL_CATCH_IMAGE = ImageIO.read(ReflectUtil.getResource("org/flowable/icons/signal.png", this.customClassLoader));
} catch (IOException var4) {
LOGGER.warn("Could not load image for process diagram creation: {}", var4.getMessage());
}
}
/**
* 设置连接线字体
* @param text
* @param graphicInfo
* @param centered
*/
@Override
public void drawLabel(String text, GraphicInfo graphicInfo, boolean centered) {
float interline = 1.0f;
// text
if (text != null && text.length() > 0) {
Paint originalPaint = g.getPaint();
Font originalFont = g.getFont();
g.setPaint(LABEL_COLOR);
g.setFont(LABEL_FONT);
int wrapWidth = 100;
int textY = (int) graphicInfo.getY();
// TODO: use drawMultilineText()
AttributedString as = new AttributedString(text);
as.addAttribute(TextAttribute.FOREGROUND, g.getPaint());
as.addAttribute(TextAttribute.FONT, g.getFont());
AttributedCharacterIterator aci = as.getIterator();
FontRenderContext frc = new FontRenderContext(null, true, false);
LineBreakMeasurer lbm = new LineBreakMeasurer(aci, frc);
while (lbm.getPosition() < text.length()) {
TextLayout tl = lbm.nextLayout(wrapWidth);
textY += tl.getAscent();
Rectangle2D bb = tl.getBounds();
double tX = graphicInfo.getX();
if (centered) {
tX += (int) (graphicInfo.getWidth() / 2 - bb.getWidth() / 2);
}
tl.draw(g, (float) tX, textY);
textY += tl.getDescent() + tl.getLeading() + (interline - 1.0f) * tl.getAscent();
}
// restore originals
g.setFont(originalFont);
g.setPaint(originalPaint);
}
}
/**
* 高亮显示task框完成的
* @param x
* @param y
* @param width
* @param height
*/
@Override
public void drawHighLight(int x, int y, int width, int height) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
g.setPaint(HIGHLIGHT_COLOR);
g.setStroke(THICK_TASK_BORDER_STROKE);
RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, height, 20, 20);
g.draw(rect);
g.setPaint(originalPaint);
g.setStroke(originalStroke);
}
/**
* 自定义task框当前的位置
* @param x
* @param y
* @param width
* @param height
*/
public void drawHighLightNow(int x, int y, int width, int height) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
g.setPaint(HIGHLIGHT_COLOR1);
g.setStroke(THICK_TASK_BORDER_STROKE);
RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, height, 20, 20);
g.draw(rect);
g.setPaint(originalPaint);
g.setStroke(originalStroke);
}
/**
* 自定义结束节点
* @param x
* @param y
* @param width
* @param height
*/
public void drawHighLightEnd(int x, int y, int width, int height) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
g.setPaint(HIGHLIGHT_COLOR);
g.setStroke(THICK_TASK_BORDER_STROKE);
RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, height, 20, 20);
g.draw(rect);
g.setPaint(originalPaint);
g.setStroke(originalStroke);
}
/**
* task框自定义文字
* @param name
* @param graphicInfo
* @param thickBorder
* @param scaleFactor
*/
@Override
protected void drawTask(String name, GraphicInfo graphicInfo, boolean thickBorder, double scaleFactor) {
Paint originalPaint = g.getPaint();
int x = (int) graphicInfo.getX();
int y = (int) graphicInfo.getY();
int width = (int) graphicInfo.getWidth();
int height = (int) graphicInfo.getHeight();
// Create a new gradient paint for every task box, gradient depends on x and y and is not relative
g.setPaint(TASK_BOX_COLOR);
int arcR = 6;
if (thickBorder) {
arcR = 3;
}
// shape
RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, height, arcR, arcR);
g.fill(rect);
g.setPaint(TASK_BORDER_COLOR);
if (thickBorder) {
Stroke originalStroke = g.getStroke();
g.setStroke(THICK_TASK_BORDER_STROKE);
g.draw(rect);
g.setStroke(originalStroke);
} else {
g.draw(rect);
}
g.setPaint(originalPaint);
// text
if (scaleFactor == 1.0 && name != null && name.length() > 0) {
int boxWidth = width - (2 * TEXT_PADDING);
int boxHeight = height - 16 - ICON_PADDING - ICON_PADDING - MARKER_WIDTH - 2 - 2;
int boxX = x + width / 2 - boxWidth / 2;
int boxY = y + height / 2 - boxHeight / 2 + ICON_PADDING + ICON_PADDING - 2 - 2;
drawMultilineCentredText(name, boxX, boxY, boxWidth, boxHeight);
}
}
protected static Color EVENT_COLOR = new Color(255, 255, 255);
/**
* 重写开始事件
* @param graphicInfo
* @param image
* @param scaleFactor
*/
@Override
public void drawStartEvent(GraphicInfo graphicInfo, BufferedImage image, double scaleFactor) {
Paint originalPaint = g.getPaint();
g.setPaint(EVENT_COLOR);
Ellipse2D circle = new Ellipse2D.Double(graphicInfo.getX(), graphicInfo.getY(),
graphicInfo.getWidth(), graphicInfo.getHeight());
g.fill(circle);
g.setPaint(EVENT_BORDER_COLOR);
g.draw(circle);
g.setPaint(originalPaint);
if (image != null) {
// calculate coordinates to center image
int imageX = (int) Math.round(graphicInfo.getX() + (graphicInfo.getWidth() / 2) - (image.getWidth() / (2 * scaleFactor)));
int imageY = (int) Math.round(graphicInfo.getY() + (graphicInfo.getHeight() / 2) - (image.getHeight() / (2 * scaleFactor)));
g.drawImage(image, imageX, imageY,
(int) (image.getWidth() / scaleFactor), (int) (image.getHeight() / scaleFactor), null);
}
}
/**
* 重写结束事件
* @param graphicInfo
* @param scaleFactor
*/
@Override
public void drawNoneEndEvent(GraphicInfo graphicInfo, double scaleFactor) {
Paint originalPaint = g.getPaint();
Stroke originalStroke = g.getStroke();
g.setPaint(EVENT_COLOR);
Ellipse2D circle = new Ellipse2D.Double(graphicInfo.getX(), graphicInfo.getY(),
graphicInfo.getWidth(), graphicInfo.getHeight());
g.fill(circle);
g.setPaint(EVENT_BORDER_COLOR);
// g.setPaint(HIGHLIGHT_COLOR);
if (scaleFactor == 1.0) {
g.setStroke(END_EVENT_STROKE);
} else {
g.setStroke(new BasicStroke(2.0f));
}
g.draw(circle);
g.setStroke(originalStroke);
g.setPaint(originalPaint);
}
}
package com.mortals.flowable.flow;
import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
import org.flowable.image.impl.DefaultProcessDiagramCanvas;
import org.flowable.image.impl.DefaultProcessDiagramGenerator;
import java.util.Iterator;
import java.util.List;
/**
* 自定义流程生成器
*
* @author: finegirl
* @date: 2021/7/31 14:41
*/
public class CustomProcessDiagramGenerator extends DefaultProcessDiagramGenerator {
@Override
protected DefaultProcessDiagramCanvas generateProcessDiagram(BpmnModel bpmnModel, String imageType, List<String> highLightedActivities, List<String> highLightedFlows, String activityFontName, String labelFontName, String annotationFontName, ClassLoader customClassLoader, double scaleFactor, boolean drawSequenceFlowNameWithNoLabelDI) {
this.prepareBpmnModel(bpmnModel);
DefaultProcessDiagramCanvas processDiagramCanvas = initProcessDiagramCanvas(bpmnModel, imageType, activityFontName, labelFontName, annotationFontName, customClassLoader);
Iterator var13 = bpmnModel.getPools().iterator();
while (var13.hasNext()) {
Pool process = (Pool) var13.next();
GraphicInfo subProcesses = bpmnModel.getGraphicInfo(process.getId());
processDiagramCanvas.drawPoolOrLane(process.getName(), subProcesses, scaleFactor);
}
var13 = bpmnModel.getProcesses().iterator();
Process process1;
Iterator subProcesses1;
while (var13.hasNext()) {
process1 = (Process) var13.next();
subProcesses1 = process1.getLanes().iterator();
while (subProcesses1.hasNext()) {
Lane artifact = (Lane) subProcesses1.next();
GraphicInfo subProcess = bpmnModel.getGraphicInfo(artifact.getId());
processDiagramCanvas.drawPoolOrLane(artifact.getName(), subProcess, scaleFactor);
}
}
var13 = bpmnModel.getProcesses().iterator();
while (var13.hasNext()) {
process1 = (Process) var13.next();
subProcesses1 = process1.findFlowElementsOfType(FlowNode.class).iterator();
while (subProcesses1.hasNext()) {
FlowNode artifact1 = (FlowNode) subProcesses1.next();
if (!this.isPartOfCollapsedSubProcess(artifact1, bpmnModel)) {
this.drawActivity(processDiagramCanvas, bpmnModel, artifact1, highLightedActivities, highLightedFlows, scaleFactor, Boolean.valueOf(drawSequenceFlowNameWithNoLabelDI));
}
}
}
var13 = bpmnModel.getProcesses().iterator();
label75:
while (true) {
List subProcesses2;
do {
if (!var13.hasNext()) {
return processDiagramCanvas;
}
process1 = (Process) var13.next();
subProcesses1 = process1.getArtifacts().iterator();
while (subProcesses1.hasNext()) {
Artifact artifact2 = (Artifact) subProcesses1.next();
this.drawArtifact(processDiagramCanvas, bpmnModel, artifact2);
}
subProcesses2 = process1.findFlowElementsOfType(SubProcess.class, true);
} while (subProcesses2 == null);
Iterator artifact3 = subProcesses2.iterator();
while (true) {
GraphicInfo graphicInfo;
SubProcess subProcess1;
do {
do {
if (!artifact3.hasNext()) {
continue label75;
}
subProcess1 = (SubProcess) artifact3.next();
graphicInfo = bpmnModel.getGraphicInfo(subProcess1.getId());
} while (graphicInfo != null && graphicInfo.getExpanded() != null && !graphicInfo.getExpanded().booleanValue());
} while (this.isPartOfCollapsedSubProcess(subProcess1, bpmnModel));
Iterator var19 = subProcess1.getArtifacts().iterator();
while (var19.hasNext()) {
Artifact subProcessArtifact = (Artifact) var19.next();
this.drawArtifact(processDiagramCanvas, bpmnModel, subProcessArtifact);
}
}
}
}
protected static DefaultProcessDiagramCanvas initProcessDiagramCanvas(BpmnModel bpmnModel, String imageType, String activityFontName, String labelFontName, String annotationFontName, ClassLoader customClassLoader) {
double minX = 1.7976931348623157E308D;
double maxX = 0.0D;
double minY = 1.7976931348623157E308D;
double maxY = 0.0D;
GraphicInfo nrOfLanes;
for (Iterator flowNodes = bpmnModel.getPools().iterator(); flowNodes.hasNext(); maxY = nrOfLanes.getY() + nrOfLanes.getHeight()) {
Pool artifacts = (Pool) flowNodes.next();
nrOfLanes = bpmnModel.getGraphicInfo(artifacts.getId());
minX = nrOfLanes.getX();
maxX = nrOfLanes.getX() + nrOfLanes.getWidth();
minY = nrOfLanes.getY();
}
List var23 = gatherAllFlowNodes(bpmnModel);
Iterator var24 = var23.iterator();
label155:
while (var24.hasNext()) {
FlowNode var26 = (FlowNode) var24.next();
GraphicInfo artifact = bpmnModel.getGraphicInfo(var26.getId());
if (artifact.getX() + artifact.getWidth() > maxX) {
maxX = artifact.getX() + artifact.getWidth();
}
if (artifact.getX() < minX) {
minX = artifact.getX();
}
if (artifact.getY() + artifact.getHeight() > maxY) {
maxY = artifact.getY() + artifact.getHeight();
}
if (artifact.getY() < minY) {
minY = artifact.getY();
}
Iterator process = var26.getOutgoingFlows().iterator();
while (true) {
List l;
do {
if (!process.hasNext()) {
continue label155;
}
SequenceFlow graphicInfoList = (SequenceFlow) process.next();
l = bpmnModel.getFlowLocationGraphicInfo(graphicInfoList.getId());
} while (l == null);
Iterator graphicInfo = l.iterator();
while (graphicInfo.hasNext()) {
GraphicInfo graphicInfo1 = (GraphicInfo) graphicInfo.next();
if (graphicInfo1.getX() > maxX) {
maxX = graphicInfo1.getX();
}
if (graphicInfo1.getX() < minX) {
minX = graphicInfo1.getX();
}
if (graphicInfo1.getY() > maxY) {
maxY = graphicInfo1.getY();
}
if (graphicInfo1.getY() < minY) {
minY = graphicInfo1.getY();
}
}
}
}
List var25 = gatherAllArtifacts(bpmnModel);
Iterator var27 = var25.iterator();
GraphicInfo var37;
while (var27.hasNext()) {
Artifact var29 = (Artifact) var27.next();
GraphicInfo var31 = bpmnModel.getGraphicInfo(var29.getId());
if (var31 != null) {
if (var31.getX() + var31.getWidth() > maxX) {
maxX = var31.getX() + var31.getWidth();
}
if (var31.getX() < minX) {
minX = var31.getX();
}
if (var31.getY() + var31.getHeight() > maxY) {
maxY = var31.getY() + var31.getHeight();
}
if (var31.getY() < minY) {
minY = var31.getY();
}
}
List var33 = bpmnModel.getFlowLocationGraphicInfo(var29.getId());
if (var33 != null) {
Iterator var35 = var33.iterator();
while (var35.hasNext()) {
var37 = (GraphicInfo) var35.next();
if (var37.getX() > maxX) {
maxX = var37.getX();
}
if (var37.getX() < minX) {
minX = var37.getX();
}
if (var37.getY() > maxY) {
maxY = var37.getY();
}
if (var37.getY() < minY) {
minY = var37.getY();
}
}
}
}
int var28 = 0;
Iterator var30 = bpmnModel.getProcesses().iterator();
while (var30.hasNext()) {
Process var32 = (Process) var30.next();
Iterator var34 = var32.getLanes().iterator();
while (var34.hasNext()) {
Lane var36 = (Lane) var34.next();
++var28;
var37 = bpmnModel.getGraphicInfo(var36.getId());
if (var37.getX() + var37.getWidth() > maxX) {
maxX = var37.getX() + var37.getWidth();
}
if (var37.getX() < minX) {
minX = var37.getX();
}
if (var37.getY() + var37.getHeight() > maxY) {
maxY = var37.getY() + var37.getHeight();
}
if (var37.getY() < minY) {
minY = var37.getY();
}
}
}
if (var23.isEmpty() && bpmnModel.getPools().isEmpty() && var28 == 0) {
minX = 0.0D;
minY = 0.0D;
}
return new CustomProcessDiagramCanvas((int) maxX + 10, (int) maxY + 10, (int) minX, (int) minY, imageType, activityFontName, labelFontName, annotationFontName, customClassLoader);
}
private static void drawHighLight(DefaultProcessDiagramCanvas processDiagramCanvas, GraphicInfo graphicInfo) {
processDiagramCanvas.drawHighLight((int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight());
}
private static void drawHighLightNow(CustomProcessDiagramCanvas processDiagramCanvas, GraphicInfo graphicInfo) {
processDiagramCanvas.drawHighLightNow((int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight());
}
private static void drawHighLightEnd(CustomProcessDiagramCanvas processDiagramCanvas, GraphicInfo graphicInfo) {
processDiagramCanvas.drawHighLightEnd((int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight());
}
@Override
protected void drawActivity(DefaultProcessDiagramCanvas processDiagramCanvas, BpmnModel bpmnModel,
FlowNode flowNode, List<String> highLightedActivities, List<String> highLightedFlows, double scaleFactor, Boolean drawSequenceFlowNameWithNoLabelDI) {
ActivityDrawInstruction drawInstruction = activityDrawInstructions.get(flowNode.getClass());
if (drawInstruction != null) {
drawInstruction.draw(processDiagramCanvas, bpmnModel, flowNode);
// Gather info on the multi instance marker
boolean multiInstanceSequential = false;
boolean multiInstanceParallel = false;
boolean collapsed = false;
if (flowNode instanceof Activity) {
Activity activity = (Activity) flowNode;
MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = activity.getLoopCharacteristics();
if (multiInstanceLoopCharacteristics != null) {
multiInstanceSequential = multiInstanceLoopCharacteristics.isSequential();
multiInstanceParallel = !multiInstanceSequential;
}
}
// Gather info on the collapsed marker
GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowNode.getId());
if (flowNode instanceof SubProcess) {
collapsed = graphicInfo.getExpanded() != null && !graphicInfo.getExpanded();
} else if (flowNode instanceof CallActivity) {
collapsed = true;
}
if (scaleFactor == 1.0) {
// Actually draw the markers
processDiagramCanvas.drawActivityMarkers((int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight(),
multiInstanceSequential, multiInstanceParallel, collapsed);
}
// Draw highlighted activities
if (highLightedActivities.contains(flowNode.getId())) {
if (highLightedActivities.get(highLightedActivities.size() - 1).equals(flowNode.getId())
&& !"endenv".equals(flowNode.getId())) {
if ((flowNode.getId().contains("Event_"))) {
drawHighLightEnd((CustomProcessDiagramCanvas) processDiagramCanvas, bpmnModel.getGraphicInfo(flowNode.getId()));
} else {
drawHighLightNow((CustomProcessDiagramCanvas) processDiagramCanvas, bpmnModel.getGraphicInfo(flowNode.getId()));
}
} else {
drawHighLight(processDiagramCanvas, bpmnModel.getGraphicInfo(flowNode.getId()));
}
}
}
// Outgoing transitions of activity
for (SequenceFlow sequenceFlow : flowNode.getOutgoingFlows()) {
boolean highLighted = (highLightedFlows.contains(sequenceFlow.getId()));
String defaultFlow = null;
if (flowNode instanceof Activity) {
defaultFlow = ((Activity) flowNode).getDefaultFlow();
} else if (flowNode instanceof Gateway) {
defaultFlow = ((Gateway) flowNode).getDefaultFlow();
}
boolean isDefault = false;
if (defaultFlow != null && defaultFlow.equalsIgnoreCase(sequenceFlow.getId())) {
isDefault = true;
}
boolean drawConditionalIndicator = sequenceFlow.getConditionExpression() != null && !(flowNode instanceof Gateway);
String sourceRef = sequenceFlow.getSourceRef();
String targetRef = sequenceFlow.getTargetRef();
FlowElement sourceElement = bpmnModel.getFlowElement(sourceRef);
FlowElement targetElement = bpmnModel.getFlowElement(targetRef);
List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
if (graphicInfoList != null && graphicInfoList.size() > 0) {
graphicInfoList = connectionPerfectionizer(processDiagramCanvas, bpmnModel, sourceElement, targetElement, graphicInfoList);
int xPoints[] = new int[graphicInfoList.size()];
int yPoints[] = new int[graphicInfoList.size()];
for (int i = 1; i < graphicInfoList.size(); i++) {
GraphicInfo graphicInfo = graphicInfoList.get(i);
GraphicInfo previousGraphicInfo = graphicInfoList.get(i - 1);
if (i == 1) {
xPoints[0] = (int) previousGraphicInfo.getX();
yPoints[0] = (int) previousGraphicInfo.getY();
}
xPoints[i] = (int) graphicInfo.getX();
yPoints[i] = (int) graphicInfo.getY();
}
processDiagramCanvas.drawSequenceflow(xPoints, yPoints, drawConditionalIndicator, isDefault, highLighted, scaleFactor);
// Draw sequenceflow label
GraphicInfo labelGraphicInfo = bpmnModel.getLabelGraphicInfo(sequenceFlow.getId());
if (labelGraphicInfo != null) {
processDiagramCanvas.drawLabel(sequenceFlow.getName(), labelGraphicInfo, false);
} else {
if (drawSequenceFlowNameWithNoLabelDI) {
GraphicInfo lineCenter = getLineCenter(graphicInfoList);
processDiagramCanvas.drawLabel(sequenceFlow.getName(), lineCenter, false);
}
}
}
}
// Nested elements
if (flowNode instanceof FlowElementsContainer) {
for (FlowElement nestedFlowElement : ((FlowElementsContainer) flowNode).getFlowElements()) {
if (nestedFlowElement instanceof FlowNode && !isPartOfCollapsedSubProcess(nestedFlowElement, bpmnModel)) {
drawActivity(processDiagramCanvas, bpmnModel, (FlowNode) nestedFlowElement,
highLightedActivities, highLightedFlows, scaleFactor, drawSequenceFlowNameWithNoLabelDI);
}
}
}
}
}
package com.mortals.flowable.flow;
import com.greenpineyu.fel.FelEngine;
import com.greenpineyu.fel.FelEngineImpl;
import com.greenpineyu.fel.context.FelContext;
import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.ProcessDefinition;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class FindNextNodeUtil {
/**
* 获取下一步骤的用户任务
*
* @param repositoryService
* @param map
* @return
*/
public static List<UserTask> getNextUserTasks(RepositoryService repositoryService, org.flowable.task.api.Task task, Map<String, Object> map) {
List<UserTask> data = new ArrayList<>();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
Process mainProcess = bpmnModel.getMainProcess();
Collection<FlowElement> flowElements = mainProcess.getFlowElements();
String key = task.getTaskDefinitionKey();
FlowElement flowElement = bpmnModel.getFlowElement(key);
next(flowElements, flowElement, map, data);
return data;
}
public static void next(Collection<FlowElement> flowElements, FlowElement flowElement, Map<String, Object> map, List<UserTask> nextUser) {
//如果是结束节点
if (flowElement instanceof EndEvent) {
//如果是子任务的结束节点
if (getSubProcess(flowElements, flowElement) != null) {
flowElement = getSubProcess(flowElements, flowElement);
}
}
//获取Task的出线信息--可以拥有多个
List<SequenceFlow> outGoingFlows = null;
if (flowElement instanceof Task) {
outGoingFlows = ((Task) flowElement).getOutgoingFlows();
} else if (flowElement instanceof Gateway) {
outGoingFlows = ((Gateway) flowElement).getOutgoingFlows();
} else if (flowElement instanceof StartEvent) {
outGoingFlows = ((StartEvent) flowElement).getOutgoingFlows();
} else if (flowElement instanceof SubProcess) {
outGoingFlows = ((SubProcess) flowElement).getOutgoingFlows();
} else if (flowElement instanceof CallActivity) {
outGoingFlows = ((CallActivity) flowElement).getOutgoingFlows();
}
if (outGoingFlows != null && outGoingFlows.size() > 0) {
//遍历所有的出线--找到可以正确执行的那一条
for (SequenceFlow sequenceFlow : outGoingFlows) {
//1.有表达式,且为true
//2.无表达式
String expression = sequenceFlow.getConditionExpression();
if (expression == null ||
Boolean.parseBoolean(
String.valueOf(
result(map, expression.substring(expression.lastIndexOf("{") + 1, expression.lastIndexOf("}")))))) {
//出线的下一节点
String nextFlowElementID = sequenceFlow.getTargetRef();
if (checkSubProcess(nextFlowElementID, flowElements, nextUser)) {
continue;
}
//查询下一节点的信息
FlowElement nextFlowElement = getFlowElementById(nextFlowElementID, flowElements);
//调用流程
if (nextFlowElement instanceof CallActivity) {
CallActivity ca = (CallActivity) nextFlowElement;
if (ca.getLoopCharacteristics() != null) {
UserTask userTask = new UserTask();
userTask.setId(ca.getId());
userTask.setId(ca.getId());
userTask.setLoopCharacteristics(ca.getLoopCharacteristics());
userTask.setName(ca.getName());
nextUser.add(userTask);
}
next(flowElements, nextFlowElement, map, nextUser);
}
//用户任务
if (nextFlowElement instanceof UserTask) {
nextUser.add((UserTask) nextFlowElement);
}
//排他网关
else if (nextFlowElement instanceof ExclusiveGateway) {
next(flowElements, nextFlowElement, map, nextUser);
}
//并行网关
else if (nextFlowElement instanceof ParallelGateway) {
next(flowElements, nextFlowElement, map, nextUser);
}
//接收任务
else if (nextFlowElement instanceof ReceiveTask) {
next(flowElements, nextFlowElement, map, nextUser);
}
//服务任务
else if (nextFlowElement instanceof ServiceTask) {
next(flowElements, nextFlowElement, map, nextUser);
}
//子任务的起点
else if (nextFlowElement instanceof StartEvent) {
next(flowElements, nextFlowElement, map, nextUser);
}
//结束节点
else if (nextFlowElement instanceof EndEvent) {
next(flowElements, nextFlowElement, map, nextUser);
}
}
}
}
}
/**
* 判断是否是多实例子流程并且需要设置集合类型变量
*/
public static boolean checkSubProcess(String Id, Collection<FlowElement> flowElements, List<UserTask> nextUser) {
for (FlowElement flowElement1 : flowElements) {
if (flowElement1 instanceof SubProcess && flowElement1.getId().equals(Id)) {
SubProcess sp = (SubProcess) flowElement1;
if (sp.getLoopCharacteristics() != null) {
String inputDataItem = sp.getLoopCharacteristics().getInputDataItem();
UserTask userTask = new UserTask();
userTask.setId(sp.getId());
userTask.setLoopCharacteristics(sp.getLoopCharacteristics());
userTask.setName(sp.getName());
nextUser.add(userTask);
return true;
}
}
}
return false;
}
/**
* 查询一个节点的是否子任务中的节点,如果是,返回子任务
*
* @param flowElements 全流程的节点集合
* @param flowElement 当前节点
* @return
*/
public static FlowElement getSubProcess(Collection<FlowElement> flowElements, FlowElement flowElement) {
for (FlowElement flowElement1 : flowElements) {
if (flowElement1 instanceof SubProcess) {
for (FlowElement flowElement2 : ((SubProcess) flowElement1).getFlowElements()) {
if (flowElement.equals(flowElement2)) {
return flowElement1;
}
}
}
}
return null;
}
/**
* 根据ID查询流程节点对象, 如果是子任务,则返回子任务的开始节点
*
* @param Id 节点ID
* @param flowElements 流程节点集合
* @return
*/
public static FlowElement getFlowElementById(String Id, Collection<FlowElement> flowElements) {
for (FlowElement flowElement : flowElements) {
if (flowElement.getId().equals(Id)) {
//如果是子任务,则查询出子任务的开始节点
if (flowElement instanceof SubProcess) {
return getStartFlowElement(((SubProcess) flowElement).getFlowElements());
}
return flowElement;
}
if (flowElement instanceof SubProcess) {
FlowElement flowElement1 = getFlowElementById(Id, ((SubProcess) flowElement).getFlowElements());
if (flowElement1 != null) {
return flowElement1;
}
}
}
return null;
}
/**
* 返回流程的开始节点
*
* @param flowElements 节点集合
* @description:
*/
public static FlowElement getStartFlowElement(Collection<FlowElement> flowElements) {
for (FlowElement flowElement : flowElements) {
if (flowElement instanceof StartEvent) {
return flowElement;
}
}
return null;
}
/**
* 校验el表达示例
*
* @param map
* @param expression
* @return
*/
public static Object result(Map<String, Object> map, String expression) {
FelEngine fel = new FelEngineImpl();
FelContext ctx = fel.getContext();
for (Map.Entry<String, Object> entry : map.entrySet()) {
ctx.set(entry.getKey(), entry.getValue());
}
Object result = fel.eval(expression);
return result;
}
}
package com.mortals.flowable.flow;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
@Override
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("宋体");
engineConfiguration.setLabelFontName("宋体");
engineConfiguration.setAnnotationFontName("宋体");
}
}
package com.mortals.flowable.flow;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.*;
import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior;
import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior;
import org.flowable.task.api.history.HistoricTaskInstance;
import java.util.*;
@Slf4j
public class FlowableUtils {
/**
* 根据节点,获取入口连线
* @param source
* @return
*/
public static List<SequenceFlow> getElementIncomingFlows(FlowElement source) {
List<SequenceFlow> sequenceFlows = null;
if (source instanceof FlowNode) {
sequenceFlows = ((FlowNode) source).getIncomingFlows();
} else if (source instanceof Gateway) {
sequenceFlows = ((Gateway) source).getIncomingFlows();
} else if (source instanceof SubProcess) {
sequenceFlows = ((SubProcess) source).getIncomingFlows();
} else if (source instanceof StartEvent) {
sequenceFlows = ((StartEvent) source).getIncomingFlows();
} else if (source instanceof EndEvent) {
sequenceFlows = ((EndEvent) source).getIncomingFlows();
}
return sequenceFlows;
}
/**
* 根据节点,获取出口连线
* @param source
* @return
*/
public static List<SequenceFlow> getElementOutgoingFlows(FlowElement source) {
List<SequenceFlow> sequenceFlows = null;
if (source instanceof FlowNode) {
sequenceFlows = ((FlowNode) source).getOutgoingFlows();
} else if (source instanceof Gateway) {
sequenceFlows = ((Gateway) source).getOutgoingFlows();
} else if (source instanceof SubProcess) {
sequenceFlows = ((SubProcess) source).getOutgoingFlows();
} else if (source instanceof StartEvent) {
sequenceFlows = ((StartEvent) source).getOutgoingFlows();
} else if (source instanceof EndEvent) {
sequenceFlows = ((EndEvent) source).getOutgoingFlows();
}
return sequenceFlows;
}
/**
* 获取全部节点列表,包含子流程节点
* @param flowElements
* @param allElements
* @return
*/
public static Collection<FlowElement> getAllElements(Collection<FlowElement> flowElements, Collection<FlowElement> allElements) {
allElements = allElements == null ? new ArrayList<>() : allElements;
for (FlowElement flowElement : flowElements) {
allElements.add(flowElement);
if (flowElement instanceof SubProcess) {
// 继续深入子流程,进一步获取子流程
allElements = FlowableUtils.getAllElements(((SubProcess) flowElement).getFlowElements(), allElements);
}
}
return allElements;
}
/**
* 迭代获取父级任务节点列表,向前找
* @param source 起始节点
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param userTaskList 已找到的用户任务节点
* @return
*/
public static List<UserTask> iteratorFindParentUserTasks(FlowElement source, Set<String> hasSequenceFlow, List<UserTask> userTaskList) {
userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList;
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (source instanceof StartEvent && source.getSubProcess() != null) {
userTaskList = iteratorFindParentUserTasks(source.getSubProcess(), hasSequenceFlow, userTaskList);
}
// 根据类型,获取入口连线
List<SequenceFlow> sequenceFlows = getElementIncomingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 类型为用户节点,则新增父级节点
if (sequenceFlow.getSourceFlowElement() instanceof UserTask) {
userTaskList.add((UserTask) sequenceFlow.getSourceFlowElement());
continue;
}
// 类型为子流程,则添加子流程开始节点出口处相连的节点
if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) {
// 获取子流程用户任务节点
List<UserTask> childUserTaskList = findChildProcessUserTasks((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList);
continue;
}
}
// 继续迭代
userTaskList = iteratorFindParentUserTasks(sequenceFlow.getSourceFlowElement(), hasSequenceFlow, userTaskList);
}
}
return userTaskList;
}
/**
* 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找
* @param source 起始节点
* @param runTaskKeyList 正在运行的任务 Key,用于校验任务节点是否是正在运行的节点
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param userTaskList 需要撤回的用户任务列表
* @return
*/
public static List<UserTask> iteratorFindChildUserTasks(FlowElement source, List<String> runTaskKeyList, Set<String> hasSequenceFlow, List<UserTask> userTaskList) {
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList;
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (source instanceof EndEvent && source.getSubProcess() != null) {
userTaskList = iteratorFindChildUserTasks(source.getSubProcess(), runTaskKeyList, hasSequenceFlow, userTaskList);
}
// 根据类型,获取出口连线
List<SequenceFlow> sequenceFlows = getElementOutgoingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 如果为用户任务类型,且任务节点的 Key 正在运行的任务中存在,添加
if (sequenceFlow.getTargetFlowElement() instanceof UserTask && runTaskKeyList.contains((sequenceFlow.getTargetFlowElement()).getId())) {
userTaskList.add((UserTask) sequenceFlow.getTargetFlowElement());
continue;
}
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
List<UserTask> childUserTaskList = iteratorFindChildUserTasks((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), runTaskKeyList, hasSequenceFlow, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList);
continue;
}
}
// 继续迭代
userTaskList = iteratorFindChildUserTasks(sequenceFlow.getTargetFlowElement(), runTaskKeyList, hasSequenceFlow, userTaskList);
}
}
return userTaskList;
}
/**
* 迭代获取子流程用户任务节点
* @param source 起始节点
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param userTaskList 需要撤回的用户任务列表
* @return
*/
public static List<UserTask> findChildProcessUserTasks(FlowElement source, Set<String> hasSequenceFlow, List<UserTask> userTaskList) {
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList;
// 根据类型,获取出口连线
List<SequenceFlow> sequenceFlows = getElementOutgoingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 如果为用户任务类型,且任务节点的 Key 正在运行的任务中存在,添加
if (sequenceFlow.getTargetFlowElement() instanceof UserTask) {
userTaskList.add((UserTask) sequenceFlow.getTargetFlowElement());
continue;
}
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
List<UserTask> childUserTaskList = findChildProcessUserTasks((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList);
continue;
}
}
// 继续迭代
userTaskList = findChildProcessUserTasks(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, userTaskList);
}
}
return userTaskList;
}
/**
* 从后向前寻路,获取所有脏线路上的点
* @param source 起始节点
* @param passRoads 已经经过的点集合
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param targets 目标脏线路终点
* @param dirtyRoads 确定为脏数据的点,因为不需要重复,因此使用 set 存储
* @return
*/
public static Set<String> iteratorFindDirtyRoads(FlowElement source, List<String> passRoads, Set<String> hasSequenceFlow, List<String> targets, Set<String> dirtyRoads) {
passRoads = passRoads == null ? new ArrayList<>() : passRoads;
dirtyRoads = dirtyRoads == null ? new HashSet<>() : dirtyRoads;
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (source instanceof StartEvent && source.getSubProcess() != null) {
dirtyRoads = iteratorFindDirtyRoads(source.getSubProcess(), passRoads, hasSequenceFlow, targets, dirtyRoads);
}
// 根据类型,获取入口连线
List<SequenceFlow> sequenceFlows = getElementIncomingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 新增经过的路线
passRoads.add(sequenceFlow.getSourceFlowElement().getId());
// 如果此点为目标点,确定经过的路线为脏线路,添加点到脏线路中,然后找下个连线
if (targets.contains(sequenceFlow.getSourceFlowElement().getId())) {
dirtyRoads.addAll(passRoads);
continue;
}
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) {
dirtyRoads = findChildProcessAllDirtyRoad((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, dirtyRoads);
// 是否存在子流程上,true 是,false 否
Boolean isInChildProcess = dirtyTargetInChildProcess((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, targets, null);
if (isInChildProcess) {
// 已在子流程上找到,该路线结束
continue;
}
}
// 继续迭代
dirtyRoads = iteratorFindDirtyRoads(sequenceFlow.getSourceFlowElement(), passRoads, hasSequenceFlow, targets, dirtyRoads);
}
}
return dirtyRoads;
}
/**
* 迭代获取子流程脏路线
* 说明,假如回退的点就是子流程,那么也肯定会回退到子流程最初的用户任务节点,因此子流程中的节点全是脏路线
* @param source 起始节点
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param dirtyRoads 确定为脏数据的点,因为不需要重复,因此使用 set 存储
* @return
*/
public static Set<String> findChildProcessAllDirtyRoad(FlowElement source, Set<String> hasSequenceFlow, Set<String> dirtyRoads) {
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
dirtyRoads = dirtyRoads == null ? new HashSet<>() : dirtyRoads;
// 根据类型,获取出口连线
List<SequenceFlow> sequenceFlows = getElementOutgoingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 添加脏路线
dirtyRoads.add(sequenceFlow.getTargetFlowElement().getId());
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
dirtyRoads = findChildProcessAllDirtyRoad((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, dirtyRoads);
}
// 继续迭代
dirtyRoads = findChildProcessAllDirtyRoad(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, dirtyRoads);
}
}
return dirtyRoads;
}
/**
* 判断脏路线结束节点是否在子流程上
* @param source 起始节点
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param targets 判断脏路线节点是否存在子流程上,只要存在一个,说明脏路线只到子流程为止
* @param inChildProcess 是否存在子流程上,true 是,false 否
* @return
*/
public static Boolean dirtyTargetInChildProcess(FlowElement source, Set<String> hasSequenceFlow, List<String> targets, Boolean inChildProcess) {
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
inChildProcess = inChildProcess == null ? false : inChildProcess;
// 根据类型,获取出口连线
List<SequenceFlow> sequenceFlows = getElementOutgoingFlows(source);
if (sequenceFlows != null && !inChildProcess) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 如果发现目标点在子流程上存在,说明只到子流程为止
if (targets.contains(sequenceFlow.getTargetFlowElement().getId())) {
inChildProcess = true;
break;
}
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
inChildProcess = dirtyTargetInChildProcess((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, targets, inChildProcess);
}
// 继续迭代
inChildProcess = dirtyTargetInChildProcess(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, targets, inChildProcess);
}
}
return inChildProcess;
}
/**
* 迭代从后向前扫描,判断目标节点相对于当前节点是否是串行
* 不存在直接回退到子流程中的情况,但存在从子流程出去到父流程情况
* @param source 起始节点
* @param isSequential 是否串行
* @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复
* @param targetKsy 目标节点
* @return
*/
public static Boolean iteratorCheckSequentialReferTarget(FlowElement source, String targetKsy, Set<String> hasSequenceFlow, Boolean isSequential) {
isSequential = isSequential == null ? true : isSequential;
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (source instanceof StartEvent && source.getSubProcess() != null) {
isSequential = iteratorCheckSequentialReferTarget(source.getSubProcess(), targetKsy, hasSequenceFlow, isSequential);
}
// 根据类型,获取入口连线
List<SequenceFlow> sequenceFlows = getElementIncomingFlows(source);
if (sequenceFlows != null) {
// 循环找到目标元素
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 如果目标节点已被判断为并行,后面都不需要执行,直接返回
if (isSequential == false) {
break;
}
// 这条线路存在目标节点,这条线路完成,进入下个线路
if (targetKsy.equals(sequenceFlow.getSourceFlowElement().getId())) {
continue;
}
if (sequenceFlow.getSourceFlowElement() instanceof StartEvent) {
isSequential = false;
break;
}
// 否则就继续迭代
isSequential = iteratorCheckSequentialReferTarget(sequenceFlow.getSourceFlowElement(), targetKsy, hasSequenceFlow, isSequential);
}
}
return isSequential;
}
/**
* 从后向前寻路,获取到达节点的所有路线
* 不存在直接回退到子流程,但是存在回退到父级流程的情况
* @param source 起始节点
* @param passRoads 已经经过的点集合
* @param roads 路线
* @return
*/
public static List<List<UserTask>> findRoad(FlowElement source, List<UserTask> passRoads, Set<String> hasSequenceFlow, List<List<UserTask>> roads) {
passRoads = passRoads == null ? new ArrayList<>() : passRoads;
roads = roads == null ? new ArrayList<>() : roads;
hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow;
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (source instanceof StartEvent && source.getSubProcess() != null) {
roads = findRoad(source.getSubProcess(), passRoads, hasSequenceFlow, roads);
}
// 根据类型,获取入口连线
List<SequenceFlow> sequenceFlows = getElementIncomingFlows(source);
if (sequenceFlows != null && sequenceFlows.size() != 0) {
for (SequenceFlow sequenceFlow: sequenceFlows) {
// 如果发现连线重复,说明循环了,跳过这个循环
if (hasSequenceFlow.contains(sequenceFlow.getId())) {
continue;
}
// 添加已经走过的连线
hasSequenceFlow.add(sequenceFlow.getId());
// 添加经过路线
if (sequenceFlow.getSourceFlowElement() instanceof UserTask) {
passRoads.add((UserTask) sequenceFlow.getSourceFlowElement());
}
// 继续迭代
roads = findRoad(sequenceFlow.getSourceFlowElement(), passRoads, hasSequenceFlow, roads);
}
} else {
// 添加路线
roads.add(passRoads);
}
return roads;
}
/**
* 历史节点数据清洗,清洗掉又回滚导致的脏数据
* @param allElements 全部节点信息
* @param historicTaskInstanceList 历史任务实例信息,数据采用开始时间升序
* @return
*/
public static List<String> historicTaskInstanceClean(Collection<FlowElement> allElements, List<HistoricTaskInstance> historicTaskInstanceList) {
// 会签节点收集
List<String> multiTask = new ArrayList<>();
allElements.forEach(flowElement -> {
if (flowElement instanceof UserTask) {
// 如果该节点的行为为会签行为,说明该节点为会签节点
if (((UserTask) flowElement).getBehavior() instanceof ParallelMultiInstanceBehavior || ((UserTask) flowElement).getBehavior() instanceof SequentialMultiInstanceBehavior) {
multiTask.add(flowElement.getId());
}
}
});
// 循环放入栈,栈 LIFO:后进先出
Stack<HistoricTaskInstance> stack = new Stack<>();
historicTaskInstanceList.forEach(item -> stack.push(item));
// 清洗后的历史任务实例
List<String> lastHistoricTaskInstanceList = new ArrayList<>();
// 网关存在可能只走了部分分支情况,且还存在跳转废弃数据以及其他分支数据的干扰,因此需要对历史节点数据进行清洗
// 临时用户任务 key
StringBuilder userTaskKey = null;
// 临时被删掉的任务 key,存在并行情况
List<String> deleteKeyList = new ArrayList<>();
// 临时脏数据线路
List<Set<String>> dirtyDataLineList = new ArrayList<>();
// 由某个点跳到会签点,此时出现多个会签实例对应 1 个跳转情况,需要把这些连续脏数据都找到
// 会签特殊处理下标
int multiIndex = -1;
// 会签特殊处理 key
StringBuilder multiKey = null;
// 会签特殊处理操作标识
boolean multiOpera = false;
while (!stack.empty()) {
// 从这里开始 userTaskKey 都还是上个栈的 key
// 是否是脏数据线路上的点
final boolean[] isDirtyData = {false};
for (Set<String> oldDirtyDataLine : dirtyDataLineList) {
if (oldDirtyDataLine.contains(stack.peek().getTaskDefinitionKey())) {
isDirtyData[0] = true;
}
}
// 删除原因不为空,说明从这条数据开始回跳或者回退的
// MI_END:会签完成后,其他未签到节点的删除原因,不在处理范围内
if (stack.peek().getDeleteReason() != null && !stack.peek().getDeleteReason().equals("MI_END")) {
// 可以理解为脏线路起点
String dirtyPoint = "";
if (stack.peek().getDeleteReason().indexOf("Change activity to ") >= 0) {
dirtyPoint = stack.peek().getDeleteReason().replace("Change activity to ", "");
}
// 会签回退删除原因有点不同
if (stack.peek().getDeleteReason().indexOf("Change parent activity to ") >= 0) {
dirtyPoint = stack.peek().getDeleteReason().replace("Change parent activity to ", "");
}
FlowElement dirtyTask = null;
// 获取变更节点的对应的入口处连线
// 如果是网关并行回退情况,会变成两条脏数据路线,效果一样
for (FlowElement flowElement : allElements) {
if (flowElement.getId().equals(stack.peek().getTaskDefinitionKey())) {
dirtyTask = flowElement;
}
}
// 获取脏数据线路
Set<String> dirtyDataLine = FlowableUtils.iteratorFindDirtyRoads(dirtyTask, null, null, Arrays.asList(dirtyPoint.split(",")), null);
// 自己本身也是脏线路上的点,加进去
dirtyDataLine.add(stack.peek().getTaskDefinitionKey());
log.info(stack.peek().getTaskDefinitionKey() + "点脏路线集合:" + dirtyDataLine);
// 是全新的需要添加的脏线路
boolean isNewDirtyData = true;
for (int i = 0; i < dirtyDataLineList.size(); i++) {
// 如果发现他的上个节点在脏线路内,说明这个点可能是并行的节点,或者连续驳回
// 这时,都以之前的脏线路节点为标准,只需合并脏线路即可,也就是路线补全
if (dirtyDataLineList.get(i).contains(userTaskKey.toString())) {
isNewDirtyData = false;
dirtyDataLineList.get(i).addAll(dirtyDataLine);
}
}
// 已确定时全新的脏线路
if (isNewDirtyData) {
// deleteKey 单一路线驳回到并行,这种同时生成多个新实例记录情况,这时 deleteKey 其实是由多个值组成
// 按照逻辑,回退后立刻生成的实例记录就是回退的记录
// 至于驳回所生成的 Key,直接从删除原因中获取,因为存在驳回到并行的情况
deleteKeyList.add(dirtyPoint + ",");
dirtyDataLineList.add(dirtyDataLine);
}
// 添加后,现在这个点变成脏线路上的点了
isDirtyData[0] = true;
}
// 如果不是脏线路上的点,说明是有效数据,添加历史实例 Key
if (!isDirtyData[0]) {
lastHistoricTaskInstanceList.add(stack.peek().getTaskDefinitionKey());
}
// 校验脏线路是否结束
for (int i = 0; i < deleteKeyList.size(); i ++) {
// 如果发现脏数据属于会签,记录下下标与对应 Key,以备后续比对,会签脏数据范畴开始
if (multiKey == null && multiTask.contains(stack.peek().getTaskDefinitionKey())
&& deleteKeyList.get(i).contains(stack.peek().getTaskDefinitionKey())) {
multiIndex = i;
multiKey = new StringBuilder(stack.peek().getTaskDefinitionKey());
}
// 会签脏数据处理,节点退回会签清空
// 如果在会签脏数据范畴中发现 Key改变,说明会签脏数据在上个节点就结束了,可以把会签脏数据删掉
if (multiKey != null && !multiKey.toString().equals(stack.peek().getTaskDefinitionKey())) {
deleteKeyList.set(multiIndex , deleteKeyList.get(multiIndex).replace(stack.peek().getTaskDefinitionKey() + ",", ""));
multiKey = null;
// 结束进行下校验删除
multiOpera = true;
}
// 其他脏数据处理
// 发现该路线最后一条脏数据,说明这条脏数据线路处理完了,删除脏数据信息
// 脏数据产生的新实例中是否包含这条数据
if (multiKey == null && deleteKeyList.get(i).contains(stack.peek().getTaskDefinitionKey())) {
// 删除匹配到的部分
deleteKeyList.set(i , deleteKeyList.get(i).replace(stack.peek().getTaskDefinitionKey() + ",", ""));
}
// 如果每组中的元素都以匹配过,说明脏数据结束
if ("".equals(deleteKeyList.get(i))) {
// 同时删除脏数据
deleteKeyList.remove(i);
dirtyDataLineList.remove(i);
break;
}
}
// 会签数据处理需要在循环外处理,否则可能导致溢出
// 会签的数据肯定是之前放进去的所以理论上不会溢出,但还是校验下
if (multiOpera && deleteKeyList.size() > multiIndex && "".equals(deleteKeyList.get(multiIndex))) {
// 同时删除脏数据
deleteKeyList.remove(multiIndex);
dirtyDataLineList.remove(multiIndex);
multiIndex = -1;
multiOpera = false;
}
// pop() 方法与 peek() 方法不同,在返回值的同时,会把值从栈中移除
// 保存新的 userTaskKey 在下个循环中使用
userTaskKey = new StringBuilder(stack.pop().getTaskDefinitionKey());
}
log.info("清洗后的历史节点数据:" + lastHistoricTaskInstanceList);
return lastHistoricTaskInstanceList;
}
}
package com.mortals.flowable.listener;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
/**
*
*
* @author: finegirl
* @date: 2021/7/31 12:19
*/
public class UserTaskListener implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
}
}
.org-tree-container {
display: inline-block;
padding: 15px;
background-color: #fff;
}
.org-tree {
// display: inline-block;
display: table;
text-align: center;
&:before, &:after {
content: '';
display: table;
}
&:after {
clear: both;
}
}
.org-tree-node,
.org-tree-node-children {
position: relative;
margin: 0;
padding: 0;
list-style-type: none;
&:before, &:after {
transition: all .35s;
}
}
.org-tree-node-label {
position: relative;
display: inline-block;
.org-tree-node-label-inner {
padding: 10px 15px;
text-align: center;
border-radius: 3px;
box-shadow: 0 1px 5px rgba(0, 0, 0, .15);
}
}
.org-tree-node-btn {
position: absolute;
top: 100%;
left: 50%;
width: 20px;
height: 20px;
z-index: 10;
margin-left: -11px;
margin-top: 9px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 50%;
box-shadow: 0 0 2px rgba(0, 0, 0, .15);
cursor: pointer;
transition: all .35s ease;
&:hover {
background-color: #e7e8e9;
transform: scale(1.15);
}
&:before, &:after {
content: '';
position: absolute;
}
&:before {
top: 50%;
left: 4px;
right: 4px;
height: 0;
border-top: 1px solid #ccc;
}
&:after {
top: 4px;
left: 50%;
bottom: 4px;
width: 0;
border-left: 1px solid #ccc;
}
&.expanded:after {
border: none;
}
}
.org-tree-node {
padding-top: 20px;
display: table-cell;
vertical-align: top;
&.is-leaf, &.collapsed {
padding-left: 10px;
padding-right: 10px;
}
&:before, &:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 19px;
}
&:after {
left: 50%;
border-left: 1px solid #ddd;
}
&:not(:first-child):before,
&:not(:last-child):after {
border-top: 1px solid #ddd;
}
}
.collapsable .org-tree-node.collapsed {
padding-bottom: 30px;
.org-tree-node-label:after {
content: '';
position: absolute;
top: 100%;
left: 0;
width: 50%;
height: 20px;
border-right: 1px solid #ddd;
}
}
.org-tree > .org-tree-node {
padding-top: 0;
&:after {
border-left: 0;
}
}
.org-tree-node-children {
padding-top: 20px;
display: table;
&:before {
content: '';
position: absolute;
top: 0;
left: 50%;
width: 0;
height: 20px;
border-left: 1px solid #ddd;
}
&:after {
content: '';
display: table;
clear: both;
}
}
.horizontal {
.org-tree-node {
// display: flex;
// flex-direction: row;
// justify-content: flex-start;
// align-items: center;
display: table-cell;
float: none;
padding-top: 0;
padding-left: 20px;
&.is-leaf, &.collapsed {
padding-top: 10px;
padding-bottom: 10px;
}
&:before, &:after {
width: 19px;
height: 50%;
}
&:after {
top: 50%;
left: 0;
border-left: 0;
}
&:only-child:before {
top: 1px;
border-bottom: 1px solid #ddd;
}
&:not(:first-child):before,
&:not(:last-child):after {
border-top: 0;
border-left: 1px solid #ddd;
}
&:not(:only-child):after {
border-top: 1px solid #ddd;
}
.org-tree-node-inner {
display: table;
}
}
.org-tree-node-label {
display: table-cell;
vertical-align: middle;
}
&.collapsable .org-tree-node.collapsed {
padding-right: 30px;
.org-tree-node-label:after {
top: 0;
left: 100%;
width: 20px;
height: 50%;
border-right: 0;
border-bottom: 1px solid #ddd;
}
}
.org-tree-node-btn {
top: 50%;
left: 100%;
margin-top: -11px;
margin-left: 9px;
}
& > .org-tree-node:only-child:before {
border-bottom: 0;
}
.org-tree-node-children {
// display: flex;
// flex-direction: column;
// justify-content: center;
// align-items: flex-start;
display: table-cell;
padding-top: 0;
padding-left: 20px;
&:before {
top: 50%;
left: 0;
width: 20px;
height: 0;
border-left: 0;
border-top: 1px solid #ddd;
}
&:after {
display: none;
}
& > .org-tree-node {
display: block;
}
}
}
let Socket = ''
let setIntervalWesocketPush = null
/**
* 建立websocket连接
* @param {string} url ws地址
*/
export const createSocket = url => {
Socket && Socket.close()
if (!Socket) {
console.log('建立websocket连接')
Socket = new WebSocket(url)
Socket.onopen = onopenWS
Socket.onmessage = onmessageWS
Socket.onerror = onerrorWS
Socket.onclose = oncloseWS
} else {
console.log('websocket已连接')
}
}
/**打开WS之后发送心跳 */
const onopenWS = () => {
sendPing()
}
/**连接失败重连 */
const onerrorWS = () => {
Socket.close()
clearInterval(setIntervalWesocketPush)
console.log('连接失败重连中')
if (Socket.readyState !== 3) {
Socket = null
createSocket()
}
}
/**WS数据接收统一处理 */
const onmessageWS = e => {
window.dispatchEvent(new CustomEvent('onmessageWS', {
detail: {
data: e.data
}
}))
}
/**
* 发送数据但连接未建立时进行处理等待重发
* @param {any} message 需要发送的数据
*/
const connecting = message => {
setTimeout(() => {
if (Socket.readyState === 0) {
connecting(message)
} else {
Socket.send(JSON.stringify(message))
}
}, 1000)
}
/**
* 发送数据
* @param {any} message 需要发送的数据
*/
export const sendWSPush = message => {
if (Socket !== null && Socket.readyState === 3) {
Socket.close()
createSocket()
} else if (Socket.readyState === 1) {
Socket.send(JSON.stringify(message))
} else if (Socket.readyState === 0) {
connecting(message)
}
}
/**断开重连 */
const oncloseWS = () => {
clearInterval(setIntervalWesocketPush)
console.log('websocket已断开....正在尝试重连')
if (Socket.readyState !== 2) {
Socket = null
createSocket()
}
}
/**发送心跳
* @param {number} time 心跳间隔毫秒 默认5000
* @param {string} ping 心跳名称 默认字符串ping
*/
export const sendPing = (time = 15000, ping = 'ping') => {
let heart={};
let body={};
heart.type="HEART_BEAT_REQUEST";
let msgId=new Date().getMilliseconds();
body.msgId=msgId;
heart.body=body;
clearInterval(setIntervalWesocketPush)
Socket.send(JSON.stringify(heart))
setIntervalWesocketPush = setInterval(() => {
Socket.send(JSON.stringify(heart))
}, time)
}
\ No newline at end of file
.org-tree-container {
display: inline-block;
padding: 15px;
background-color: #fff;
}
.org-tree {
// display: inline-block;
display: table;
text-align: center;
&:before, &:after {
content: '';
display: table;
}
&:after {
clear: both;
}
}
.org-tree-node,
.org-tree-node-children {
position: relative;
margin: 0;
padding: 0;
list-style-type: none;
&:before, &:after {
transition: all .35s;
}
}
.org-tree-node-label {
position: relative;
display: inline-block;
.org-tree-node-label-inner {
padding: 10px 15px;
text-align: center;
border-radius: 3px;
box-shadow: 0 1px 5px rgba(0, 0, 0, .15);
}
}
.org-tree-node-btn {
position: absolute;
top: 100%;
left: 50%;
width: 20px;
height: 20px;
z-index: 10;
margin-left: -11px;
margin-top: 9px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 50%;
box-shadow: 0 0 2px rgba(0, 0, 0, .15);
cursor: pointer;
transition: all .35s ease;
&:hover {
background-color: #e7e8e9;
transform: scale(1.15);
}
&:before, &:after {
content: '';
position: absolute;
}
&:before {
top: 50%;
left: 4px;
right: 4px;
height: 0;
border-top: 1px solid #ccc;
}
&:after {
top: 4px;
left: 50%;
bottom: 4px;
width: 0;
border-left: 1px solid #ccc;
}
&.expanded:after {
border: none;
}
}
.org-tree-node {
padding-top: 20px;
display: table-cell;
vertical-align: top;
&.is-leaf, &.collapsed {
padding-left: 10px;
padding-right: 10px;
}
&:before, &:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 19px;
}
&:after {
left: 50%;
border-left: 1px solid #ddd;
}
&:not(:first-child):before,
&:not(:last-child):after {
border-top: 1px solid #ddd;
}
}
.collapsable .org-tree-node.collapsed {
padding-bottom: 30px;
.org-tree-node-label:after {
content: '';
position: absolute;
top: 100%;
left: 0;
width: 50%;
height: 20px;
border-right: 1px solid #ddd;
}
}
.org-tree > .org-tree-node {
padding-top: 0;
&:after {
border-left: 0;
}
}
.org-tree-node-children {
padding-top: 20px;
display: table;
&:before {
content: '';
position: absolute;
top: 0;
left: 50%;
width: 0;
height: 20px;
border-left: 1px solid #ddd;
}
&:after {
content: '';
display: table;
clear: both;
}
}
.horizontal {
.org-tree-node {
// display: flex;
// flex-direction: row;
// justify-content: flex-start;
// align-items: center;
display: table-cell;
float: none;
padding-top: 0;
padding-left: 20px;
&.is-leaf, &.collapsed {
padding-top: 10px;
padding-bottom: 10px;
}
&:before, &:after {
width: 19px;
height: 50%;
}
&:after {
top: 50%;
left: 0;
border-left: 0;
}
&:only-child:before {
top: 1px;
border-bottom: 1px solid #ddd;
}
&:not(:first-child):before,
&:not(:last-child):after {
border-top: 0;
border-left: 1px solid #ddd;
}
&:not(:only-child):after {
border-top: 1px solid #ddd;
}
.org-tree-node-inner {
display: table;
}
}
.org-tree-node-label {
display: table-cell;
vertical-align: middle;
}
&.collapsable .org-tree-node.collapsed {
padding-right: 30px;
.org-tree-node-label:after {
top: 0;
left: 100%;
width: 20px;
height: 50%;
border-right: 0;
border-bottom: 1px solid #ddd;
}
}
.org-tree-node-btn {
top: 50%;
left: 100%;
margin-top: -11px;
margin-left: 9px;
}
& > .org-tree-node:only-child:before {
border-bottom: 0;
}
.org-tree-node-children {
// display: flex;
// flex-direction: column;
// justify-content: center;
// align-items: flex-start;
display: table-cell;
padding-top: 0;
padding-left: 20px;
&:before {
top: 50%;
left: 0;
width: 20px;
height: 0;
border-left: 0;
border-top: 1px solid #ddd;
}
&:after {
display: none;
}
& > .org-tree-node {
display: block;
}
}
}
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notSearch />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
created() {
const { basicsId } = this.$route.query;
this.config.addQuery = { basicsId: basicsId };
},
methods: {
beforeRender(data) {
return data;
},
formterApplyStr(arrs) {
let temp = [];
for (let i = 0; i < arrs.length; i++) {
let str = "";
str += i + 1 + ": " + arrs[i].content + "\n";
temp.push(str);
}
return temp.join("");
},
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", width: 60 },
{ label: "模板标题", prop: "title", width: 200 },
{
label: "申请条件",
prop: "content",
formatter: (row) => {
let content = this.formterApplyStr(JSON.parse(row.content));
return <span style="white-space: pre-wrap">{content}</span>;
},
},
{
label: "操作",
width: 180,
formatter: (row) => {
return (
<div>
<el-button
type="primary"
icon="el-icon-edit"
round
size="mini"
onClick={() => {
this.toEdit(row);
}}
>
编辑
</el-button>
</div>
);
},
},
],
},
};
},
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-dialog
:title="applyDialog.title"
:visible.sync="applyDialog.visible"
width="800px"
append-to-body
>
<!--表单添加-->
<el-form label-width="80px">
<div>
<el-button size="mini" plain type="success" @click="addListRow()"
>新增申请条件</el-button
>
<el-table
:data="dynamicForm.options"
border
style="width: 100%; margin-top: 15px"
>
<el-table-column label="内容" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'options.' + scope.$index + '.content'"
>
<el-input
type="textarea"
v-model="scope.row.content"
placeholder="请输入内容"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="操作" width="160" align="center">
<template slot-scope="scope">
<el-form-item label-width="0">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handTableDelete(scope.$index, scope.row)"
>删除</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="applyConfirm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-form
:model="form"
:loading="loading"
:rules="rules"
size="small"
style="width: 100%"
label-width="120px"
ref="form"
>
<el-row>
<Field
span="14"
label="模板标题"
prop="title"
v-model="form.title"
placeholder="请输入模板标题"
/>
<el-col span="12">
<el-form-item label="申请条件" class="my-form-field">
<el-button @click.prevent="handEditApply(form.content)"
>编辑申请条件</el-button
>
<br />
<span style="white-space: pre-wrap">{{ content }}</span>
</el-form-item>
</el-col>
</el-row>
<form-buttons @submit="submitForm" />
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
created() {
const { basicsId } = this.$route.query;
this.form.basicsId = basicsId;
},
methods: {
beforeRender(data) {
console.log("渲染前", data);
if (data.entity.content && data.entity.content.length > 0) {
this.dynamicForm.options = JSON.parse(data.entity.content);
this.content = this.formterApplyStr(this.dynamicForm.options);
}
return data;
},
handTableDelete(index, val) {
this.dynamicForm.options.splice(index, 1);
},
handEditApply(val) {
this.applyDialog.visible = true;
},
applyConfirm() {
//确定 组装qa
this.content = this.formterApplyStr(this.dynamicForm.options);
this.form.content = JSON.stringify(this.dynamicForm.options);
this.applyDialog.visible = false;
},
formterApplyStr(arrs) {
let temp = [];
for (let i=0; i < arrs.length; i++) {
let str = "";
str += (i+1) + ": " + arrs[i].content + "\n";
temp.push(str);
}
return temp.join("");
},
cancel() {
this.applyDialog.visible = false;
},
addListRow() {
this.dynamicForm.options.push({
content: "",
});
},
},
data() {
return {
applyDialog: {
visible: false,
title: "申请条件",
},
content: "",
dynamicForm: {
options: [],
},
rules: {
title: [
{ required: true, message: "请输入申请条件", trigger: "blur" },
{ max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
content: [
{ required: true, message: "请输入申请条件", trigger: "blur" },
{ max: 65535, message: "最多只能录入65535个字符", trigger: "blur" },
],
},
};
},
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="一件事基础表 one_basics id" prop="basicsId" v-model="form.basicsId" placeholder="请输入一件事基础表 one_basics id"/>
<Field label="材料id " prop="oneDatumIds" v-model="form.oneDatumIds" placeholder="请输入材料id "/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
rules: {
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'},
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<el-container class="row-bg">
<el-header>
<el-row type="flex" class="row-bg" justify="center">
<el-col :span="6">
<el-button
type="primary"
v-if="data && Object.keys(data).length === 0"
icon="el-icon-circle-plus-outline"
@click="addRootQuestion"
>添加问题</el-button
><el-button icon="el-icon-delete" @click="clearQuestion"
>清除问题</el-button
></el-col
>
</el-row>
</el-header>
<el-main>
<vue2-org-tree
v-if="data && Object.keys(data).length > 0"
name="tree"
:data="data"
:horizontal="horizontal"
:collapsable="collapsable"
:label-class-name="labelClassName"
:render-content="renderContent"
/>
</el-main>
<!-- 关联基本信息对话框 -->
<el-dialog
:title="baseInfoDialog.title"
:visible.sync="baseInfoDialog.visible"
width="60%"
append-to-body
>
<el-row :gutter="20">
<el-select
v-model="baseInfoDialog.basicsinfoId"
style="width: 70%"
@change="baseInfoChange"
placeholder="请选择"
>
<el-option
v-for="item in baseInfoList"
:key="item.id"
:label="item.title"
:value="item.id"
></el-option>
</el-select>
<el-button
type="primary"
icon="el-icon-view"
style="margin-left: 20px"
@click="handBaseInfoDetail()"
>预览</el-button
>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="baseInfoConfirm">确 定</el-button>
<el-button @click="baseInfoCancel">取 消</el-button>
</div>
</el-dialog>
<!-- 关联申请条件对话框 -->
<el-dialog
:title="applyDialog.title"
:visible.sync="applyDialog.visible"
width="60%"
append-to-body
>
<el-row :gutter="20">
<el-select
v-model="applyDialog.applyId"
style="width: 80%"
@change="applyChange"
placeholder="请选择"
>
<el-option
v-for="item in applyList"
:key="item.id"
:label="item.title"
:value="item.id"
></el-option>
</el-select>
<el-button
type="primary"
icon="el-icon-view"
style="margin-left: 20px"
@click="handApplyDetail()"
>预览</el-button
>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="applyConfirm">确 定</el-button>
<el-button @click="applyCancel">取 消</el-button>
</div>
</el-dialog>
<!-- 关联办理流程对话框 -->
<el-dialog
:title="flowDialog.title"
:visible.sync="flowDialog.visible"
width="60%"
append-to-body
>
<el-row :gutter="20">
<el-select
v-model="flowDialog.flowlimitId"
style="width: 80%"
@change="flowChange"
placeholder="请选择"
>
<el-option
v-for="item in flowList"
:key="item.id"
:label="item.title"
:value="item.id"
></el-option>
</el-select>
<el-button
type="primary"
icon="el-icon-view"
style="margin-left: 20px"
@click="handFlowDetail()"
>预览</el-button
>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="flowConfirm">确 定</el-button>
<el-button @click="flowCancel">取 消</el-button>
</div>
</el-dialog>
<!-- 添加或修改题目对话框 -->
<el-dialog
:title="title"
:visible.sync="classifyDialog.visible"
width="70%"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item
v-if="data && Object.keys(data).length > 0"
label="上一个答案选项"
prop="preAnsOption"
>
<el-select
v-model="form.entity.parentOptionId"
style="width: 100%"
placeholder="请选择"
>
<el-option
v-for="dict in preAnsOptions"
:key="dict.id"
:label="dict.name"
:value="dict.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="题目名称" prop="questionTitle">
<el-input
v-model="form.entity.name"
type="textarea"
placeholder="请输入题目名称"
/>
</el-form-item>
<el-form-item label="选项类别" prop="type">
<el-select v-model="form.entity.type" placeholder="请选择选项类型">
<el-option
v-for="(label, value) in dict.typeOptions"
:key="value"
:label="label"
:value="value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.entity.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-divider></el-divider>
<!--表单添加-->
<div>
<el-button size="mini" plain type="success" @click="addListRow()"
>新增选项</el-button
>
<el-table
:data="form.list"
border
style="margin-top: 10px"
max-height="360"
>
<el-table-column label="选项内容" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'list.' + scope.$index + '.name'"
:rules="{
required: true,
message: '选项内容不能为空',
trigger: 'blur',
}"
>
<el-input
type="textarea"
v-model="scope.row.name"
placeholder="请输入选项内容"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="常规说明" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'list.' + scope.$index + '.summary'"
>
<el-input
type="textarea"
v-model="scope.row.summary"
placeholder="请输入说明"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="材料关联" width="150" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'list.' + scope.$index + '.materia'"
>
<el-col>
<el-link
:underline="false"
v-if="scope.row.isend === 1"
@click="handAddBaseInfo(scope.$index, scope.row)"
type="primary"
>基本信息关联</el-link
>
<el-link
:underline="false"
v-if="scope.row.isend === 1"
@click="handAddCondition(scope.$index, scope.row)"
type="primary"
>申请条件关联</el-link
>
<el-link
:underline="false"
v-if="scope.row.isend === 1"
@click="handAddFlow(scope.$index, scope.row)"
type="primary"
>办理流程关联</el-link
>
<el-link
:underline="false"
v-if="scope.row.isend === 1"
@click="handAddDatum(scope.$index, scope.row)"
type="primary"
>材料关联</el-link
>
</el-col>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-form-item label-width="0">
<el-checkbox
:checked="scope.row.issend === 1"
@change="handChangeEnd(checked, scope.$index, scope.row)"
>是否终节点</el-checkbox
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handTableDelete(scope.$index, scope.row.optionId)"
>删除</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</el-container>
</template>
<script>
export default {
created() {
this.$post("/classify/add", {}).then((res) => {
this.dict = Object.assign({}, this.dict, res.data.dict);
});
const { basicsId } = this.$route.query;
//查询是否存在问题,如果没有 则显示创建根问题按钮 否则编辑
if (!basicsId) return;
this.basicsId = basicsId;
this.getTreeList();
},
methods: {
beforeRender(data) {
return data;
},
addRootQuestion() {
this.title = "添加问题";
this.classifyDialog.visible = true;
},
clearQuestion() {
this.$confirm("此操作将永久删除全部问题及选项, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$post("/classify/removeQuestion", {
basicsId: this.basicsId,
}).then((res) => {
this.data = {};
this.$message({
type: "success",
message: "清除成功!",
});
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
});
},
handChangeEnd(checked, index, val) {
console.log("end",checked, index, val);
if (val.isend === 0) {
this.temp = val;
this.temp.isend = 1;
} else {
this.temp = val;
this.temp.isend = 0;
val.isend = 0;
}
//val.isend=1;
},
//基本信息预览
handBaseInfoDetail() {
let id = this.form.entity.basicsinfoId;
this.$router.push({
path: "/basics/info/view",
query: {
id: id,
},
});
},
//新增基本信息
handAddBaseInfo(index, val) {
console.log("新增基本信息", index, val);
//请求当前可选择的基本信息
let query = {};
query.basicsId = this.basicsId;
this.$post("/basics/info/list", query).then((res) => {
this.baseInfoList = res.data.result;
});
//获取当前事项的基本信息,如果有关联 否则
if (val.basicsinfoId && val.basicsinfoId != 0) {
//编辑
this.baseInfoDialog.title = "编辑选择基本信息";
this.baseInfoDialog.visible = true;
} else {
this.baseInfoDialog.visible = true;
}
this.baseInfoDialog.index = index;
},
baseInfoChange(val) {
console.log("基本信息选项改变", val);
},
baseInfoConfirm(val) {
console.info("基本信息选项确定", val, this.baseInfoDialog.basicsinfoId);
this.form.list[this.baseInfoDialog.index].basicsinfoId =
this.baseInfoDialog.basicsinfoId;
this.baseInfoDialog.visible = false;
},
baseInfoCancel(val) {
console.info("基本信息选项取消", val);
this.baseInfoDialog.visible = false;
},
//申请条件预览
handApplyDetail() {
let id = this.form.entity.applyId;
this.$router.push({
path: "/accept/view",
query: {
id: id,
},
});
},
//新增申请条件
handAddCondition(index, val) {
console.log("新增申请条件", index, val);
//请求当前可选择的基本信息
let query = {};
query.basicsId = this.basicsId;
this.$post("/accept/list", query).then((res) => {
this.applyList = res.data.result;
});
//获取当前事项的基本信息,如果有关联 否则
if (val.applyId && val.applyId != 0) {
//编辑
this.applyDialog.title = "编辑选择申请条件";
this.applyDialog.visible = true;
} else {
this.applyDialog.visible = true;
}
this.applyDialog.index = index;
},
applyChange(val) {
console.log("申请条件选项改变", val);
},
applyConfirm(val) {
console.info("申请条件选项确定", val);
this.form.list[this.applyDialog.index].applyId =
this.applyDialog.applyId;
this.applyDialog.visible = false;
},
applyCancel(val) {
console.info("申请条件选项取消", val);
this.applyDialog.visible = false;
},
//添加流程预览
handApplyDetail() {
let id = this.form.entity.flowlimitId;
this.$router.push({
path: "/flowlimit/view",
query: {
id: id,
},
});
},
//添加流程
handAddFlow(index, val) {
console.log("添加办理流程", index, val);
//请求当前可选择的基本信息
let query = {};
query.basicsId = this.basicsId;
this.$post("/flowlimit/list", query).then((res) => {
this.flowList = res.data.result;
});
//获取当前事项的基本信息,如果有关联 否则
if (val.flowlimitId && val.flowlimitId != 0) {
//编辑
this.flowDialog.title = "编辑选择办理流程";
this.flowDialog.visible = true;
} else {
this.flowDialog.visible = true;
}
this.flowDialog.index = index;
},
flowChange(val) {
console.log("办理流程选项改变", val);
},
flowConfirm(val) {
console.info("办理流程选项确定", val);
this.form.list[this.flowDialog.index].flowlimitId =
this.flowDialog.flowlimitId;
this.flowDialog.visible = false;
},
flowCancel(val) {
console.info("办理流程选项取消", val);
this.flowDialog.visible = false;
},
//添加材料
handAddDatum(index, val) {
console.log("添加材料", index, val);
},
getTreeList() {
this.$post("/classify/getListByBasicsId", {
basicsId: this.basicsId,
}).then((res) => {
if (res.data) {
this.data = res.data;
}
});
},
deleteItem(item, index) {
this.form.dynamicItem.splice(index, 1);
},
renderContent(h, data) {
let listItems = [];
if (data.question) {
let span = 24 / data.question.length;
for (let i = 0; i < data.question.length; i++) {
let temp1 = "";
if (i < data.question.length - 1) {
//temp1=<p class='centerp'></p>;
// temp1 = <el-col span='1'><el-divider direction='vertical'></el-divider> </el-col>;
// listItems.push(temp1);
}
let temp = (
<el-col span={span}>
<p style="font-size:12px;white-space:pre-wrap;line-height:20px">
{data.question[i].name}
</p>
</el-col>
);
listItems.push(temp);
}
}
return (
<div>
{data.preQuestion && data.preQuestion != "" ? (
<div>
<span style="font-size:12px;">{data.preQuestion.name}</span>
<el-link
style="float: right;margin-right:5px;margin-left:5px;margin-top:10px;font-size:16px"
icon="el-icon-edit"
onClick={() => {
this.handleEdit(data);
}}
></el-link>
<span></span>
<el-link
style="float: right;margin-right:5px;margin-left:5px;margin-top:10px;font-size:16px"
icon="el-icon-folder-add"
onClick={() => {
this.handleAdd(data);
}}
></el-link>
<el-divider></el-divider>
</div>
) : (
<div>
<el-link
style="float: right;margin-right:5px;margin-left:5px;margin-top:10px;font-size:16px"
icon="el-icon-edit"
onClick={() => {
this.handleEdit(data);
}}
></el-link>
<span></span>
<el-link
style="float: right;margin-right:5px;margin-left:5px;margin-top:10px;font-size:16px"
icon="el-icon-folder-add"
onClick={() => {
this.handleAdd(data);
}}
></el-link>
<el-divider></el-divider>
</div>
)}
<p style="font-size:12px;font-weight:bold;;white-space:pre-wrap;line-height:20px;">
问题: {data.name}
</p>
<el-divider></el-divider>
<el-row type="flex" justify="center">
{listItems}
</el-row>
</div>
);
// return data.label;
},
handleEdit(data) {
this.reset();
this.$post("/classify/getQuestionById", { classifyId: data.id })
.then((res) => {
// console.log(res);
this.title = "编辑问题";
this.form.entity = Object.assign(
{},
this.form.entity,
res.data.entity
);
this.form.type = this.form.type + "";
this.form.list = res.data.list;
this.preAnsOptions = [];
this.preAnsOptions = res.data.preAnsOptions;
this.classifyDialog.visible = true;
})
.catch((error) => {
this.$message.error(error.message);
});
},
handleAdd(data) {
this.reset();
this.$post("/classify/checkAddQuestion", { classifyId: data.id })
.then((res) => {
this.preAnsOptions = [];
this.preAnsOptions = res.data.preAnsOptions;
this.form.entity.parentId = data.id;
this.classifyDialog.visible = true;
})
.catch((error) => {
this.$message.error(error.message);
});
},
onNodeClick(e, data) {
//点击新增 需要有菜单选择新增 或者编辑当前节点
//preAnsOptions
this.$post("/classify/checkAddQuestion", { classifyId: data.id })
.then((res) => {
this.preAnsOptions = [];
this.preAnsOptions = res.data.preAnsOptions;
this.form.entity.parentId = data.id;
this.classifyDialog.visible = true;
//初始化问题树,由服务端组装
//this.data = res.data;
})
.catch((error) => {
this.$message.error(error.message);
});
console.log(data);
// alert(data.label);
},
//点击加号添加一行数据
addListRow() {
let option = Object.assign({}, this.classifyOption);
this.form.list.push(option);
},
handTableDelete(index, optionId) {
const taht = this;
this.$confirm(
'是否确认删除题目选项编号为"' + optionId + '"的数据项?',
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
taht.form.options.splice(index, 1);
// return delOptions(optionId);
})
.then(() => {
// this.getList();
this.msgSuccess("删除成功");
});
},
addHeaderCellClassName({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0 || columnIndex === 1) {
return "requiredclass";
}
},
cancel() {
this.classifyDialog.visible = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
entity: {
id: null,
name: "",
basicsId: 0,
parentId: -1,
parentOptionId: null,
type: "1",
ismust: 0,
level: 0,
},
list: [],
};
},
// 提交表单
submitForm(ref) {
this.form.entity.basicsId = this.basicsId;
const el = this.$refs.form;
el.validate((valid) => {
if (!valid) return;
this.$post("/classify/saveClassify", this.form)
.then((res) => {
console.log(res);
this.getTreeList();
this.$message.success("保存成功!");
this.classifyDialog.visible = false;
this.reset();
})
.catch((error) => {
this.$message.error(error.message);
});
});
},
},
data() {
return {
title: "新增问题",
basicsId: null,
temp: {},
form: {
entity: {
id: null,
name: "",
basicsId: 0,
parentId: -1,
type: "1",
ismust: "0",
level: 0,
},
list: [],
},
classifyOption: {
id: null,
classifyId: 0,
classifyNextId: 0,
name: "",
isend: 0,
basicsinfoId: 0,
acceptId: 0,
flowlimitId: 0,
matterId: 0,
datumId: 0,
summaryType: 1,
summary: "",
},
classifyDialog: {
visible: false,
},
baseInfoDialog: {
visible: false,
title: "新增基本信息",
index: 0,
},
applyDialog: {
visible: false,
title: "新增申请条件",
},
flowDialog: {
visible: false,
title: "新增办理信息",
},
datumDialog: {
visible: false,
},
baseInfoList: [],
applyList: [],
flowList: [],
datumList: [],
preAnsOptions: [],
typeOptions: [
{ dictLabel: "单选", dictValue: "1" },
{ dictLabel: "多选", dictValue: "2" },
],
dict: {},
data: {},
horizontal: false,
collapsable: false,
expandAll: true,
labelClassName: "bg-white",
};
},
};
</script>
<style>
.requiredclass > div.cell::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.el-header,
.el-footer {
background-color: #b3c0d1;
color: #333;
text-align: center;
line-height: 60px;
}
.text {
font-size: 14px;
}
.item {
margin-bottom: 18px;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both;
}
.el-divider {
background-color: #dcdfe6;
position: relative;
}
.el-divider--horizontal {
display: block;
height: 1px;
width: 100%;
margin: 4px 0;
}
.org-tree-node-label .org-tree-node-label-inner {
padding: 3px 5px;
text-align: center;
border-radius: 3px;
-webkit-box-shadow: 0 1px 5px rgb(0 0 0 / 15%);
/* box-shadow: 0 1px 5px rgb(0 0 0 / 15%); */
}
.el-select-dropdown .el-scrollbar .el-scrollbar__wrap {
overflow: scroll !important;
}
.centerp {
float: left;
width: 50px;
border-right: 1px dashed black;
padding-bottom: 1600px; /*关键*/
margin-bottom: -1600px; /*关键*/
}
/* .box-card {
width: 480px;
} */
</style>
<style type="text/css">
.org-tree-node-label {
white-space: pre-wrap;
}
</style>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel notSearch />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
created() {
const { basicsId } = this.$route.query;
this.config.addQuery = { basicsId: basicsId };
},
methods: {
beforeRender(data) {
return data;
},
},
data() {
return {
config: {
search: [],
columns: [
{ label: "模板标题", prop: "title" },
{ label: "办理机构", prop: "jointInfoShow" },
{ label: "法定时限", prop: "legalTimeLimitShow" },
{ label: "承诺时限", prop: "promiseTimeLimitShow" },
{ label: "收费金额", prop: "charges" },
{ label: "办公时间", prop: "handleTimeShow" },
{ label: "办公地址", prop: "handlePlaceShow" },
{ label: "咨询电话", prop: "cousultingTelephoneShow" },
{ label: "投诉电话", prop: "supervisoryTelephoneShow" },
{ label: "结果信息", prop: "resultInfo" },
{
label: "操作",
width: 180,
formatter: (row) => {
return (
<div>
<el-button
type="primary"
icon="el-icon-edit"
round
size="mini"
onClick={() => {
this.toEdit(row);
}}
>
编辑
</el-button>
</div>
);
},
},
],
},
};
},
};
</script>
<template>
<layout-form>
<el-dialog
:title="qaDialog.title"
:visible.sync="qaDialog.visible"
width="800px"
append-to-body
>
<!--表单添加-->
<el-form label-width="80px">
<div>
<el-button size="mini" plain type="success" @click="addListRow()"
>新增问答</el-button
>
<el-table
:data="dynamicForm.options"
border
style="width: 100%; margin-top: 15px"
>
<el-table-column label="问题内容" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'options.' + scope.$index + '.qaContent'"
>
<el-input
type="textarea"
v-model="scope.row.qaContent"
placeholder="请输入问题内容"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="问题答案" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'options.' + scope.$index + '.ans'"
>
<el-input
type="textarea"
v-model="scope.row.ans"
placeholder="请输入问题答案"
></el-input>
</el-form-item>
</template>
</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-delete"
@click="handTableDelete(scope.$index, scope.row)"
>删除</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="qaConfirm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-form
:model="form"
:loading="loading"
:rules="rules"
size="small"
style="width: 100%"
label-width="120px"
ref="form"
>
<el-row>
<Field
label="模板标题"
prop="title"
v-model="form.title"
placeholder="请输入模板标题"
/>
<Field
label="办理机构"
prop="jointInfoShow"
v-model="form.jointInfoShow"
placeholder="请输入办理机构"
/>
<el-col span="12">
<el-form-item
label="法定时限"
prop="legalTimeLimitShow"
class="my-form-field"
>
<el-input
placeholder="请输入法定时限"
v-model="form.legalTimeLimitShow"
>
<template slot="append">个工作日</template>
</el-input>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item
label="承诺时限"
prop="promiseTimeLimitShow"
class="my-form-field"
>
<el-input
placeholder="请输入承诺时限"
v-model="form.promiseTimeLimitShow"
>
<template slot="append">个工作日</template>
</el-input>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item
label="收费标准"
prop="isChargesShow"
class="my-form-field"
>
<el-input
placeholder="请输入内容"
v-model="form.charges"
:disabled="isChargesShow"
class="input-with-select"
>
<el-select
slot="prepend"
@change="changeCharges"
v-model="form.isChargesShow"
>
<el-option
v-for="(label, value) in dict.isChargesShow"
:key="value"
:label="label"
:value="value"
></el-option>
</el-select>
</el-input>
</el-form-item>
</el-col>
<Field
label="办公时间"
prop="handleTimeShow"
v-model="form.handleTimeShow"
placeholder="请输入办公时间"
/>
<Field
label="办公地址"
prop="handlePlaceShow"
v-model="form.handlePlaceShow"
placeholder="请输入办公地址"
/>
<Field
label="咨询电话"
prop="cousultingTelephoneShow"
v-model="form.cousultingTelephoneShow"
placeholder="请输入咨询电话"
/>
<Field
label="投诉电话"
prop="supervisoryTelephoneShow"
v-model="form.supervisoryTelephoneShow"
placeholder="请输入投诉电话"
/>
<Field
label="结果信息"
prop="resultInfo"
v-model="form.resultInfo"
placeholder="请输入结果信息"
type="textarea"
/>
<el-col span="12">
<el-form-item label="常见问题" class="my-form-field">
<el-button @click.prevent="handEditQa(form.qa)"
>编辑常见问题</el-button
>
<br />
<span style="white-space: pre-wrap">{{ qa }}</span>
</el-form-item>
</el-col>
<!-- <el-row>
<el-col>常见问题</el-col>
<el-col style="white-space: pre-wrap">{{ form.qa }}</el-col>
</el-row> -->
<!-- <Field label="常见问题" prop="qa" v-model="form.qa" placeholder="请输入常见问题" /> -->
</el-row>
<form-buttons @submit="submitForm" />
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
created() {
const { basicsId } = this.$route.query;
this.form.basicsId = basicsId;
},
methods: {
beforeRender(data) {
console.log("渲染前", data);
if (data.entity.qa && data.entity.qa.length > 0) {
this.dynamicForm.options = JSON.parse(data.entity.qa);
this.qa = this.formterQaStr(this.dynamicForm.options);
}
return data;
},
handTableDelete(index, val) {
console.log(index, val);
this.dynamicForm.options.splice(index, 1);
},
changeCharges(val) {
if (val && val === "1") {
this.isChargesShow = false;
} else {
this.isChargesShow = true;
}
},
handEditQa(val) {
console.log(val);
this.qaDialog.visible = true;
},
qaConfirm() {
//确定 组装qa
this.qa = this.formterQaStr(this.dynamicForm.options);
this.form.qa = JSON.stringify(this.dynamicForm.options);
this.qaDialog.visible = false;
},
formterQaStr(arrs) {
let qa = arrs.map((item) => {
let str = "";
str += "问:" + item.qaContent + "\n";
str += "答:" + item.ans + "\n";
return str;
});
return qa.join("");
},
cancel() {
this.qaDialog.visible = false;
},
addListRow() {
this.dynamicForm.options.push({
qaContent: "",
ans: "",
});
},
},
data() {
return {
qaDialog: {
visible: false,
titile: "常见问题",
},
qa: "",
dynamicForm: {
options: [],
},
toString: ["isChargesShow"],
isChargesShow: false,
rules: {
title: [
{ required: true, message: "模板标题不能为空", trigger: "blur" },
{ max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
jointInfoShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 128, message: "最多只能录入128个字符", trigger: "blur" },
],
legalTimeLimitShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 20, message: "最多只能录入20个字符", trigger: "blur" },
],
promiseTimeLimitShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 20, message: "最多只能录入20个字符", trigger: "blur" },
],
isChargesShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
],
handleTimeShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
handlePlaceShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
cousultingTelephoneShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
supervisoryTelephoneShow: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
resultInfo: [
{ required: true, message: "选项内容不能为空", trigger: "blur" },
{ max: 256, message: "最多只能录入256个字符", trigger: "blur" },
],
},
};
},
};
</script>
<style lang="scss" scoped>
.el-select .el-input {
width: 100px;
}
.input-with-select .el-input-group__prepend {
background-color: #fff;
}
</style>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" />
<!-- 查看二维码弹窗 -->
<el-dialog title="一次办二维码" :visible.sync="qrCodeDialog.visible" width="350px">
<img :src="qrCodeDialog.qrCode" />
<p style="word-wrap: break-word">{{ qrCodeDialog.qrCodeUrl }}</p>
</el-dialog>
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
name: "basics",
components: {},
mixins: [table],
created() {},
methods: {
async viewQrCode(id) {
try {
const { qrCode, qrCodeUrl } = await this.$post("/basics/viewQrCode", {
"entity.id": id,
});
this.qrCodeDialog.qrCode = qrCode;
this.qrCodeDialog.qrCodeUrl = qrCodeUrl;
this.qrCodeDialog.visible = true;
} catch (error) {
this.$message.error(error.message);
}
},
handPlatform(row) {
this.$router.push({
path: "/basics/index",
query: { basicsId: row.id },
});
},
async handAddBaseInfo(row) {
try {
this.$router.push({
path: "/basics/info/list",
query: {
basicsId: row.id
},
});
} catch (error) {
this.$message.error(error.message);
}
},
async handAddApplyCondition(row) {
try {
this.$router.push({
path: "/accept/list",
query: {
basicsId: row.id
},
});
} catch (error) {
this.$message.error(error.message);
}
},
async handAddFlow(row) {
try {
this.$router.push({
path: "/flowlimit/list",
query: {
basicsId: row.id
},
});
} catch (error) {
this.$message.error(error.message);
}
},
},
data() {
return {
qrCodeDialog: {
visible: false,
qrCode: "",
qrCodeUrl: "",
},
config: {
search: [],
columns: [
{ type: "selection", width: 60 },
{ label: "一件事标题", prop: "tname" },
{
label: "二维码",
prop: "qrcode",
formatter: (row) => {
return (
<el-button
type='text'
onClick={() => {
this.viewQrCode(row.id);
}}>
二维码
</el-button>
);
},
},
{
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{
label: "操作",
width: 320,
formatter: (row) => {
return (
<div>
<el-row>
<el-button
size='mini'
icon='el-icon-edit'
size='mini'
onClick={() => {
this.toEdit(row);
}}>
编辑
</el-button>
<span> </span>
<el-button
size='mini'
icon='el-icon-edit-outline'
size='mini'
onClick={() => {
this.handPlatform(row);
}}>
事项工作台
</el-button>
<span> </span>
<el-button
size='mini'
icon='el-icon-edit-outline'
size='mini'
onClick={() => {
this.handAddBaseInfo(row);
}}>
基本信息
</el-button>
<span> </span>
</el-row>
<el-row style='margin-top:10px'>
<el-button
size='mini'
icon='el-icon-edit-outline'
size='mini'
onClick={() => {
this.handAddApplyCondition(row);
}}>
申请条件
</el-button>
<span> </span>
<el-button
size='mini'
icon='el-icon-edit-outline'
size='mini'
onClick={() => {
this.handAddFlow(row);
}}>
办理流程
</el-button>
<span> </span>
<Confirm message='确定要删除该事件吗?' onConfirm={() => this.toDel(row.id)}>
<el-button size='mini' icon='el-icon-delete' size='mini'>
删除
</el-button>
</Confirm>
<span> </span>
</el-row>
</div>
);
},
},
],
},
};
},
};
</script>
<template>
<layout-form>
<el-dialog
title="选择材料信息"
:visible.sync="datumDialog.visible"
width="80%"
>
<el-container>
<el-aside width="250px">
<el-tag
style="margin-top: 10px"
v-for="item in datumTags"
:key="item.id"
closable
hit="true"
@close="handleClose(item.id)"
>
{{ item.materialName }}
</el-tag>
</el-aside>
<el-main>
<!--搜索-->
<div>
<el-form :inline="true" size="mini">
<el-form-item label="材料名称">
<el-input
v-model="searchform.name"
placeholder="材料名称"
></el-input>
</el-form-item>
<el-form-item>
<el-button plain @click="datumTableSearchConfirm"
>查询</el-button
>
<el-button plain @click="datumTableSearchClear">清空</el-button>
</el-form-item>
</el-form>
</div>
<!--材料列表-->
<el-table
size="mini"
ref="multipleTable"
:data="datumTableData"
tooltip-effect="dark"
border
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="materialName" label="材料名称" />
<el-table-column width="300" prop="code" label="关联事项" />
<el-table-column width="200" label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleAdd(scope.$index, scope.row)"
>加入</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页器 -->
<div class="pagination-wapper" style="height: 100px">
<el-pagination
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page="datumTable.currPage"
:page-size="datumTable.prePageResult"
:page-sizes="[10, 20, 50, 100, 200]"
layout="sizes, total, prev, pager, next, jumper"
:total="datumTable.totalResult"
>
</el-pagination>
</div>
<div>
<span slot="footer" class="dialog-footer">
<el-button @click="datumDialog.visible = false">取 消</el-button>
<el-button type="primary" @click="selectDatumConfirm"
>确 定</el-button
>
</span>
</div>
</el-main>
</el-container>
</el-dialog>
<el-form
:model="form"
:loading="loading"
:rules="rules"
size="small"
style="width: 80%"
label-width="120px"
ref="form"
>
<el-row>
<Field
label="一件事标题"
prop="tname"
v-model="form.tname"
placeholder="请输入一件事标题"
:span="18"
/>
<Field
label="是否自主申报"
prop="iszzsb"
v-model="form.iszzsb"
:enumData="dict.iszzsb"
type="radio"
placeholder="请输入是否自主申报 0否 1是 默认0"
/>
<el-col :span="24">
<el-form-item label="选择材料">
<el-button type="primary" @click.prevent="selectDatum"
>选择材料</el-button
>
</el-form-item>
</el-col>
<el-col :span="24">
<el-table
style="margin-left: 20px; margin-bottom: 20px"
v-if="datumCurTableData.length > 0"
size="mini"
:data="datumCurTableData"
border
highlight-current-row
>
<el-table-column prop="materialName" label="材料名称" />
<el-table-column prop="code" label="关联事项" />
<el-table-column
prop="isMust"
:formatter="formatterDict"
label="材料必要性"
>
</el-table-column>
<el-table-column
prop="materialType"
:formatter="formatterDict"
label="材料形式"
>
</el-table-column>
<el-table-column
prop="materialSourceSm"
:formatter="formatterDict"
label="材料来源"
>
</el-table-column>
<el-table-column prop="paperNum" label="材料份数">
</el-table-column>
<el-table-column width="200" label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleDelete(scope.$index, scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
<form-buttons @submit="submitForm" />
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
//import table from "@/assets/mixins/table";
export default {
mixins: [ form],
created() {
const { id } = this.$route.query;
if(!id) return
let query = {
"pageInfo.prePageResult": -1,
"query.basicsId": id,
};
this.$post("/basics/datum/list", query).then(({ data }) => {
const ids = data.result.map((item) => {
return item.oneDatumIds;
});
console.log(ids);
if(!ids||ids.length==0)return
query = {
"pageInfo.prePageResult": -1,
"query.idList": ids,
};
this.$post("/datum/list", query).then(({ data }) => {
this.datumCurTableData = data.result;
this.datumTags = data.result;
//dialog页 数据
});
});
},
methods: {
beforeRender(data) {
data.entity.iszzsb = data.entity.iszzsb + "";
return data;
},
// 渲染后置处理
afterRender(data) {},
//表单提交前
beforeSubmit(data) {
console.log("beforeSubmit data",data)
let ids=this.datumCurTableData.map(i=>i.id);
this.form.oneDatumIds=ids.join(",")
this.form.valid=0;
this.form.sort=0;
return data
},
//弹窗物料列表搜索事件-查询
datumTableSearchConfirm() {
this.getMateriaTableData();
},
//弹窗物料列表搜索事件-清空
datumTableSearchClear() {
this.searchform = {};
this.getMateriaTableData();
},
handleSizeChange(currSize) {
console.log("currSize=" + currSize);
this.datumTable.prePageResult = currSize;
this.getDatumTableData();
},
handleCurrentChange(currPage) {
console.log("currPage=" + currPage);
this.datumTable.currPage = currPage;
this.getDatumTableData();
},
//刷新选择材料弹窗 材料列表
getMateriaTableData() {
//初始花query:默认查询启用物料
const query = {
"pageInfo.currPage": this.datumTable.currPage,
"pageInfo.prePageResult": this.datumTable.prePageResult,
};
//弹窗材料列表搜索条件name
if (this.searchform.materialName) {
query.materialName = this.searchform.materialName;
}
this.$post("/datum/list", query).then(({ data }) => {
this.datumTableData = data.result;
this.datumTable.currPage = data.pageInfo.currPage;
this.datumTable.prePageResult = data.pageInfo.prePageResult;
this.datumTable.totalResult = data.pageInfo.totalResult;
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
selectDatum() {
//清空物料选择弹窗搜索条件
this.searchform = {};
this.getMateriaTableData();
this.datumDialog.visible = true;
},
selectDatumConfirm() {
//清空物料选择弹窗搜索条件
this.searchform = {};
this.datumDialog.visible = false;
this.datumCurTableData = this.datumTags;
},
handleDelete(index, row) {
this.handleClose(row.id)
let tmpArrs = [];
for (let item of this.datumCurTableData) {
if (item.id === row.id) {
continue;
}
tmpArrs.push(item);
}
this.datumCurTableData = tmpArrs;
},
handleAdd(index, row) {
this.datumTags.push(row);
this.datumTags = this.unique(this.datumTags, "id");
},
handleClose(tag) {
let tmpArrs = [];
for (let item of this.datumTags) {
if (item.id === tag) {
continue;
}
tmpArrs.push(item);
}
this.datumTags = tmpArrs;
},
unique(arr, attr) {
const res = new Map();
return arr.filter((item) => {
var attrItem = item[attr];
return !res.has(attrItem) && res.set(attrItem, 1);
});
},
formatterDict(row, column, val) {
const key = column.property;
if (this.dict && this.dict[key]) {
const dict = this.dict[key];
return dict[val] || val;
}
return val;
},
},
data() {
return {
datumTags: [],
datumCurTableData: [],
datumTableData: [],
searchform: { materialName: "" },
datumTable: {
totalResult: "",
prePageResult: "",
currPage: "",
},
datumDialog: {
visible: false,
innerVisible: false,
},
rules: {
tname: [
{ max: 255, message: "最多只能录入255个字符", trigger: "blur" },
],
qrcode: [
{ max: 128, message: "最多只能录入128个字符", trigger: "blur" },
],
matterIds: [
{ max: 128, message: "最多只能录入128个字符", trigger: "blur" },
],
updatetime: [
{ required: true, message: "请输入变更时间", trigger: "blur" },
],
updateUser: [
{
required: true,
message: "请输入变更用户loginName",
trigger: "blur",
},
{ max: 50, message: "最多只能录入50个字符", trigger: "blur" },
],
},
};
},
};
</script>
<style lang="less">
.pagination-wapper {
background: #fff;
margin-top: 10px;
.el-pagination {
margin-left: auto;
}
}
.el-scrollbar__wrap {
overflow-x: hidden;
}
</style>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "分类名称", prop: "name"},
{label: "父级选项id", prop: "optionids"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "选项名称", prop: "name"},
{label: "备注", prop: "summary"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="一件事问题表id" prop="classifyId" v-model="form.classifyId" placeholder="请输入一件事问题表id"/>
<Field label="一件事下个问题id" prop="classifyNextId" v-model="form.classifyNextId" placeholder="请输入一件事下个问题id"/>
<Field label="选项名称" prop="name" v-model="form.name" placeholder="请输入选项名称"/>
<Field label="是否最终节点 0否 1是" prop="isend" v-model="form.isend" placeholder="请输入是否最终节点 0否 1是"/>
<Field label="基本信息模板id" prop="basicsinfoId" v-model="form.basicsinfoId" placeholder="请输入基本信息模板id"/>
<Field label="申请条件id" prop="acceptId" v-model="form.acceptId" placeholder="请输入申请条件id"/>
<Field label="办理流程id" prop="flowlimitId" v-model="form.flowlimitId" placeholder="请输入办理流程id"/>
<Field label="事项关联id" prop="matterId" v-model="form.matterId" placeholder="请输入事项关联id"/>
<Field label="材料id" prop="datumId" v-model="form.datumId" placeholder="请输入材料id"/>
<Field label="备注类型 1常规备注 2终结备注" prop="summaryType" v-model="form.summaryType" placeholder="请输入备注类型 1常规备注 2终结备注"/>
<Field label="备注" prop="summary" v-model="form.summary" placeholder="请输入备注"/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
rules: {
name:[
{max: 255, message: '最多只能录入255个字符', trigger: 'blur'}],
summary:[
{max: 256, message: '最多只能录入256个字符', trigger: 'blur'}],
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'},
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "基础信息json", prop: "basicsjson"},
{label: "申请条件json", prop: "acceptjson"},
{label: "办理流程json", prop: "flowlimitjson"},
{label: "最终选择的材料id one_datum", prop: "onedatumids"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="一件事分类表id" prop="classifyId" v-model="form.classifyId" placeholder="请输入一件事分类表id"/>
<Field label="基础信息json" prop="basicsJson" v-model="form.basicsJson" placeholder="请输入基础信息json"/>
<Field label="申请条件json" prop="acceptJson" v-model="form.acceptJson" placeholder="请输入申请条件json"/>
<Field label="办理流程json" prop="flowlimitJson" v-model="form.flowlimitJson" placeholder="请输入办理流程json"/>
<Field label="最终选择的材料id one_datum" prop="oneDatumIds" v-model="form.oneDatumIds" placeholder="请输入最终选择的材料id one_datum"/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
rules: {
basicsJson:[{required: true, message: '请输入基础信息json', trigger: 'blur'},
{max: 65535, message: '最多只能录入65535个字符', trigger: 'blur'}],
acceptJson:[{required: true, message: '请输入申请条件json', trigger: 'blur'},
{max: 65535, message: '最多只能录入65535个字符', trigger: 'blur'}],
flowlimitJson:[{required: true, message: '请输入办理流程json', trigger: 'blur'},
{max: 65535, message: '最多只能录入65535个字符', trigger: 'blur'}],
oneDatumIds:[{required: true, message: '请输入最终选择的材料id one_datum', trigger: 'blur'},
{max: 65535, message: '最多只能录入65535个字符', trigger: 'blur'}],
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'},
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="一件事表 one_basics id" prop="basicsId" v-model="form.basicsId" placeholder="请输入一件事表 one_basics id"/>
<Field label="分类名称" prop="name" v-model="form.name" placeholder="请输入分类名称"/>
<Field label="题目类型 1单选 2多选" prop="type" v-model="form.type" placeholder="请输入题目类型 1单选 2多选"/>
<Field label="是否必答 0否 1是" prop="ismust" v-model="form.ismust" placeholder="请输入是否必答 0否 1是"/>
<Field label="级数" prop="level" v-model="form.level" placeholder="请输入级数"/>
<Field label="父级选项id" prop="optionIds" v-model="form.optionIds" placeholder="请输入父级选项id"/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
rules: {
name:[
{max: 255, message: '最多只能录入255个字符', trigger: 'blur'}],
optionIds:[
{max: 20, message: '最多只能录入20个字符', trigger: 'blur'}],
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'},
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "上传资料地址", prop: "file"},
{label: "上传时间", prop: "uploadtime", formatter: this.formatterDate},
{label: "不通过原因", prop: "summary"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="附件ID" prop="tid" v-model="form.tid" placeholder="请输入附件ID"/>
<Field label="材料id 政务网" prop="datumid" v-model="form.datumid" placeholder="请输入材料id 政务网"/>
<Field label="用户事项id(gra_matterdatum的id)" prop="fdatumid" v-model="form.fdatumid" placeholder="请输入用户事项id(gra_matterdatum的id)"/>
<Field label="上传资料地址" prop="file" v-model="form.file" placeholder="请输入上传资料地址"/>
<Field label="上传时间" prop="uploadtime" v-model="form.uploadtime" placeholder="请输入上传时间"/>
<Field label="状态 1资料上传 2确认提交" prop="type" v-model="form.type" placeholder="请输入状态 1资料上传 2确认提交"/>
<Field label="审核是否不通过 0待审核 1不通过 2通过" prop="examine" v-model="form.examine" placeholder="请输入审核是否不通过 0待审核 1不通过 2通过"/>
<Field label="不通过原因" prop="summary" v-model="form.summary" placeholder="请输入不通过原因"/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
rules: {
file:[
{max: 255, message: '最多只能录入255个字符', trigger: 'blur'}],
uploadtime:[],
summary:[{required: true, message: '请输入不通过原因', trigger: 'blur'},
{max: 65535, message: '最多只能录入65535个字符', trigger: 'blur'}],
updatetime:[],
updateUser:[
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "材料名", prop: "materialname"},
{label: "材料地址", prop: "yburl"},
{label: "填报须知", prop: "remarksub"},
{label: "受理标准", prop: "remark"},
{label: "要求提供材料的依据", prop: "clausecontent"},
{label: "备注", prop: "summary"},
{label: "变更时间", prop: "updatetime", formatter: this.formatterDate},
{label: "变更用户loginName", prop: "updateuser"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="材料名" prop="materialName" v-model="form.materialName" placeholder="请输入材料名"/>
<Field label="基础表one_basics id" prop="basicsId" v-model="form.basicsId" placeholder="请输入基础表one_basics id"/>
<Field label="事项表yth_matter id 表示从一体化获取的材料" prop="matterid" v-model="form.matterid" placeholder="请输入事项表yth_matter id 表示从一体化获取的材料"/>
<Field label="材料表yth_datum id 表示从一体化获取的材料" prop="datumId" v-model="form.datumId" placeholder="请输入材料表yth_datum id 表示从一体化获取的材料"/>
<Field label="材料形式" prop="materialProperty" v-model="form.materialProperty" placeholder="请输入材料形式"/>
<Field label="是否必交,0 否 1 是 默认0" prop="isMust" v-model="form.isMust" placeholder="请输入是否必交,0 否 1 是 默认0"/>
<Field label="材料类型" prop="materialType" v-model="form.materialType" placeholder="请输入材料类型"/>
<Field label="电子材料格式" prop="electronicgs" v-model="form.electronicgs" placeholder="请输入电子材料格式"/>
<Field label="材料来源渠道" prop="materialSource" v-model="form.materialSource" placeholder="请输入材料来源渠道"/>
<Field label="纸质材料份数" prop="paperNum" v-model="form.paperNum" placeholder="请输入纸质材料份数"/>
<Field label="纸质材料规格" prop="paperGg" v-model="form.paperGg" placeholder="请输入纸质材料规格"/>
<Field label="减免模式" prop="jianmMs" v-model="form.jianmMs" placeholder="请输入减免模式"/>
<Field label="盖章方式" prop="sealWay" v-model="form.sealWay" placeholder="请输入盖章方式"/>
<Field label="是否减免" prop="isjianm" v-model="form.isjianm" placeholder="请输入是否减免"/>
<Field label="材料是否容缺" prop="isLack" v-model="form.isLack" placeholder="请输入材料是否容缺"/>
<Field label="材料地址" prop="ybUrl" v-model="form.ybUrl" placeholder="请输入材料地址"/>
<Field label="来源渠道说明" prop="materialSourceSm" v-model="form.materialSourceSm" placeholder="请输入来源渠道说明"/>
<Field label="填报须知" prop="remarkSub" v-model="form.remarkSub" placeholder="请输入填报须知"/>
<Field label="受理标准" prop="remark" v-model="form.remark" placeholder="请输入受理标准"/>
<Field label="要求提供材料的依据" prop="clauseContent" v-model="form.clauseContent" placeholder="请输入要求提供材料的依据"/>
<Field label="备注" prop="summary" v-model="form.summary" placeholder="请输入备注"/>
<Field label="1正常 2删除" prop="delete" v-model="form.delete" placeholder="请输入1正常 2删除"/>
<Field label="变更时间" prop="updateTime" v-model="form.updateTime" placeholder="请输入变更时间"/>
<Field label="变更用户loginName" prop="updateUser" v-model="form.updateUser" placeholder="请输入变更用户loginName"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
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'}],
updatetime:[{required: true, message: '请输入变更时间', trigger: 'blur'},],
updateUser:[{required: true, message: '请输入变更用户loginName', trigger: 'blur'},
{max: 50, message: '最多只能录入50个字符', trigger: 'blur'}],
}
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notAdd />
</div>
</template>
<script>
import { finishedList, getDeployment, delDeployment, addDeployment, updateDeployment, exportDeployment, revokeProcess } from "@/api/flowable/finished";
import table from "@/assets/mixins/table";
export default {
mixins: [table],
methods: {
/** 查询流程定义列表 */
getList() {
// this.loading = true;
// finishedList(this.queryParams).then(response => {
// this.finishedList = response.data.records;
// this.total = response.data.total;
// this.loading = false;
// });
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
name: null,
category: null,
key: null,
tenantId: null,
deployTime: null,
derivedFrom: null,
derivedFromRoot: null,
parentDeploymentId: null,
engineVersion: null
};
this.resetForm("form");
},
setIcon(val){
if (val){
return "el-icon-check";
}else {
return "el-icon-time";
}
},
setColor(val){
if (val){
return "#2bc418";
}else {
return "#b3bdbb";
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加流程定义";
},
/** 流程流转记录 */
handleFlowRecord(row){
this.$router.push({ path: '/flowable/task/record/index',
query: {
procInsId: row.procInsId,
deployId: row.deployId,
taskId: row.taskId,
finished: false
}})
},
/** 撤回任务 */
handleRevoke(row){
const params = {
instanceId: row.procInsId
}
revokeProcess(params).then( res => {
this.msgSuccess(res.msg);
this.getList();
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getDeployment(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改流程定义";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
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();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除流程定义编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delDeployment(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有流程定义数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportDeployment(queryParams);
}).then(response => {
this.download(response.msg);
})
}
},
data() {
return {
config: {
search: [
{
name: "name",
type: "text",
label: "名称",
},
],
columns: [
{
type: "selection",
width: 60,
},
{
prop: "taskId",
label: "任务编号",
},
{
prop: "procDefName",
label: "流程名称",
},
{
prop: "taskName",
label: "任务节点",
},
{
prop: "procDefVersion",
label: "流程版本",
formatter: (row) => {
return <el-tag size="medium">v{row.procDefVersion}</el-tag>;
},
},
{
prop: "startUserName",
label: "流程发起人",
formatter: (row) => {
return (
<label>
{row.startUserName}
</label>
);
},
},
{
prop: "createTime",
label: "接收时间",
width: 140,
formatter: this.formatterDate,
},
{
prop: "finishTime",
label: "审批时间",
width: 140,
formatter: this.formatterDate,
},
{
prop: "duration",
label: "耗时",
},
{
label: "操作",
width: 180,
formatter: (row) => {
return (
<el-row>
<el-button
size="mini"
type="text"
icon="el-icon-tickets"
onClick={() => {
this.handleFlowRecord(row);
}}
>
流转记录
</el-button>
<span></span>
<el-button
size="mini"
type="text"
icon="el-icon-tickets"
onClick={() => {
this.handleRevoke(row);
}}
>
撤回
</el-button>
</el-row>
);
},
},
],
},
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notAdd notDel>
</LayoutTable>
</div>
</template>
<script>
import {
todoList,
complete,
returnList,
returnTask,
rejectTask,
getDeployment,
delDeployment,
exportDeployment,
} from "@/api/flowable/todo";
import table from "@/assets/mixins/table";
import SockJS from "sockjs-client";
import Stomp from "stompjs";
export default {
name: "Deploy",
components: {},
mixins: [table],
async created() {
// 接收消息
const getsocketData = e => { // 创建接收消息函数
const data = e && e.detail.data
console.log(data)
}
this.getsocketData=getsocketData;
// 注册监听事件
window.addEventListener('onmessageWS', getsocketData)
},
mounted() {
},
beforeDestroy: function () {
// 页面离开时断开连接,清除定时器
window.removeEventListener('onmessageWS', this.getsocketData)
},
methods: {
// 跳转到处理页面
handleProcess(row) {
this.$router.push({
path: "/flowable/task/record/index",
query: {
procInsId: row.procInsId,
deployId: row.deployId,
taskId: row.taskId,
finished: true,
},
});
},
/** 新增按钮操作 */
handleAdd() {
console.log("新增按钮操作");
this.reset();
this.open = true;
this.title = "添加流程定义";
},
/** 修改按钮操作 */
handleUpdate(row) {
console.log("修改按钮操作!");
// this.reset();
// const id = row.id || this.ids
// getDeployment(id).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改流程定义";
// });
},
/** 删除按钮操作 */
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.getList();
this.msgSuccess("删除成功");
});
},
/** 导出按钮操作 */
handleExport() {
// const queryParams = this.queryParams;
// this.$confirm('是否确认导出所有流程定义数据项?', "警告", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
// type: "warning"
// }).then(function() {
// return exportDeployment(queryParams);
// }).then(response => {
// this.download(response.msg);
// })
},
initWebSocket() {
console.log("00000000000");
this.connection();
let that = this;
// 断开重连机制,尝试发送消息,捕获异常发生时重连
this.timer = setInterval(() => {
try {
that.stompClient.send("test");
} catch (err) {
console.log("断线了: " + err);
that.connection();
}
}, 5000);
},
connection() {
let url=""+this.$cookie.getItem("pin");
// 建立连接对象
let socket = new SockJS("http://plm.testnew.com:8081/");
// 获取STOMP子协议的客户端对象
this.stompClient = Stomp.over(socket);
// 定义客户端的认证信息,按需求配置
let headers = {
Authorization: "",
};
// 向服务器发起websocket连接
this.stompClient.connect(
headers,
() => {
this.stompClient.subscribe(
"/topic/public",
(msg) => {
// 订阅服务端提供的某个topic
console.log("广播成功");
console.log(msg); // msg.body存放的是服务端发送给我们的信息
},
headers
);
this.stompClient.send(
"/app/chat.addUser",
headers,
JSON.stringify({ sender: "", chatType: "JOIN" })
); //用户加入接口
},
(err) => {
// 连接发生错误时的处理函数
console.log("失败");
console.log(err);
}
);
}, //连接 后台
disconnect() {
if (this.stompClient) {
this.stompClient.disconnect();
}
}, // 断开连接
},
data() {
return {
getsocketData:null,
stompClient: "",
timer: "",
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 流程定义表格数据
definitionList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
formConfOpen: false,
formTitle: "",
formDeployOpen: false,
formDeployTitle: "",
formList: [],
formConf: {}, // 默认表单数据
// 表单参数
form: {},
// 表单校验
rules: {},
config: {
search: [
{
name: "name",
type: "text",
label: "名称",
},
],
columns: [
{
type: "selection",
width: 60,
},
{
prop: "taskId",
label: "任务编号",
},
{
prop: "procDefName",
label: "流程名称",
},
{
prop: "taskName",
label: "任务节点",
},
{
prop: "procDefVersion",
label: "流程版本",
formatter: (row) => {
return <el-tag size="medium">v{row.procDefVersion}</el-tag>;
},
},
{
prop: "startUserName",
label: "流程发起人",
formatter: this.formatter,
},
{
prop: "createTime",
label: "接收时间",
width: 140,
formatter: this.formatterDate,
},
{
label: "操作",
width: 180,
formatter: (row) => {
return (
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
onClick={() => {
this.handleProcess(row);
}}
>
处理
</el-button>
);
},
},
],
},
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notSearch />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
created() {
const { basicsId } = this.$route.query;
this.config.addQuery = { basicsId: basicsId };
},
methods: {
beforeRender(data) {
return data;
},
formterApplyStr(arrs) {
let temp = [];
for (let i = 0; i < arrs.length; i++) {
let str = "";
str += i + 1 + ": " + arrs[i].content + "\n";
temp.push(str);
}
return temp.join("");
},
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", width: 60 },
{ label: "模板标题", prop: "title",width:280 },
{
label: "办理流程",
prop: "content",
formatter: (row) => {
let content = this.formterApplyStr(JSON.parse(row.content));
return <span style="white-space: pre-wrap">{content}</span>;
},
},
{
label: "操作",
width: 180,
formatter: (row) => {
return (
<div>
<el-button
type="primary"
icon="el-icon-edit"
round
size="mini"
onClick={() => {
this.toEdit(row);
}}
>
编辑
</el-button>
</div>
);
},
},
],
},
};
},
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-dialog
:title="flowDialog.title"
:visible.sync="flowDialog.visible"
width="800px"
append-to-body
>
<!--表单添加-->
<el-form label-width="80px">
<div>
<el-button size="mini" plain type="success" @click="addListRow()"
>新增办理流程</el-button
>
<el-table
:data="dynamicForm.options"
border
style="width: 100%; margin-top: 15px"
>
<el-table-column label="内容" align="center">
<template slot-scope="scope">
<el-form-item
label-width="0"
:prop="'options.' + scope.$index + '.content'"
>
<el-input
type="textarea"
v-model="scope.row.content"
placeholder="请输入内容"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="操作" width="160" align="center">
<template slot-scope="scope">
<el-form-item label-width="0">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handTableDelete(scope.$index, scope.row)"
>删除</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="flowConfirm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-form
:model="form"
:loading="loading"
:rules="rules"
size="small"
style="width: 100%"
label-width="120px"
ref="form"
>
<el-row>
<Field
label="模板标题"
prop="title"
v-model="form.title"
:span="14"
placeholder="请输入模板标题"
/>
<el-col span="12">
<el-form-item label="办理流程" class="my-form-field">
<el-button @click.prevent="handEditFlow(form.content)"
>编辑办理流程</el-button
>
<br />
<span style="white-space: pre-wrap">{{ content }}</span>
</el-form-item>
</el-col>
</el-row>
<form-buttons @submit="submitForm" />
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
created() {
const { basicsId } = this.$route.query;
this.form.basicsId = basicsId;
},
methods: {
beforeRender(data) {
if (data.entity.content && data.entity.content.length > 0) {
this.dynamicForm.options = JSON.parse(data.entity.content);
this.content = this.formterFlowStr(this.dynamicForm.options);
}
return data;
},
handTableDelete(index, val) {
this.dynamicForm.options.splice(index, 1);
},
handEditFlow(val) {
this.flowDialog.visible = true;
},
flowConfirm() {
//确定 组装qa
this.content = this.formterFlowStr(this.dynamicForm.options);
this.form.content = JSON.stringify(this.dynamicForm.options);
this.flowDialog.visible = false;
},
formterFlowStr(arrs) {
let temp = [];
for (let i = 0; i < arrs.length; i++) {
let str = "";
str += i + 1 + ": " + arrs[i].content + "\n";
temp.push(str);
}
return temp.join("");
},
cancel() {
this.flowDialog.visible = false;
},
addListRow() {
this.dynamicForm.options.push({
content: "",
});
},
},
data() {
return {
flowDialog: {
visible: false,
title: "办理流程",
},
content: "",
dynamicForm: {
options: [],
},
rules: {
title: [{ max: 64, message: "最多只能录入64个字符", trigger: "blur" }],
content: [
{ required: true, message: "请输入办理流程", trigger: "blur" },
{ max: 65535, message: "最多只能录入65535个字符", trigger: "blur" },
]
},
};
},
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "ID", prop: "id", formatter: this.formatterString},
{label: "姓名", prop: "userName"},
{label: "身份证号", prop: "idCard"},
{label: "手机号", prop: "phone"},
{label: "居住区域", prop: "area"},
{label: "详细地址", prop: "address"},
{label: "住房类型", prop: "housingType"},
{label: "是否有新冠肺炎相关症状", prop: "isPneumonia"},
{label: "当前体温", prop: "curTemperature"},
{label: "图片", prop: "pic"},
{label: "创建人ID", prop: "createUserId", formatter: this.formatterString},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="姓名" prop="userName" v-model="form.userName" placeholder="请输入姓名"/>
<Field label="身份证号" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号"/>
<Field label="手机号" prop="phone" v-model="form.phone" placeholder="请输入手机号"/>
<Field label="居住区域" prop="area" v-model="form.area" placeholder="请输入居住区域"/>
<Field label="详细地址" prop="address" v-model="form.address" placeholder="请输入详细地址"/>
<Field label="住房类型" prop="housingType" v-model="form.housingType" placeholder="请输入住房类型"/>
<Field label="是否有新冠肺炎相关症状" prop="isPneumonia" v-model="form.isPneumonia" placeholder="请输入是否有新冠肺炎相关症状"/>
<Field label="当前体温" prop="curTemperature" v-model="form.curTemperature" placeholder="请输入当前体温"/>
<Field label="图片" prop="pic" v-model="form.pic" placeholder="请输入图片"/>
<Field label="创建人ID" prop="createUserId" v-model="form.createUserId" placeholder="请输入创建人ID"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
};
}
};
</script>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
</div>
</template>
<script>
import table from "@/assets/mixins/table";
export default {
mixins: [table],
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{label: "主键ID", prop: "id", formatter: this.formatterString},
{label: "实施清单名称", prop: "eventName"},
{label: "实施清单编码", prop: "eventCode"},
{label: "申请人属性", prop: "applicantAttributes"},
{label: "申请人证件类型", prop: "applicantCardType"},
{label: "申请人姓名", prop: "applicantName"},
{label: "申请人证件号码", prop: "applicantCardNumbe"},
{label: "申请人手机号码", prop: "applicantPhoneNumber"},
{label: "申请人性别", prop: "applicantSex"},
{label: "机构名称", prop: "organizationName"},
{label: "机构地址", prop: "organizationAddress"},
{label: "机构性质", prop: "organizationStructure"},
{label: "机构证件类型", prop: "organizationCardType"},
{label: "机构证件编码", prop: "organizationCardNumber"},
{label: "机构代表人姓名", prop: "legalPerson"},
{label: "流程开始时间", prop: "processStartedTime", formatter: this.formatterDate},
{label: "流程结束时间", prop: "processStopTime", formatter: this.formatterDate},
{label: "地区编码", prop: "areaCode"},
{label: "部门编码", prop: "deptCode"},
{label: "办件状态", prop: "bizStatus"},
{label: "办件类型(默认0 网络办件)", prop: "doThingProperty"},
{label: "办件名称", prop: "affairName"},
{label: "申请方式默认 1 网上申请", prop: "applyType"},
{label: "是否收费", prop: "isCharge"},
{label: "申请件数;默认传1", prop: "applyNum"},
{label: "取件方式 默认1现场取件", prop: "pickupType"},
{label: "节点类型", prop: "nodeType"},
{label: "节点处理人姓名", prop: "curHandlerName"},
{label: "节点处理人id (默认-1)", prop: "addUserId"},
{label: "是否同意(默认 1是)", prop: "auditAdvice"},
{label: "拟办意见(默认 同意)", prop: "auditRemark"},
{label: "流程开始时间", prop: "genTime", formatter: this.formatterDate},
{label: "流程结束时间", prop: "completeTime", formatter: this.formatterDate},
{label: "是否推送(0 否 1是)", prop: "isReport"},
{label: "是否成功(0 否 1是)", prop: "isSuccess"},
{label: "推送失败原因", prop: "failReason"},
{label: "失败次数", prop: "failTimes"},
{label: "联系人姓名", prop: "contactName"},
{label: "联系人证件号码", prop: "contactIdCard"},
{label: "联系人证件类型", prop: "contactCardType"},
{label: "联系人联系方式", prop: "contactPhone"},
{label: "受理人姓名", prop: "acceptName"},
{label: "受理人身份证号码", prop: "acceptId"},
{label: "受理人手机号", prop: "acceptPhone"},
{label: "系统编码", prop: "systemCode"},
{label: "办件编码", prop: "officeCode"},
{label: "办件业务流水号", prop: "seriesNumber"},
{label: "流程状态名称", prop: "processStatusName"},
{label: "流程状态编码", prop: "processStatusCode"},
{
label: "操作",
width: 180,
formatter: row => {
return (
<div><el-button type="primary" icon="el-icon-edit" round size='mini' onClick={()=>{this.toEdit(row)}}>编辑</el-button></div>
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-form>
<el-form :model="form" :loading="loading" :rules="rules" size='small' style="width:100%" label-width='120px' ref="form">
<el-row>
<Field label="实施清单名称" prop="eventName" v-model="form.eventName" placeholder="请输入实施清单名称"/>
<Field label="实施清单编码" prop="eventCode" v-model="form.eventCode" placeholder="请输入实施清单编码"/>
<Field label="申请人属性" prop="applicantAttributes" v-model="form.applicantAttributes" placeholder="请输入申请人属性"/>
<Field label="申请人证件类型" prop="applicantCardType" v-model="form.applicantCardType" placeholder="请输入申请人证件类型"/>
<Field label="申请人姓名" prop="applicantName" v-model="form.applicantName" placeholder="请输入申请人姓名"/>
<Field label="申请人证件号码" prop="applicantCardNumbe" v-model="form.applicantCardNumbe" placeholder="请输入申请人证件号码"/>
<Field label="申请人手机号码" prop="applicantPhoneNumber" v-model="form.applicantPhoneNumber" placeholder="请输入申请人手机号码"/>
<Field label="申请人性别" prop="applicantSex" v-model="form.applicantSex" placeholder="请输入申请人性别"/>
<Field label="机构名称" prop="organizationName" v-model="form.organizationName" placeholder="请输入机构名称"/>
<Field label="机构地址" prop="organizationAddress" v-model="form.organizationAddress" placeholder="请输入机构地址"/>
<Field label="机构性质" prop="organizationStructure" v-model="form.organizationStructure" placeholder="请输入机构性质"/>
<Field label="机构证件类型" prop="organizationCardType" v-model="form.organizationCardType" placeholder="请输入机构证件类型"/>
<Field label="机构证件编码" prop="organizationCardNumber" v-model="form.organizationCardNumber" placeholder="请输入机构证件编码"/>
<Field label="机构代表人姓名" prop="legalPerson" v-model="form.legalPerson" placeholder="请输入机构代表人姓名"/>
<Field label="流程开始时间" prop="processStartedTime" v-model="form.processStartedTime" placeholder="请输入流程开始时间"/>
<Field label="流程结束时间" prop="processStopTime" v-model="form.processStopTime" placeholder="请输入流程结束时间"/>
<Field label="地区编码" prop="areaCode" v-model="form.areaCode" placeholder="请输入地区编码"/>
<Field label="部门编码" prop="dept_code" v-model="form.dept_code" placeholder="请输入部门编码"/>
<Field label="办件状态" prop="biz_status" v-model="form.biz_status" placeholder="请输入办件状态"/>
<Field label="办件类型(默认0 网络办件)" prop="do_thing_property" v-model="form.do_thing_property" placeholder="请输入办件类型(默认0 网络办件)"/>
<Field label="办件名称" prop="affair_name" v-model="form.affair_name" placeholder="请输入办件名称"/>
<Field label="申请方式默认 1 网上申请" prop="apply_type" v-model="form.apply_type" placeholder="请输入申请方式默认 1 网上申请"/>
<Field label="是否收费" prop="is_charge" v-model="form.is_charge" placeholder="请输入是否收费"/>
<Field label="申请件数;默认传1" prop="apply_num" v-model="form.apply_num" placeholder="请输入申请件数;默认传1"/>
<Field label="取件方式 默认1现场取件" prop="pickup_type" v-model="form.pickup_type" placeholder="请输入取件方式 默认1现场取件"/>
<Field label="节点类型" prop="node_type" v-model="form.node_type" placeholder="请输入节点类型"/>
<Field label="节点处理人姓名" prop="cur_handler_name" v-model="form.cur_handler_name" placeholder="请输入节点处理人姓名"/>
<Field label="节点处理人id (默认-1)" prop="add_user_id" v-model="form.add_user_id" placeholder="请输入节点处理人id (默认-1)"/>
<Field label="是否同意(默认 1是)" prop="audit_advice" v-model="form.audit_advice" placeholder="请输入是否同意(默认 1是)"/>
<Field label="拟办意见(默认 同意)" prop="audit_remark" v-model="form.audit_remark" placeholder="请输入拟办意见(默认 同意)"/>
<Field label="流程开始时间" prop="gen_time" v-model="form.gen_time" placeholder="请输入流程开始时间"/>
<Field label="流程结束时间" prop="complete_time" v-model="form.complete_time" placeholder="请输入流程结束时间"/>
<Field label="是否推送(0 否 1是)" prop="is_report" v-model="form.is_report" placeholder="请输入是否推送(0 否 1是)"/>
<Field label="是否成功(0 否 1是)" prop="is_success" v-model="form.is_success" placeholder="请输入是否成功(0 否 1是)"/>
<Field label="推送失败原因" prop="fail_reason" v-model="form.fail_reason" placeholder="请输入推送失败原因"/>
<Field label="失败次数" prop="fail_times" v-model="form.fail_times" placeholder="请输入失败次数"/>
<Field label="联系人姓名" prop="contact_name" v-model="form.contact_name" placeholder="请输入联系人姓名"/>
<Field label="联系人证件号码" prop="contact_id_card" v-model="form.contact_id_card" placeholder="请输入联系人证件号码"/>
<Field label="联系人证件类型" prop="contact_card_type" v-model="form.contact_card_type" placeholder="请输入联系人证件类型"/>
<Field label="联系人联系方式" prop="contact_phone" v-model="form.contact_phone" placeholder="请输入联系人联系方式"/>
<Field label="受理人姓名" prop="accept_name" v-model="form.accept_name" placeholder="请输入受理人姓名"/>
<Field label="受理人身份证号码" prop="accept_id" v-model="form.accept_id" placeholder="请输入受理人身份证号码"/>
<Field label="受理人手机号" prop="accept_phone" v-model="form.accept_phone" placeholder="请输入受理人手机号"/>
<Field label="系统编码" prop="systemCode" v-model="form.systemCode" placeholder="请输入系统编码"/>
<Field label="办件编码" prop="officeCode" v-model="form.officeCode" placeholder="请输入办件编码"/>
<Field label="办件业务流水号" prop="seriesNumber" v-model="form.seriesNumber" placeholder="请输入办件业务流水号"/>
<Field label="流程状态名称" prop="processStatusName" v-model="form.processStatusName" placeholder="请输入流程状态名称"/>
<Field label="流程状态编码" prop="processStatusCode" v-model="form.processStatusCode" placeholder="请输入流程状态编码"/>
</el-row>
<form-buttons @submit='submitForm'/>
</el-form>
</layout-form>
</template>
<script>
import form from "@/assets/mixins/form";
export default {
mixins: [form],
data() {
return {
};
}
};
</script>
\ No newline at end of file
......@@ -13,6 +13,7 @@ module.exports = {
devServer: {
disableHostCheck: true,
port: 8081,
hot: true,//自动保存
proxy: {
'/m': {
target: 'http://127.0.0.1:17011',
......
package com.mortals.xhx.base.framework.aspect;
/**
* @author: zxfei
* @date: 2021/8/13 14:47
* @description:
**/
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.mortals.framework.common.code.YesNo;
import com.mortals.framework.service.ICacheService;
import lombok.extern.slf4j.Slf4j;
import net.sf.cglib.beans.BeanMap;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.MethodParameter;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.core.io.InputStreamSource;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* Spring boot 控制器 请求日志,方便代码调试
*
* @author zxfei
*/
@Slf4j
@Aspect
@Configuration(proxyBeanMethods = false)
@Profile({"develop", "test"})
public class RequestLogAspect {
private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer();
/**
* AOP 环切 控制器 R 返回值
*
* @param point JoinPoint
* @return Object
* @throws Throwable 异常
*/
@Around("execution(* com.mortals..*Controller.*(..)) || execution(* com.mortals..*Feign.*(..))")
// @Around(
// "execution(!static com.mortals..*Controller.*(..)) && " +
// "(@within(org.springframework.stereotype.Controller) || " +
// "@within(org.springframework.web.bind.annotation.RestController))"
// )
public Object aroundApi(ProceedingJoinPoint point) throws Throwable {
MethodSignature ms = (MethodSignature) point.getSignature();
Method method = ms.getMethod();
Object[] args = point.getArgs();
// 请求参数处理
final Map<String, Object> paraMap = new HashMap<>(16);
for (int i = 0; i < args.length; i++) {
// 读取方法参数
MethodParameter methodParam = getMethodParameter(method, i);
// PathVariable 参数跳过
PathVariable pathVariable = methodParam.getParameterAnnotation(PathVariable.class);
if (pathVariable != null) {
continue;
}
RequestBody requestBody = methodParam.getParameterAnnotation(RequestBody.class);
String parameterName = methodParam.getParameterName();
if(parameterName.equals("binder")){
continue;
}
Object value = args[i];
// 如果是body的json则是对象
if (requestBody != null && value != null) {
paraMap.putAll(BeanMap.create(value));
continue;
}
// 处理 List
if (value instanceof List) {
value = ((List) value).get(0);
}
// 处理 参数
if (value instanceof HttpServletRequest) {
paraMap.putAll(((HttpServletRequest) value).getParameterMap());
} else if (value instanceof WebRequest) {
paraMap.putAll(((WebRequest) value).getParameterMap());
} else if (value instanceof MultipartFile) {
MultipartFile multipartFile = (MultipartFile) value;
String name = multipartFile.getName();
String fileName = multipartFile.getOriginalFilename();
paraMap.put(name, fileName);
} else if (value instanceof HttpServletResponse) {
} else if (value instanceof InputStream) {
} else if (value instanceof InputStreamSource) {
} else if (value instanceof List) {
List<?> list = (List<?>) value;
AtomicBoolean isSkip = new AtomicBoolean(false);
for (Object o : list) {
if ("StandardMultipartFile".equalsIgnoreCase(o.getClass().getSimpleName())) {
isSkip.set(true);
break;
}
}
if (isSkip.get()) {
paraMap.put(parameterName, "此参数不能序列化为json");
continue;
}
} else {
// 参数名
RequestParam requestParam = methodParam.getParameterAnnotation(RequestParam.class);
String paraName;
if (requestParam != null && StringUtils.isNotBlank(requestParam.value())) {
paraName = requestParam.value();
} else {
paraName = methodParam.getParameterName();
}
paraMap.put(paraName, value);
}
}
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest request = (requestAttributes == null) ? null : ((ServletRequestAttributes) requestAttributes).getRequest();
String requestURI = Objects.requireNonNull(request).getRequestURI();
String requestMethod = request.getMethod();
// 构建成一条长 日志,避免并发下日志错乱
StringBuilder beforeReqLog = new StringBuilder(300);
// 日志参数
List<Object> beforeReqArgs = new ArrayList<>();
//beforeReqLog.append("\n\n================ Request Start ================\n");
// 打印路由
beforeReqLog.append("Request ===> {}: {}");
beforeReqArgs.add(requestMethod);
beforeReqArgs.add(requestURI);
// 请求参数
if (paraMap.isEmpty()) {
beforeReqLog.append("\n");
} else {
beforeReqLog.append(" Parameters: {}\n");
beforeReqArgs.add(JSON.toJSONString(paraMap, SerializerFeature.DisableCircularReferenceDetect));
}
// 打印请求头
/* Enumeration<String> headers = request.getHeaderNames();
while (headers.hasMoreElements()) {
String headerName = headers.nextElement();
String headerValue = request.getHeader(headerName);
beforeReqLog.append("===Headers=== {} : {}\n");
beforeReqArgs.add(headerName);
beforeReqArgs.add(headerValue);
}*/
//beforeReqLog.append("================ Request End ================\n");
// 打印执行时间
long startNs = System.nanoTime();
log.info(beforeReqLog.toString(), beforeReqArgs.toArray());
// aop 执行后的日志
StringBuilder afterReqLog = new StringBuilder(200);
// 日志参数
List<Object> afterReqArgs = new ArrayList<>();
//afterReqLog.append("\n\n================ Response Start ================\n");
try {
Object result = point.proceed();
// 打印返回结构体
afterReqLog.append("Response===> {}\n");
afterReqArgs.add(StringEscapeUtils.unescapeJava(JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect)));
return result;
} finally {
long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs);
afterReqLog.append("=== {}: {} ({} ms)\n");
afterReqArgs.add(requestMethod);
afterReqArgs.add(requestURI);
afterReqArgs.add(tookMs);
//afterReqLog.append("================ Response End ================\n");
log.info(afterReqLog.toString(), afterReqArgs.toArray());
}
}
/**
* 获取方法参数信息
*
* @param method 方法
* @param parameterIndex 参数序号
* @return {MethodParameter}
*/
public MethodParameter getMethodParameter(Method method, int parameterIndex) {
MethodParameter methodParameter = new SynthesizingMethodParameter(method, parameterIndex);
methodParameter.initParameterNameDiscovery(PARAMETER_NAME_DISCOVERER);
return methodParameter;
}
@Autowired
private ICacheService cacheService;
public static void main(String[] args) {
String str="execution(* com.mortals..*Controller.*(..) && " +
"(@within(org.springframework.stereotype.Controller) || " +
"@within(org.springframework.web.bind.annotation.RestController))";
System.out.println(str);
}
}
\ No newline at end of file
package com.mortals.xhx.base.framework.config;
import com.mortals.framework.springcloud.config.web.BaseWebMvcConfigurer;
import com.mortals.xhx.base.framework.feign.HierarchicalContract;
import feign.Contract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author: zxfei
* @date: 2021/8/13 0:24
* @description:
**/
@Configuration
public class AccountConfig {
@Bean
public Contract feignContract() {
return new HierarchicalContract();
}
@Bean
public BaseWebMvcConfigurer getBaseWebMvc(){
return new BaseWebMvcConfigurer(false,null);
}
}
package com.mortals.xhx.base.framework.feign;
import feign.MethodMetadata;
import feign.Util;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.*;
import static org.springframework.core.annotation.AnnotationUtils.synthesizeAnnotation;
/**
* 解决feign不能多继承
* @author: zxfei
* @date: 2021/8/13 0:20
* @description:
**/
public class HierarchicalContract extends SpringMvcContract {
private ResourceLoader resourceLoader;
@Override
public List<MethodMetadata> parseAndValidateMetadata(final Class<?> targetType) {
Util.checkState(targetType.getTypeParameters().length == 0,
"Parameterized types unsupported: %s",
targetType.getSimpleName());
final Map<String, MethodMetadata> result = new LinkedHashMap<>();
for (final Method method : targetType.getMethods()) {
if (method.getDeclaringClass() == Object.class || (method.getModifiers() & Modifier.STATIC) != 0
|| Util.isDefault(method)) {
continue;
}
final MethodMetadata metadata = this.parseAndValidateMetadata(targetType, method);
Util.checkState(!result.containsKey(metadata.configKey()), "Overrides unsupported: %s", metadata.configKey());
result.put(metadata.configKey(), metadata);
}
return new ArrayList<>(result.values());
}
@Override
public MethodMetadata parseAndValidateMetadata(final Class<?> targetType, final Method method) {
final MethodMetadata methodMetadata = super.parseAndValidateMetadata(targetType, method);
final LinkedList<Class<?>> classHierarchy = new LinkedList<>();
classHierarchy.add(targetType);
this.findClass(targetType, method.getDeclaringClass(), classHierarchy);
classHierarchy.stream()
.map(this::processPathValue)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst()
.ifPresent((path) -> methodMetadata.template().insert(0, path));
return methodMetadata;
}
private Optional<String> processPathValue(final Class<?> clz) {
Optional<String> result = Optional.empty();
final RequestMapping classAnnotation = clz.getAnnotation(RequestMapping.class);
if (classAnnotation != null) {
final RequestMapping synthesizeAnnotation = synthesizeAnnotation(classAnnotation, clz);
// Prepend path from class annotation if specified
if (synthesizeAnnotation.value().length > 0) {
String pathValue = Util.emptyToNull(synthesizeAnnotation.value()[0]);
pathValue = this.resolveValue(pathValue);
if (!pathValue.startsWith("/")) {
pathValue = "/" + pathValue;
}
result = Optional.of(pathValue);
}
}
return result;
}
private String resolveValue(final String value) {
if (StringUtils.hasText(value) && this.resourceLoader instanceof ConfigurableApplicationContext) {
return ((ConfigurableApplicationContext) this.resourceLoader).getEnvironment().resolvePlaceholders(value);
}
return value;
}
@Override
protected void processAnnotationOnClass(final MethodMetadata data, final Class<?> clz) {
// skip this step
}
private boolean findClass(final Class<?> currentClass, final Class<?> searchClass,
final LinkedList<Class<?>> classHierarchy) {
if (currentClass == searchClass) {
return true;
}
final Class<?>[] interfaces = currentClass.getInterfaces();
for (final Class<?> currentInterface : interfaces) {
classHierarchy.add(currentInterface);
final boolean findClass = this.findClass(currentInterface, searchClass, classHierarchy);
if (findClass) {
return true;
}
classHierarchy.removeLast();
}
return false;
}
@Override
public void setResourceLoader(final ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
super.setResourceLoader(resourceLoader);
}
}
package com.mortals.xhx.base.framework.ws.handler;
import com.mortals.xhx.base.framework.ws.message.HeartBeatRequest;
import com.mortals.xhx.base.framework.ws.message.SendResponse;
import com.mortals.xhx.base.framework.ws.message.SendToOneRequest;
import com.mortals.xhx.base.framework.ws.message.SendToUserRequest;
import com.mortals.xhx.base.framework.ws.util.WebSocketUtil;
import org.apache.kafka.common.requests.HeartbeatRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketSession;
@Component
public class HeartBeatHandler implements MessageHandler<HeartBeatRequest> {
@Override
public void execute(WebSocketSession session, HeartBeatRequest message) {
// 这里,假装直接成功
SendResponse sendResponse = new SendResponse().setMsgId(message.getMsgId()).setCode(0);
WebSocketUtil.send(session, SendResponse.TYPE, sendResponse);
}
@Override
public String getType() {
return HeartBeatRequest.TYPE;
}
}
package com.mortals.xhx.base.framework.ws.message;
import com.alibaba.fastjson.JSON;
/**
* 心跳 Message
*/
public class HeartBeatRequest implements Message {
public static final String TYPE = "HEART_BEAT_REQUEST";
/**
* 消息编号
*/
private String msgId;
/**
* 内容
*/
private String content;
public String getMsgId() {
return msgId;
}
public HeartBeatRequest setMsgId(String msgId) {
this.msgId = msgId;
return this;
}
public String getContent() {
return content;
}
public HeartBeatRequest setContent(String content) {
this.content = content;
return this;
}
public static void main(String[] args) {
HeartBeatRequest heartBeatRequest = new HeartBeatRequest();
heartBeatRequest.setMsgId("123");
System.out.println(JSON.toJSONString(heartBeatRequest));
}
}
package com.mortals.xhx.module.accept.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.accept.model.AcceptEntity;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface AcceptDao extends ICRUDDao<AcceptEntity,Long>{
}
package com.mortals.xhx.module.accept.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.accept.dao.AcceptDao;
import com.mortals.xhx.module.accept.model.AcceptEntity;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("acceptDao")
public class AcceptDaoImpl extends BaseCRUDDaoMybatis<AcceptEntity,Long> implements AcceptDao {
}
package com.mortals.xhx.module.accept.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Accept
* date: 2021-8-18 14:24:46
*/
public class AcceptEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886313L;
/**
* 模板标题
*/
private String title;
/**
* 申请条件
*/
private String content;
/**
* 基础表one_basics id
*/
private Long basicsId;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public AcceptEntity(){
}
/**
* 获取 模板标题
* @return title
*/
public String getTitle() {
return this.title;
}
/**
* 设置 模板标题
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* 获取 申请条件
* @return content
*/
public String getContent() {
return this.content;
}
/**
* 设置 申请条件
* @param content
*/
public void setContent(String content) {
this.content = content;
}
/**
* 获取 基础表one_basics id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 基础表one_basics id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 变更时间
* @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 AcceptEntity) {
AcceptEntity tmp = (AcceptEntity) 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(",title:").append(getTitle())
.append(",content:").append(getContent())
.append(",basicsId:").append(getBasicsId())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.title = null;
this.content = null;
this.basicsId = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.accept.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Accept
* date: 2021-8-18 14:24:46
*/
public class AcceptQuery extends AcceptEntity{
private static final long serialVersionUID = 1629267886315L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 模板标题 */
private List<String> titleList;
/** 申请条件 */
private List<String> contentList;
/** 开始 基础表one_basics id */
private Long basicsIdStart;
/** 结束 基础表one_basics id */
private Long basicsIdEnd;
/** 增加 基础表one_basics id */
private Long basicsIdIncrement;
/** 基础表one_basics id */
private List <Long> basicsIdList;
/** 开始 变更时间 */
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<AcceptQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<AcceptQuery> andConditionList;
public AcceptQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 模板标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 模板标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 申请条件
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 申请条件
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 开始 基础表one_basics id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 基础表one_basics id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 基础表one_basics id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 基础表one_basics id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 基础表one_basics id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 基础表one_basics id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 基础表one_basics id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 基础表one_basics id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 开始 变更时间
* @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;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<AcceptQuery> 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<AcceptQuery> 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<AcceptQuery> 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<AcceptQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.accept.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.accept.model.AcceptEntity;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface AcceptService extends ICRUDService<AcceptEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.accept.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.accept.dao.AcceptDao;
import com.mortals.xhx.module.accept.model.AcceptEntity;
import com.mortals.xhx.module.accept.service.AcceptService;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("acceptService")
public class AcceptServiceImpl extends AbstractCRUDServiceImpl<AcceptDao, AcceptEntity, Long> implements AcceptService {
}
\ No newline at end of file
package com.mortals.xhx.module.accept.web;
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.accept.model.AcceptEntity;
import com.mortals.xhx.module.accept.service.AcceptService;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("accept")
public class AcceptController extends BaseCRUDJsonMappingController<AcceptService,AcceptForm,AcceptEntity,Long> {
public AcceptController(){
super.setFormClass(AcceptForm.class);
super.setModuleDesc("一件事申请条件");
}
}
\ No newline at end of file
package com.mortals.xhx.module.accept.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.accept.model.AcceptEntity;
import com.mortals.xhx.module.accept.model.AcceptQuery;
/**
* <p>Title: 一件事申请条件</p>
* <p>Description: AcceptForm </p>
* @author
* @version 1.0.0
*/
public class AcceptForm extends BaseCRUDFormLong<AcceptEntity> {
private AcceptEntity entity = new AcceptEntity();
private AcceptQuery query = new AcceptQuery();
public AcceptForm(){
}
@Override
public AcceptEntity getEntity() {
return entity;
}
public void setAccept(AcceptEntity entity) {
this.entity = entity;
}
@Override
public AcceptQuery getQuery() {
return query;
}
public void setQuery(AcceptQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.basics.model.BasicsEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface BasicsDao extends ICRUDDao<BasicsEntity,Long>{
}
package com.mortals.xhx.module.basics.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface BasicsDatumDao extends ICRUDDao<BasicsDatumEntity,Long>{
}
package com.mortals.xhx.module.basics.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.basics.model.BasicsInfoEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface BasicsInfoDao extends ICRUDDao<BasicsInfoEntity,Long>{
}
package com.mortals.xhx.module.basics.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.basics.dao.BasicsDao;
import com.mortals.xhx.module.basics.model.BasicsEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("basicsDao")
public class BasicsDaoImpl extends BaseCRUDDaoMybatis<BasicsEntity,Long> implements BasicsDao {
}
package com.mortals.xhx.module.basics.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.basics.dao.BasicsDatumDao;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("basicsDatumDao")
public class BasicsDatumDaoImpl extends BaseCRUDDaoMybatis<BasicsDatumEntity,Long> implements BasicsDatumDao {
}
package com.mortals.xhx.module.basics.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.basics.dao.BasicsInfoDao;
import com.mortals.xhx.module.basics.model.BasicsInfoEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("basicsInfoDao")
public class BasicsInfoDaoImpl extends BaseCRUDDaoMybatis<BasicsInfoEntity,Long> implements BasicsInfoDao {
}
package com.mortals.xhx.module.basics.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:BasicsDatum
* date: 2021-8-18 14:24:46
*/
public class BasicsDatumEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886345L;
/**
* 一件事基础表 one_basics id
*/
private Long basicsId;
/**
* 材料id
*/
private Long oneDatumIds;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public BasicsDatumEntity(){
}
/**
* 获取 一件事基础表 one_basics id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 一件事基础表 one_basics id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 材料id
* @return oneDatumIds
*/
public Long getOneDatumIds() {
return this.oneDatumIds;
}
/**
* 设置 材料id
* @param oneDatumIds
*/
public void setOneDatumIds(Long oneDatumIds) {
this.oneDatumIds = oneDatumIds;
}
/**
* 获取 变更时间
* @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 BasicsDatumEntity) {
BasicsDatumEntity tmp = (BasicsDatumEntity) 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(",basicsId:").append(getBasicsId())
.append(",oneDatumIds:").append(getOneDatumIds())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.basicsId = null;
this.oneDatumIds = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:BasicsDatum
* date: 2021-8-19 10:03:24
*/
public class BasicsDatumQuery extends BasicsDatumEntity{
private static final long serialVersionUID = 1629338604727L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 开始 一件事基础表 one_basics id */
private Long basicsIdStart;
/** 结束 一件事基础表 one_basics id */
private Long basicsIdEnd;
/** 增加 一件事基础表 one_basics id */
private Long basicsIdIncrement;
/** 一件事基础表 one_basics id */
private List <Long> basicsIdList;
/** 开始 材料id */
private Long oneDatumIdsStart;
/** 结束 材料id */
private Long oneDatumIdsEnd;
/** 增加 材料id */
private Long oneDatumIdsIncrement;
/** 材料id */
private List <Long> oneDatumIdsList;
/** 开始 变更时间 */
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<BasicsDatumQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<BasicsDatumQuery> andConditionList;
public BasicsDatumQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 开始 一件事基础表 one_basics id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 一件事基础表 one_basics id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 一件事基础表 one_basics id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 一件事基础表 one_basics id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 一件事基础表 one_basics id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 一件事基础表 one_basics id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 一件事基础表 one_basics id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 一件事基础表 one_basics id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 开始 材料id
* @return oneDatumIdsStart
*/
public Long getOneDatumIdsStart(){
return this.oneDatumIdsStart;
}
/**
* 设置 开始 材料id
* @param oneDatumIdsStart
*/
public void setOneDatumIdsStart(Long oneDatumIdsStart){
this.oneDatumIdsStart = oneDatumIdsStart;
}
/**
* 获取 结束 材料id
* @return oneDatumIdsEnd
*/
public Long getOneDatumIdsEnd(){
return this.oneDatumIdsEnd;
}
/**
* 设置 结束 材料id
* @param oneDatumIdsEnd
*/
public void setOneDatumIdsEnd(Long oneDatumIdsEnd){
this.oneDatumIdsEnd = oneDatumIdsEnd;
}
/**
* 获取 增加 材料id
* @return oneDatumIdsIncrement
*/
public Long getOneDatumIdsIncrement(){
return this.oneDatumIdsIncrement;
}
/**
* 设置 增加 材料id
* @param oneDatumIdsIncrement
*/
public void setOneDatumIdsIncrement(Long oneDatumIdsIncrement){
this.oneDatumIdsIncrement = oneDatumIdsIncrement;
}
/**
* 获取 材料id
* @return oneDatumIdsList
*/
public List<Long> getOneDatumIdsList(){
return this.oneDatumIdsList;
}
/**
* 设置 材料id
* @param oneDatumIdsList
*/
public void setOneDatumIdsList(List<Long> oneDatumIdsList){
this.oneDatumIdsList = oneDatumIdsList;
}
/**
* 获取 开始 变更时间
* @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 BasicsDatumQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public BasicsDatumQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public BasicsDatumQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public BasicsDatumQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public BasicsDatumQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 一件事基础表 one_basics id
* @param basicsId
*/
public BasicsDatumQuery basicsId(Long basicsId){
setBasicsId(basicsId);
return this;
}
/**
* 设置 开始 一件事基础表 one_basics id
* @param basicsIdStart
*/
public BasicsDatumQuery basicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
return this;
}
/**
* 设置 结束 一件事基础表 one_basics id
* @param basicsIdEnd
*/
public BasicsDatumQuery basicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
return this;
}
/**
* 设置 增加 一件事基础表 one_basics id
* @param basicsIdIncrement
*/
public BasicsDatumQuery basicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
return this;
}
/**
* 设置 一件事基础表 one_basics id
* @param basicsIdList
*/
public BasicsDatumQuery basicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
return this;
}
/**
* 设置 材料id
* @param oneDatumIds
*/
public BasicsDatumQuery oneDatumIds(Long oneDatumIds){
setOneDatumIds(oneDatumIds);
return this;
}
/**
* 设置 开始 材料id
* @param oneDatumIdsStart
*/
public BasicsDatumQuery oneDatumIdsStart(Long oneDatumIdsStart){
this.oneDatumIdsStart = oneDatumIdsStart;
return this;
}
/**
* 设置 结束 材料id
* @param oneDatumIdsEnd
*/
public BasicsDatumQuery oneDatumIdsEnd(Long oneDatumIdsEnd){
this.oneDatumIdsEnd = oneDatumIdsEnd;
return this;
}
/**
* 设置 增加 材料id
* @param oneDatumIdsIncrement
*/
public BasicsDatumQuery oneDatumIdsIncrement(Long oneDatumIdsIncrement){
this.oneDatumIdsIncrement = oneDatumIdsIncrement;
return this;
}
/**
* 设置 材料id
* @param oneDatumIdsList
*/
public BasicsDatumQuery oneDatumIdsList(List<Long> oneDatumIdsList){
this.oneDatumIdsList = oneDatumIdsList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public BasicsDatumQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public BasicsDatumQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public BasicsDatumQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public BasicsDatumQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public BasicsDatumQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public BasicsDatumQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public BasicsDatumQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public BasicsDatumQuery 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<BasicsDatumQuery> 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<BasicsDatumQuery> 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<BasicsDatumQuery> 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<BasicsDatumQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Basics
* date: 2021-8-18 14:24:45
*/
public class BasicsEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267885888L;
/**
* 一件事标题
*/
private String tname;
/**
* 二维码
*/
private String qrcode;
/**
* 事项关联id,
*/
private String matterIds;
/**
* 是否自主申报 0否 1是 默认0
*/
private Integer iszzsb;
/**
* 排序 倒序
*/
private Integer sort;
/**
* 状态 0正常 1删除
*/
private Integer valid;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public BasicsEntity(){
}
/**
* 获取 一件事标题
* @return tname
*/
public String getTname() {
return this.tname;
}
/**
* 设置 一件事标题
* @param tname
*/
public void setTname(String tname) {
this.tname = tname;
}
/**
* 获取 二维码
* @return qrcode
*/
public String getQrcode() {
return this.qrcode;
}
/**
* 设置 二维码
* @param qrcode
*/
public void setQrcode(String qrcode) {
this.qrcode = qrcode;
}
/**
* 获取 事项关联id,
* @return matterIds
*/
public String getMatterIds() {
return this.matterIds;
}
/**
* 设置 事项关联id,
* @param matterIds
*/
public void setMatterIds(String matterIds) {
this.matterIds = matterIds;
}
/**
* 获取 是否自主申报 0否 1是 默认0
* @return iszzsb
*/
public Integer getIszzsb() {
return this.iszzsb;
}
/**
* 设置 是否自主申报 0否 1是 默认0
* @param iszzsb
*/
public void setIszzsb(Integer iszzsb) {
this.iszzsb = iszzsb;
}
/**
* 获取 排序 倒序
* @return sort
*/
public Integer getSort() {
return this.sort;
}
/**
* 设置 排序 倒序
* @param sort
*/
public void setSort(Integer sort) {
this.sort = sort;
}
/**
* 获取 状态 0正常 1删除
* @return valid
*/
public Integer getValid() {
return this.valid;
}
/**
* 设置 状态 0正常 1删除
* @param valid
*/
public void setValid(Integer valid) {
this.valid = valid;
}
/**
* 获取 变更时间
* @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 BasicsEntity) {
BasicsEntity tmp = (BasicsEntity) 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(",tname:").append(getTname())
.append(",qrcode:").append(getQrcode())
.append(",matterIds:").append(getMatterIds())
.append(",iszzsb:").append(getIszzsb())
.append(",sort:").append(getSort())
.append(",valid:").append(getValid())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.tname = null;
this.qrcode = null;
this.matterIds = null;
this.iszzsb = null;
this.sort = null;
this.valid = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:BasicsInfo
* date: 2021-8-18 14:24:46
*/
public class BasicsInfoEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886259L;
/**
* 模板标题
*/
private String title;
/**
* 一件事基础表id
*/
private Long basicsId;
/**
* 办理机构
*/
private String jointInfoShow;
/**
* 法定时限
*/
private String legalTimeLimitShow;
/**
* 承诺时限
*/
private String promiseTimeLimitShow;
/**
* 是否收费,0,否,1是 默认0
*/
private Integer isChargesShow;
/**
* 收费金额
*/
private String charges;
/**
* 办公时间
*/
private String handleTimeShow;
/**
* 办公地址
*/
private String handlePlaceShow;
/**
* 咨询电话
*/
private String cousultingTelephoneShow;
/**
* 投诉电话
*/
private String supervisoryTelephoneShow;
/**
* 结果信息
*/
private String resultInfo;
/**
* 常见问题
*/
private String qa;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public BasicsInfoEntity(){
}
/**
* 获取 模板标题
* @return title
*/
public String getTitle() {
return this.title;
}
/**
* 设置 模板标题
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* 获取 一件事基础表id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 一件事基础表id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 办理机构
* @return jointInfoShow
*/
public String getJointInfoShow() {
return this.jointInfoShow;
}
/**
* 设置 办理机构
* @param jointInfoShow
*/
public void setJointInfoShow(String jointInfoShow) {
this.jointInfoShow = jointInfoShow;
}
/**
* 获取 法定时限
* @return legalTimeLimitShow
*/
public String getLegalTimeLimitShow() {
return this.legalTimeLimitShow;
}
/**
* 设置 法定时限
* @param legalTimeLimitShow
*/
public void setLegalTimeLimitShow(String legalTimeLimitShow) {
this.legalTimeLimitShow = legalTimeLimitShow;
}
/**
* 获取 承诺时限
* @return promiseTimeLimitShow
*/
public String getPromiseTimeLimitShow() {
return this.promiseTimeLimitShow;
}
/**
* 设置 承诺时限
* @param promiseTimeLimitShow
*/
public void setPromiseTimeLimitShow(String promiseTimeLimitShow) {
this.promiseTimeLimitShow = promiseTimeLimitShow;
}
/**
* 获取 是否收费,0,否,1是 默认0
* @return isChargesShow
*/
public Integer getIsChargesShow() {
return this.isChargesShow;
}
/**
* 设置 是否收费,0,否,1是 默认0
* @param isChargesShow
*/
public void setIsChargesShow(Integer isChargesShow) {
this.isChargesShow = isChargesShow;
}
/**
* 获取 收费金额
* @return charges
*/
public String getCharges() {
return this.charges;
}
/**
* 设置 收费金额
* @param charges
*/
public void setCharges(String charges) {
this.charges = charges;
}
/**
* 获取 办公时间
* @return handleTimeShow
*/
public String getHandleTimeShow() {
return this.handleTimeShow;
}
/**
* 设置 办公时间
* @param handleTimeShow
*/
public void setHandleTimeShow(String handleTimeShow) {
this.handleTimeShow = handleTimeShow;
}
/**
* 获取 办公地址
* @return handlePlaceShow
*/
public String getHandlePlaceShow() {
return this.handlePlaceShow;
}
/**
* 设置 办公地址
* @param handlePlaceShow
*/
public void setHandlePlaceShow(String handlePlaceShow) {
this.handlePlaceShow = handlePlaceShow;
}
/**
* 获取 咨询电话
* @return cousultingTelephoneShow
*/
public String getCousultingTelephoneShow() {
return this.cousultingTelephoneShow;
}
/**
* 设置 咨询电话
* @param cousultingTelephoneShow
*/
public void setCousultingTelephoneShow(String cousultingTelephoneShow) {
this.cousultingTelephoneShow = cousultingTelephoneShow;
}
/**
* 获取 投诉电话
* @return supervisoryTelephoneShow
*/
public String getSupervisoryTelephoneShow() {
return this.supervisoryTelephoneShow;
}
/**
* 设置 投诉电话
* @param supervisoryTelephoneShow
*/
public void setSupervisoryTelephoneShow(String supervisoryTelephoneShow) {
this.supervisoryTelephoneShow = supervisoryTelephoneShow;
}
/**
* 获取 结果信息
* @return resultInfo
*/
public String getResultInfo() {
return this.resultInfo;
}
/**
* 设置 结果信息
* @param resultInfo
*/
public void setResultInfo(String resultInfo) {
this.resultInfo = resultInfo;
}
/**
* 获取 常见问题
* @return qa
*/
public String getQa() {
return this.qa;
}
/**
* 设置 常见问题
* @param qa
*/
public void setQa(String qa) {
this.qa = qa;
}
/**
* 获取 变更时间
* @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 BasicsInfoEntity) {
BasicsInfoEntity tmp = (BasicsInfoEntity) 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(",title:").append(getTitle())
.append(",basicsId:").append(getBasicsId())
.append(",jointInfoShow:").append(getJointInfoShow())
.append(",legalTimeLimitShow:").append(getLegalTimeLimitShow())
.append(",promiseTimeLimitShow:").append(getPromiseTimeLimitShow())
.append(",isChargesShow:").append(getIsChargesShow())
.append(",charges:").append(getCharges())
.append(",handleTimeShow:").append(getHandleTimeShow())
.append(",handlePlaceShow:").append(getHandlePlaceShow())
.append(",cousultingTelephoneShow:").append(getCousultingTelephoneShow())
.append(",supervisoryTelephoneShow:").append(getSupervisoryTelephoneShow())
.append(",resultInfo:").append(getResultInfo())
.append(",qa:").append(getQa())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.title = null;
this.basicsId = null;
this.jointInfoShow = null;
this.legalTimeLimitShow = null;
this.promiseTimeLimitShow = null;
this.isChargesShow = null;
this.charges = null;
this.handleTimeShow = null;
this.handlePlaceShow = null;
this.cousultingTelephoneShow = null;
this.supervisoryTelephoneShow = null;
this.resultInfo = null;
this.qa = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:BasicsInfo
* date: 2021-8-19 10:03:24
*/
public class BasicsInfoQuery extends BasicsInfoEntity{
private static final long serialVersionUID = 1629338604650L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 模板标题 */
private List<String> titleList;
/** 开始 一件事基础表id */
private Long basicsIdStart;
/** 结束 一件事基础表id */
private Long basicsIdEnd;
/** 增加 一件事基础表id */
private Long basicsIdIncrement;
/** 一件事基础表id */
private List <Long> basicsIdList;
/** 办理机构 */
private List<String> jointInfoShowList;
/** 法定时限 */
private List<String> legalTimeLimitShowList;
/** 承诺时限 */
private List<String> promiseTimeLimitShowList;
/** 开始 是否收费,0,否,1是 默认0 */
private Integer isChargesShowStart;
/** 结束 是否收费,0,否,1是 默认0 */
private Integer isChargesShowEnd;
/** 增加 是否收费,0,否,1是 默认0 */
private Integer isChargesShowIncrement;
/** 是否收费,0,否,1是 默认0 */
private List <Integer> isChargesShowList;
/** 收费金额 */
private List<String> chargesList;
/** 办公时间 */
private List<String> handleTimeShowList;
/** 办公地址 */
private List<String> handlePlaceShowList;
/** 咨询电话 */
private List<String> cousultingTelephoneShowList;
/** 投诉电话 */
private List<String> supervisoryTelephoneShowList;
/** 结果信息 */
private List<String> resultInfoList;
/** 常见问题 */
private List<String> qaList;
/** 开始 变更时间 */
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<BasicsInfoQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<BasicsInfoQuery> andConditionList;
public BasicsInfoQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 模板标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 模板标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 开始 一件事基础表id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 一件事基础表id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 一件事基础表id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 一件事基础表id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 一件事基础表id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 一件事基础表id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 一件事基础表id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 一件事基础表id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 办理机构
* @return jointInfoShowList
*/
public List<String> getJointInfoShowList(){
return this.jointInfoShowList;
}
/**
* 设置 办理机构
* @param jointInfoShowList
*/
public void setJointInfoShowList(List<String> jointInfoShowList){
this.jointInfoShowList = jointInfoShowList;
}
/**
* 获取 法定时限
* @return legalTimeLimitShowList
*/
public List<String> getLegalTimeLimitShowList(){
return this.legalTimeLimitShowList;
}
/**
* 设置 法定时限
* @param legalTimeLimitShowList
*/
public void setLegalTimeLimitShowList(List<String> legalTimeLimitShowList){
this.legalTimeLimitShowList = legalTimeLimitShowList;
}
/**
* 获取 承诺时限
* @return promiseTimeLimitShowList
*/
public List<String> getPromiseTimeLimitShowList(){
return this.promiseTimeLimitShowList;
}
/**
* 设置 承诺时限
* @param promiseTimeLimitShowList
*/
public void setPromiseTimeLimitShowList(List<String> promiseTimeLimitShowList){
this.promiseTimeLimitShowList = promiseTimeLimitShowList;
}
/**
* 获取 开始 是否收费,0,否,1是 默认0
* @return isChargesShowStart
*/
public Integer getIsChargesShowStart(){
return this.isChargesShowStart;
}
/**
* 设置 开始 是否收费,0,否,1是 默认0
* @param isChargesShowStart
*/
public void setIsChargesShowStart(Integer isChargesShowStart){
this.isChargesShowStart = isChargesShowStart;
}
/**
* 获取 结束 是否收费,0,否,1是 默认0
* @return isChargesShowEnd
*/
public Integer getIsChargesShowEnd(){
return this.isChargesShowEnd;
}
/**
* 设置 结束 是否收费,0,否,1是 默认0
* @param isChargesShowEnd
*/
public void setIsChargesShowEnd(Integer isChargesShowEnd){
this.isChargesShowEnd = isChargesShowEnd;
}
/**
* 获取 增加 是否收费,0,否,1是 默认0
* @return isChargesShowIncrement
*/
public Integer getIsChargesShowIncrement(){
return this.isChargesShowIncrement;
}
/**
* 设置 增加 是否收费,0,否,1是 默认0
* @param isChargesShowIncrement
*/
public void setIsChargesShowIncrement(Integer isChargesShowIncrement){
this.isChargesShowIncrement = isChargesShowIncrement;
}
/**
* 获取 是否收费,0,否,1是 默认0
* @return isChargesShowList
*/
public List<Integer> getIsChargesShowList(){
return this.isChargesShowList;
}
/**
* 设置 是否收费,0,否,1是 默认0
* @param isChargesShowList
*/
public void setIsChargesShowList(List<Integer> isChargesShowList){
this.isChargesShowList = isChargesShowList;
}
/**
* 获取 收费金额
* @return chargesList
*/
public List<String> getChargesList(){
return this.chargesList;
}
/**
* 设置 收费金额
* @param chargesList
*/
public void setChargesList(List<String> chargesList){
this.chargesList = chargesList;
}
/**
* 获取 办公时间
* @return handleTimeShowList
*/
public List<String> getHandleTimeShowList(){
return this.handleTimeShowList;
}
/**
* 设置 办公时间
* @param handleTimeShowList
*/
public void setHandleTimeShowList(List<String> handleTimeShowList){
this.handleTimeShowList = handleTimeShowList;
}
/**
* 获取 办公地址
* @return handlePlaceShowList
*/
public List<String> getHandlePlaceShowList(){
return this.handlePlaceShowList;
}
/**
* 设置 办公地址
* @param handlePlaceShowList
*/
public void setHandlePlaceShowList(List<String> handlePlaceShowList){
this.handlePlaceShowList = handlePlaceShowList;
}
/**
* 获取 咨询电话
* @return cousultingTelephoneShowList
*/
public List<String> getCousultingTelephoneShowList(){
return this.cousultingTelephoneShowList;
}
/**
* 设置 咨询电话
* @param cousultingTelephoneShowList
*/
public void setCousultingTelephoneShowList(List<String> cousultingTelephoneShowList){
this.cousultingTelephoneShowList = cousultingTelephoneShowList;
}
/**
* 获取 投诉电话
* @return supervisoryTelephoneShowList
*/
public List<String> getSupervisoryTelephoneShowList(){
return this.supervisoryTelephoneShowList;
}
/**
* 设置 投诉电话
* @param supervisoryTelephoneShowList
*/
public void setSupervisoryTelephoneShowList(List<String> supervisoryTelephoneShowList){
this.supervisoryTelephoneShowList = supervisoryTelephoneShowList;
}
/**
* 获取 结果信息
* @return resultInfoList
*/
public List<String> getResultInfoList(){
return this.resultInfoList;
}
/**
* 设置 结果信息
* @param resultInfoList
*/
public void setResultInfoList(List<String> resultInfoList){
this.resultInfoList = resultInfoList;
}
/**
* 获取 常见问题
* @return qaList
*/
public List<String> getQaList(){
return this.qaList;
}
/**
* 设置 常见问题
* @param qaList
*/
public void setQaList(List<String> qaList){
this.qaList = qaList;
}
/**
* 获取 开始 变更时间
* @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 BasicsInfoQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public BasicsInfoQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public BasicsInfoQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public BasicsInfoQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public BasicsInfoQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 模板标题
* @param title
*/
public BasicsInfoQuery title(String title){
setTitle(title);
return this;
}
/**
* 设置 模板标题
* @param titleList
*/
public BasicsInfoQuery titleList(List<String> titleList){
this.titleList = titleList;
return this;
}
/**
* 设置 一件事基础表id
* @param basicsId
*/
public BasicsInfoQuery basicsId(Long basicsId){
setBasicsId(basicsId);
return this;
}
/**
* 设置 开始 一件事基础表id
* @param basicsIdStart
*/
public BasicsInfoQuery basicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
return this;
}
/**
* 设置 结束 一件事基础表id
* @param basicsIdEnd
*/
public BasicsInfoQuery basicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
return this;
}
/**
* 设置 增加 一件事基础表id
* @param basicsIdIncrement
*/
public BasicsInfoQuery basicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
return this;
}
/**
* 设置 一件事基础表id
* @param basicsIdList
*/
public BasicsInfoQuery basicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
return this;
}
/**
* 设置 办理机构
* @param jointInfoShow
*/
public BasicsInfoQuery jointInfoShow(String jointInfoShow){
setJointInfoShow(jointInfoShow);
return this;
}
/**
* 设置 办理机构
* @param jointInfoShowList
*/
public BasicsInfoQuery jointInfoShowList(List<String> jointInfoShowList){
this.jointInfoShowList = jointInfoShowList;
return this;
}
/**
* 设置 法定时限
* @param legalTimeLimitShow
*/
public BasicsInfoQuery legalTimeLimitShow(String legalTimeLimitShow){
setLegalTimeLimitShow(legalTimeLimitShow);
return this;
}
/**
* 设置 法定时限
* @param legalTimeLimitShowList
*/
public BasicsInfoQuery legalTimeLimitShowList(List<String> legalTimeLimitShowList){
this.legalTimeLimitShowList = legalTimeLimitShowList;
return this;
}
/**
* 设置 承诺时限
* @param promiseTimeLimitShow
*/
public BasicsInfoQuery promiseTimeLimitShow(String promiseTimeLimitShow){
setPromiseTimeLimitShow(promiseTimeLimitShow);
return this;
}
/**
* 设置 承诺时限
* @param promiseTimeLimitShowList
*/
public BasicsInfoQuery promiseTimeLimitShowList(List<String> promiseTimeLimitShowList){
this.promiseTimeLimitShowList = promiseTimeLimitShowList;
return this;
}
/**
* 设置 是否收费,0,否,1是 默认0
* @param isChargesShow
*/
public BasicsInfoQuery isChargesShow(Integer isChargesShow){
setIsChargesShow(isChargesShow);
return this;
}
/**
* 设置 开始 是否收费,0,否,1是 默认0
* @param isChargesShowStart
*/
public BasicsInfoQuery isChargesShowStart(Integer isChargesShowStart){
this.isChargesShowStart = isChargesShowStart;
return this;
}
/**
* 设置 结束 是否收费,0,否,1是 默认0
* @param isChargesShowEnd
*/
public BasicsInfoQuery isChargesShowEnd(Integer isChargesShowEnd){
this.isChargesShowEnd = isChargesShowEnd;
return this;
}
/**
* 设置 增加 是否收费,0,否,1是 默认0
* @param isChargesShowIncrement
*/
public BasicsInfoQuery isChargesShowIncrement(Integer isChargesShowIncrement){
this.isChargesShowIncrement = isChargesShowIncrement;
return this;
}
/**
* 设置 是否收费,0,否,1是 默认0
* @param isChargesShowList
*/
public BasicsInfoQuery isChargesShowList(List<Integer> isChargesShowList){
this.isChargesShowList = isChargesShowList;
return this;
}
/**
* 设置 收费金额
* @param charges
*/
public BasicsInfoQuery charges(String charges){
setCharges(charges);
return this;
}
/**
* 设置 收费金额
* @param chargesList
*/
public BasicsInfoQuery chargesList(List<String> chargesList){
this.chargesList = chargesList;
return this;
}
/**
* 设置 办公时间
* @param handleTimeShow
*/
public BasicsInfoQuery handleTimeShow(String handleTimeShow){
setHandleTimeShow(handleTimeShow);
return this;
}
/**
* 设置 办公时间
* @param handleTimeShowList
*/
public BasicsInfoQuery handleTimeShowList(List<String> handleTimeShowList){
this.handleTimeShowList = handleTimeShowList;
return this;
}
/**
* 设置 办公地址
* @param handlePlaceShow
*/
public BasicsInfoQuery handlePlaceShow(String handlePlaceShow){
setHandlePlaceShow(handlePlaceShow);
return this;
}
/**
* 设置 办公地址
* @param handlePlaceShowList
*/
public BasicsInfoQuery handlePlaceShowList(List<String> handlePlaceShowList){
this.handlePlaceShowList = handlePlaceShowList;
return this;
}
/**
* 设置 咨询电话
* @param cousultingTelephoneShow
*/
public BasicsInfoQuery cousultingTelephoneShow(String cousultingTelephoneShow){
setCousultingTelephoneShow(cousultingTelephoneShow);
return this;
}
/**
* 设置 咨询电话
* @param cousultingTelephoneShowList
*/
public BasicsInfoQuery cousultingTelephoneShowList(List<String> cousultingTelephoneShowList){
this.cousultingTelephoneShowList = cousultingTelephoneShowList;
return this;
}
/**
* 设置 投诉电话
* @param supervisoryTelephoneShow
*/
public BasicsInfoQuery supervisoryTelephoneShow(String supervisoryTelephoneShow){
setSupervisoryTelephoneShow(supervisoryTelephoneShow);
return this;
}
/**
* 设置 投诉电话
* @param supervisoryTelephoneShowList
*/
public BasicsInfoQuery supervisoryTelephoneShowList(List<String> supervisoryTelephoneShowList){
this.supervisoryTelephoneShowList = supervisoryTelephoneShowList;
return this;
}
/**
* 设置 结果信息
* @param resultInfo
*/
public BasicsInfoQuery resultInfo(String resultInfo){
setResultInfo(resultInfo);
return this;
}
/**
* 设置 结果信息
* @param resultInfoList
*/
public BasicsInfoQuery resultInfoList(List<String> resultInfoList){
this.resultInfoList = resultInfoList;
return this;
}
/**
* 设置 常见问题
* @param qa
*/
public BasicsInfoQuery qa(String qa){
setQa(qa);
return this;
}
/**
* 设置 常见问题
* @param qaList
*/
public BasicsInfoQuery qaList(List<String> qaList){
this.qaList = qaList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public BasicsInfoQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public BasicsInfoQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public BasicsInfoQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public BasicsInfoQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public BasicsInfoQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public BasicsInfoQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public BasicsInfoQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public BasicsInfoQuery 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<BasicsInfoQuery> 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<BasicsInfoQuery> 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<BasicsInfoQuery> 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<BasicsInfoQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Basics
* date: 2021-8-19 10:03:24
*/
public class BasicsQuery extends BasicsEntity{
private static final long serialVersionUID = 1629338604619L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 一件事标题 */
private List<String> tnameList;
/** 二维码 */
private List<String> qrcodeList;
/** 事项关联id, */
private List<String> matterIdsList;
/** 开始 是否自主申报 0否 1是 默认0 */
private Integer iszzsbStart;
/** 结束 是否自主申报 0否 1是 默认0 */
private Integer iszzsbEnd;
/** 增加 是否自主申报 0否 1是 默认0 */
private Integer iszzsbIncrement;
/** 是否自主申报 0否 1是 默认0 */
private List <Integer> iszzsbList;
/** 开始 排序 倒序 */
private Integer sortStart;
/** 结束 排序 倒序 */
private Integer sortEnd;
/** 增加 排序 倒序 */
private Integer sortIncrement;
/** 排序 倒序 */
private List <Integer> sortList;
/** 开始 状态 0正常 1删除 */
private Integer validStart;
/** 结束 状态 0正常 1删除 */
private Integer validEnd;
/** 增加 状态 0正常 1删除 */
private Integer validIncrement;
/** 状态 0正常 1删除 */
private List <Integer> validList;
/** 开始 变更时间 */
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<BasicsQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<BasicsQuery> andConditionList;
public BasicsQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 一件事标题
* @return tnameList
*/
public List<String> getTnameList(){
return this.tnameList;
}
/**
* 设置 一件事标题
* @param tnameList
*/
public void setTnameList(List<String> tnameList){
this.tnameList = tnameList;
}
/**
* 获取 二维码
* @return qrcodeList
*/
public List<String> getQrcodeList(){
return this.qrcodeList;
}
/**
* 设置 二维码
* @param qrcodeList
*/
public void setQrcodeList(List<String> qrcodeList){
this.qrcodeList = qrcodeList;
}
/**
* 获取 事项关联id,
* @return matterIdsList
*/
public List<String> getMatterIdsList(){
return this.matterIdsList;
}
/**
* 设置 事项关联id,
* @param matterIdsList
*/
public void setMatterIdsList(List<String> matterIdsList){
this.matterIdsList = matterIdsList;
}
/**
* 获取 开始 是否自主申报 0否 1是 默认0
* @return iszzsbStart
*/
public Integer getIszzsbStart(){
return this.iszzsbStart;
}
/**
* 设置 开始 是否自主申报 0否 1是 默认0
* @param iszzsbStart
*/
public void setIszzsbStart(Integer iszzsbStart){
this.iszzsbStart = iszzsbStart;
}
/**
* 获取 结束 是否自主申报 0否 1是 默认0
* @return iszzsbEnd
*/
public Integer getIszzsbEnd(){
return this.iszzsbEnd;
}
/**
* 设置 结束 是否自主申报 0否 1是 默认0
* @param iszzsbEnd
*/
public void setIszzsbEnd(Integer iszzsbEnd){
this.iszzsbEnd = iszzsbEnd;
}
/**
* 获取 增加 是否自主申报 0否 1是 默认0
* @return iszzsbIncrement
*/
public Integer getIszzsbIncrement(){
return this.iszzsbIncrement;
}
/**
* 设置 增加 是否自主申报 0否 1是 默认0
* @param iszzsbIncrement
*/
public void setIszzsbIncrement(Integer iszzsbIncrement){
this.iszzsbIncrement = iszzsbIncrement;
}
/**
* 获取 是否自主申报 0否 1是 默认0
* @return iszzsbList
*/
public List<Integer> getIszzsbList(){
return this.iszzsbList;
}
/**
* 设置 是否自主申报 0否 1是 默认0
* @param iszzsbList
*/
public void setIszzsbList(List<Integer> iszzsbList){
this.iszzsbList = iszzsbList;
}
/**
* 获取 开始 排序 倒序
* @return sortStart
*/
public Integer getSortStart(){
return this.sortStart;
}
/**
* 设置 开始 排序 倒序
* @param sortStart
*/
public void setSortStart(Integer sortStart){
this.sortStart = sortStart;
}
/**
* 获取 结束 排序 倒序
* @return sortEnd
*/
public Integer getSortEnd(){
return this.sortEnd;
}
/**
* 设置 结束 排序 倒序
* @param sortEnd
*/
public void setSortEnd(Integer sortEnd){
this.sortEnd = sortEnd;
}
/**
* 获取 增加 排序 倒序
* @return sortIncrement
*/
public Integer getSortIncrement(){
return this.sortIncrement;
}
/**
* 设置 增加 排序 倒序
* @param sortIncrement
*/
public void setSortIncrement(Integer sortIncrement){
this.sortIncrement = sortIncrement;
}
/**
* 获取 排序 倒序
* @return sortList
*/
public List<Integer> getSortList(){
return this.sortList;
}
/**
* 设置 排序 倒序
* @param sortList
*/
public void setSortList(List<Integer> sortList){
this.sortList = sortList;
}
/**
* 获取 开始 状态 0正常 1删除
* @return validStart
*/
public Integer getValidStart(){
return this.validStart;
}
/**
* 设置 开始 状态 0正常 1删除
* @param validStart
*/
public void setValidStart(Integer validStart){
this.validStart = validStart;
}
/**
* 获取 结束 状态 0正常 1删除
* @return validEnd
*/
public Integer getValidEnd(){
return this.validEnd;
}
/**
* 设置 结束 状态 0正常 1删除
* @param validEnd
*/
public void setValidEnd(Integer validEnd){
this.validEnd = validEnd;
}
/**
* 获取 增加 状态 0正常 1删除
* @return validIncrement
*/
public Integer getValidIncrement(){
return this.validIncrement;
}
/**
* 设置 增加 状态 0正常 1删除
* @param validIncrement
*/
public void setValidIncrement(Integer validIncrement){
this.validIncrement = validIncrement;
}
/**
* 获取 状态 0正常 1删除
* @return validList
*/
public List<Integer> getValidList(){
return this.validList;
}
/**
* 设置 状态 0正常 1删除
* @param validList
*/
public void setValidList(List<Integer> validList){
this.validList = validList;
}
/**
* 获取 开始 变更时间
* @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 BasicsQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public BasicsQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public BasicsQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public BasicsQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public BasicsQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 一件事标题
* @param tname
*/
public BasicsQuery tname(String tname){
setTname(tname);
return this;
}
/**
* 设置 一件事标题
* @param tnameList
*/
public BasicsQuery tnameList(List<String> tnameList){
this.tnameList = tnameList;
return this;
}
/**
* 设置 二维码
* @param qrcode
*/
public BasicsQuery qrcode(String qrcode){
setQrcode(qrcode);
return this;
}
/**
* 设置 二维码
* @param qrcodeList
*/
public BasicsQuery qrcodeList(List<String> qrcodeList){
this.qrcodeList = qrcodeList;
return this;
}
/**
* 设置 事项关联id,
* @param matterIds
*/
public BasicsQuery matterIds(String matterIds){
setMatterIds(matterIds);
return this;
}
/**
* 设置 事项关联id,
* @param matterIdsList
*/
public BasicsQuery matterIdsList(List<String> matterIdsList){
this.matterIdsList = matterIdsList;
return this;
}
/**
* 设置 是否自主申报 0否 1是 默认0
* @param iszzsb
*/
public BasicsQuery iszzsb(Integer iszzsb){
setIszzsb(iszzsb);
return this;
}
/**
* 设置 开始 是否自主申报 0否 1是 默认0
* @param iszzsbStart
*/
public BasicsQuery iszzsbStart(Integer iszzsbStart){
this.iszzsbStart = iszzsbStart;
return this;
}
/**
* 设置 结束 是否自主申报 0否 1是 默认0
* @param iszzsbEnd
*/
public BasicsQuery iszzsbEnd(Integer iszzsbEnd){
this.iszzsbEnd = iszzsbEnd;
return this;
}
/**
* 设置 增加 是否自主申报 0否 1是 默认0
* @param iszzsbIncrement
*/
public BasicsQuery iszzsbIncrement(Integer iszzsbIncrement){
this.iszzsbIncrement = iszzsbIncrement;
return this;
}
/**
* 设置 是否自主申报 0否 1是 默认0
* @param iszzsbList
*/
public BasicsQuery iszzsbList(List<Integer> iszzsbList){
this.iszzsbList = iszzsbList;
return this;
}
/**
* 设置 排序 倒序
* @param sort
*/
public BasicsQuery sort(Integer sort){
setSort(sort);
return this;
}
/**
* 设置 开始 排序 倒序
* @param sortStart
*/
public BasicsQuery sortStart(Integer sortStart){
this.sortStart = sortStart;
return this;
}
/**
* 设置 结束 排序 倒序
* @param sortEnd
*/
public BasicsQuery sortEnd(Integer sortEnd){
this.sortEnd = sortEnd;
return this;
}
/**
* 设置 增加 排序 倒序
* @param sortIncrement
*/
public BasicsQuery sortIncrement(Integer sortIncrement){
this.sortIncrement = sortIncrement;
return this;
}
/**
* 设置 排序 倒序
* @param sortList
*/
public BasicsQuery sortList(List<Integer> sortList){
this.sortList = sortList;
return this;
}
/**
* 设置 状态 0正常 1删除
* @param valid
*/
public BasicsQuery valid(Integer valid){
setValid(valid);
return this;
}
/**
* 设置 开始 状态 0正常 1删除
* @param validStart
*/
public BasicsQuery validStart(Integer validStart){
this.validStart = validStart;
return this;
}
/**
* 设置 结束 状态 0正常 1删除
* @param validEnd
*/
public BasicsQuery validEnd(Integer validEnd){
this.validEnd = validEnd;
return this;
}
/**
* 设置 增加 状态 0正常 1删除
* @param validIncrement
*/
public BasicsQuery validIncrement(Integer validIncrement){
this.validIncrement = validIncrement;
return this;
}
/**
* 设置 状态 0正常 1删除
* @param validList
*/
public BasicsQuery validList(List<Integer> validList){
this.validList = validList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public BasicsQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public BasicsQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public BasicsQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public BasicsQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public BasicsQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public BasicsQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public BasicsQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public BasicsQuery 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<BasicsQuery> 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<BasicsQuery> 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<BasicsQuery> 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<BasicsQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
import java.util.List;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface BasicsDatumService extends ICRUDService<BasicsDatumEntity,Long>{
int updateBatch(List<BasicsDatumEntity> oldList, List<BasicsDatumEntity> newList, Context context);
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.basics.model.BasicsInfoEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface BasicsInfoService extends ICRUDService<BasicsInfoEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.basics.model.BasicsEntity;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface BasicsService extends ICRUDService<BasicsEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service.impl;
import com.mortals.framework.model.Context;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.basics.dao.BasicsDatumDao;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
import com.mortals.xhx.module.basics.service.BasicsDatumService;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
*
* @version 1.0.0
*/
@Service("basicsDatumService")
public class BasicsDatumServiceImpl extends AbstractCRUDServiceImpl<BasicsDatumDao, BasicsDatumEntity, Long> implements BasicsDatumService {
@Override
public int updateBatch(List<BasicsDatumEntity> oldList, List<BasicsDatumEntity> newList, Context context) {
//求交集 只更新
List<BasicsDatumEntity> updateList = sameList(oldList, newList).stream().map(item -> {
item.setUpdateUser(context == null ? "" : context.getUser().getLoginName());
item.setUpdateTime(new Date());
return item;
}).collect(Collectors.toList());
this.update(updateList);
//求old 差集 做删除
Long[] delIds = diffList(oldList, newList).stream().map(item -> item.getId()).toArray(Long[]::new);
this.remove(delIds, context);
//求new 差集 做新增
List<BasicsDatumEntity> insertList = diffList(newList, oldList);
this.save(insertList);
return 0;
}
// private List<BasicsDatumEntity> sameList(List<BasicsDatumEntity> oldArrayList, List<BasicsDatumEntity> newArrayList) {
// List<BasicsDatumEntity> resultList = newArrayList.stream()
// .filter(item -> oldArrayList.stream().map(e -> e.getId())
// .collect(Collectors.toList()).contains(item.getId()))
// .collect(Collectors.toList());
// return resultList;
// }
//
// private List<BasicsDatumEntity> diffList(List<BasicsDatumEntity> firstArrayList, List<BasicsDatumEntity> secondArrayList) {
// List<BasicsDatumEntity> resultList = firstArrayList.stream()
// .filter(item -> !secondArrayList.stream().map(e -> e.getId()).collect(Collectors.toList()).contains(item.getId()))
// .collect(Collectors.toList());
// return resultList;
// }
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.basics.dao.BasicsInfoDao;
import com.mortals.xhx.module.basics.model.BasicsInfoEntity;
import com.mortals.xhx.module.basics.service.BasicsInfoService;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("basicsInfoService")
public class BasicsInfoServiceImpl extends AbstractCRUDServiceImpl<BasicsInfoDao, BasicsInfoEntity, Long> implements BasicsInfoService {
}
\ No newline at end of file
package com.mortals.xhx.module.basics.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.basics.dao.BasicsDao;
import com.mortals.xhx.module.basics.model.BasicsEntity;
import com.mortals.xhx.module.basics.service.BasicsService;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("basicsService")
public class BasicsServiceImpl extends AbstractCRUDServiceImpl<BasicsDao, BasicsEntity, Long> implements BasicsService {
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
import com.mortals.xhx.module.basics.model.BasicsDatumQuery;
import com.mortals.xhx.module.basics.model.BasicsEntity;
import com.mortals.xhx.module.basics.model.BasicsQuery;
import com.mortals.xhx.module.basics.service.BasicsDatumService;
import com.mortals.xhx.module.basics.service.BasicsService;
import com.mortals.xhx.utils.QRCodeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("basics")
public class BasicsController extends BaseCRUDJsonMappingController<BasicsService, BasicsForm, BasicsEntity, Long> {
@Autowired
private ParamService paramService;
@Autowired
private BasicsDatumService basicsDatumService;
public BasicsController() {
super.setFormClass(BasicsForm.class);
super.setModuleDesc("一件事基础表");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, BasicsForm form, Map<String, Object> model, Context context) {
this.addDict(model, "isMust", YesNoEnum.getEnumMap());
this.addDict(model, "iszzsb", YesNoEnum.getEnumMap());
this.addDict(model, "materialType", paramService.getParamByFirstOrganize(Constant.Param_materialType));
this.addDict(model, "electronicgs", paramService.getParamByFirstOrganize(Constant.Param_electronicgs));
this.addDict(model, "materialSourceSm", 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));
}
@Override
protected void doListBefore(HttpServletRequest request, HttpServletResponse response, BasicsForm form, Map<String, Object> model, Context context) throws AppException {
form.getQuery().setValid(YesNoEnum.NO.getValue());
}
/**
* 查看二维码
*/
@PostMapping(value = "viewQrCode")
public String viewQrCode(BasicsForm form) {
JSONObject jsonObject = new JSONObject();
try {
if (form == null || form.getEntity() == null || form.getEntity().getId() == null) {
throw new AppException("二维码为空");
}
String qrCodeUrl = paramService.getValueByKey("qrcode");
//http://sncs.wx3.com.cn/wx.html#/chatroom?id=26&title=我要打广告
BasicsEntity entity = service.get(form.getEntity().getId(), null);
String qrCode = qrCodeUrl + "?id=" + entity.getId() + "&title=" + entity.getTname();
jsonObject.put("qrCode", "data:image/png;base64," + QRCodeUtil.encode(qrCode, null, false));
jsonObject.put("qrCodeUrl", qrCode);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("查看二维码错误", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
@Override
protected int saveAfter(HttpServletRequest request, HttpServletResponse response, BasicsForm form, Map<String, Object> model, Context context) throws AppException {
String oneDatumIds = request.getParameter("entity.oneDatumIds");
Long id = (Long) model.get("id");
List<BasicsDatumEntity> list = new ArrayList<>();
if (!ObjectUtils.isEmpty(oneDatumIds)) {
list = Arrays.asList(oneDatumIds.split(",")).stream().map(item -> {
BasicsDatumEntity entity = new BasicsDatumEntity();
entity.setBasicsId(id);
entity.setOneDatumIds(Long.parseLong(item));
entity.setCreateUser(this.getCurUser().getLoginName());
entity.setCreateTime(new Date());
return entity;
}).collect(Collectors.toList());
}
if (form.getEntity().newEntity()) {
//新增 保存关联材料信息
int num = basicsDatumService.save(list,context);
} else {
//更新 通过id找到关联项,插入不存在的关联 删除提交中没有的想
List<BasicsDatumEntity> oldList = this.basicsDatumService.find(new BasicsDatumQuery().basicsId(id));
basicsDatumService.updateBatch(oldList,list,context);
}
return super.saveAfter(request, response, form, model, context);
}
@Override
public String delete(BasicsForm form) {
if (form.getId() != null && form.getId().length != 0) {
JSONObject ret = new JSONObject();
int code = VALUE_RESULT_SUCCESS;
String busiDesc = "删除" + this.getModuleDesc();
try {
BasicsEntity entity = new BasicsEntity();
entity.setId(form.getId()[0]);
entity.setValid(YesNoEnum.YES.getValue());
entity.setUpdateTime(new Date());
entity.setUpdateUser(this.getCurUser().getLoginName());
this.service.update(entity);
this.recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("删除异常", e);
this.doException(request, busiDesc, null, e);
code = VALUE_RESULT_FAILURE;
}
ret.put("code", Integer.valueOf(code));
ret.put("msg", "删除成功");
return ret.toJSONString();
} else {
return this.createFailJsonResp("请至少选择一条记录");
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.mortals.framework.model.Context;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant;
import org.springframework.beans.factory.annotation.Autowired;
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.basics.model.BasicsDatumEntity;
import com.mortals.xhx.module.basics.service.BasicsDatumService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("basics/datum")
public class BasicsDatumController extends BaseCRUDJsonMappingController<BasicsDatumService,BasicsDatumForm,BasicsDatumEntity,Long> {
public BasicsDatumController(){
super.setFormClass(BasicsDatumForm.class);
super.setModuleDesc("一件事材料关联集合");
}
@Autowired
private ParamService paramService;
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, BasicsDatumForm form, Map<String, Object> model, Context context) {
this.addDict(model,"iszzsb", YesNoEnum.getEnumMap());
this.addDict(model, "materialType", paramService.getParamByFirstOrganize(Constant.Param_materialType));
this.addDict(model, "electronicgs", paramService.getParamByFirstOrganize(Constant.Param_electronicgs));
this.addDict(model, "materialSourceSm", 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));
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
import com.mortals.xhx.module.basics.model.BasicsDatumQuery;
/**
* <p>Title: 一件事材料关联集合</p>
* <p>Description: BasicsDatumForm </p>
* @author
* @version 1.0.0
*/
public class BasicsDatumForm extends BaseCRUDFormLong<BasicsDatumEntity> {
private BasicsDatumEntity entity = new BasicsDatumEntity();
private BasicsDatumQuery query = new BasicsDatumQuery();
public BasicsDatumForm(){
}
@Override
public BasicsDatumEntity getEntity() {
return entity;
}
public void setBasicsDatum(BasicsDatumEntity entity) {
this.entity = entity;
}
@Override
public BasicsDatumQuery getQuery() {
return query;
}
public void setQuery(BasicsDatumQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.basics.model.BasicsEntity;
import com.mortals.xhx.module.basics.model.BasicsQuery;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsForm </p>
* @author
* @version 1.0.0
*/
public class BasicsForm extends BaseCRUDFormLong<BasicsEntity> {
private BasicsEntity entity = new BasicsEntity();
private BasicsQuery query = new BasicsQuery();
public BasicsForm(){
}
@Override
public BasicsEntity getEntity() {
return entity;
}
public void setBasics(BasicsEntity entity) {
this.entity = entity;
}
@Override
public BasicsQuery getQuery() {
return query;
}
public void setQuery(BasicsQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.code.YesNoEnum;
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.basics.model.BasicsInfoEntity;
import com.mortals.xhx.module.basics.service.BasicsInfoService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("basics/info")
public class BasicsInfoController extends BaseCRUDJsonMappingController<BasicsInfoService,BasicsInfoForm,BasicsInfoEntity,Long> {
public BasicsInfoController(){
super.setFormClass(BasicsInfoForm.class);
super.setModuleDesc("一件事基础表");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, BasicsInfoForm form, Map<String, Object> model, Context context) {
this.addDict(model, "isChargesShow", YesNoEnum.getEnumMap());
}
}
\ No newline at end of file
package com.mortals.xhx.module.basics.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.basics.model.BasicsInfoEntity;
import com.mortals.xhx.module.basics.model.BasicsInfoQuery;
/**
* <p>Title: 一件事基础表</p>
* <p>Description: BasicsInfoForm </p>
* @author
* @version 1.0.0
*/
public class BasicsInfoForm extends BaseCRUDFormLong<BasicsInfoEntity> {
private BasicsInfoEntity entity = new BasicsInfoEntity();
private BasicsInfoQuery query = new BasicsInfoQuery();
public BasicsInfoForm(){
}
@Override
public BasicsInfoEntity getEntity() {
return entity;
}
public void setBasicsInfo(BasicsInfoEntity entity) {
this.entity = entity;
}
@Override
public BasicsInfoQuery getQuery() {
return query;
}
public void setQuery(BasicsInfoQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.classify.model.ClassifyEntity;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface ClassifyDao extends ICRUDDao<ClassifyEntity,Long>{
}
package com.mortals.xhx.module.classify.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.classify.model.ClassifyOptionEntity;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface ClassifyOptionDao extends ICRUDDao<ClassifyOptionEntity,Long>{
}
package com.mortals.xhx.module.classify.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.classify.model.ClassifyRelationEntity;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface ClassifyRelationDao extends ICRUDDao<ClassifyRelationEntity,Long>{
}
package com.mortals.xhx.module.classify.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.classify.dao.ClassifyDao;
import com.mortals.xhx.module.classify.model.ClassifyEntity;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("classifyDao")
public class ClassifyDaoImpl extends BaseCRUDDaoMybatis<ClassifyEntity,Long> implements ClassifyDao {
}
package com.mortals.xhx.module.classify.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.classify.dao.ClassifyOptionDao;
import com.mortals.xhx.module.classify.model.ClassifyOptionEntity;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("classifyOptionDao")
public class ClassifyOptionDaoImpl extends BaseCRUDDaoMybatis<ClassifyOptionEntity,Long> implements ClassifyOptionDao {
}
package com.mortals.xhx.module.classify.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.classify.dao.ClassifyRelationDao;
import com.mortals.xhx.module.classify.model.ClassifyRelationEntity;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("classifyRelationDao")
public class ClassifyRelationDaoImpl extends BaseCRUDDaoMybatis<ClassifyRelationEntity,Long> implements ClassifyRelationDao {
}
package com.mortals.xhx.module.classify.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Classify
* date: 2021-8-20 16:42:31
*/
public class ClassifyEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629448951672L;
/**
* 问题名称
*/
private String name;
/**
* 一件事表 one_basics id
*/
private Long basicsId;
/**
* 父级选项id,顶级为-1
*/
private Long parentId;
/**
* 父级问题选项关联
*/
private Long parentOptionId;
/**
* 题目类型 1单选 2多选
*/
private Integer type;
/**
* 是否必答 0否 1是
*/
private Integer ismust;
/**
* 级数
*/
private Integer level;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public ClassifyEntity(){
}
/**
* 获取 问题名称
* @return name
*/
public String getName() {
return this.name;
}
/**
* 设置 问题名称
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取 一件事表 one_basics id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 一件事表 one_basics id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 父级选项id,顶级为-1
* @return parentId
*/
public Long getParentId() {
return this.parentId;
}
/**
* 设置 父级选项id,顶级为-1
* @param parentId
*/
public void setParentId(Long parentId) {
this.parentId = parentId;
}
/**
* 获取 父级问题选项关联
* @return parentOptionId
*/
public Long getParentOptionId() {
return this.parentOptionId;
}
/**
* 设置 父级问题选项关联
* @param parentOptionId
*/
public void setParentOptionId(Long parentOptionId) {
this.parentOptionId = parentOptionId;
}
/**
* 获取 题目类型 1单选 2多选
* @return type
*/
public Integer getType() {
return this.type;
}
/**
* 设置 题目类型 1单选 2多选
* @param type
*/
public void setType(Integer type) {
this.type = type;
}
/**
* 获取 是否必答 0否 1是
* @return ismust
*/
public Integer getIsmust() {
return this.ismust;
}
/**
* 设置 是否必答 0否 1是
* @param ismust
*/
public void setIsmust(Integer ismust) {
this.ismust = ismust;
}
/**
* 获取 级数
* @return level
*/
public Integer getLevel() {
return this.level;
}
/**
* 设置 级数
* @param level
*/
public void setLevel(Integer level) {
this.level = level;
}
/**
* 获取 变更时间
* @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 ClassifyEntity) {
ClassifyEntity tmp = (ClassifyEntity) 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(",name:").append(getName())
.append(",basicsId:").append(getBasicsId())
.append(",parentId:").append(getParentId())
.append(",parentOptionId:").append(getParentOptionId())
.append(",type:").append(getType())
.append(",ismust:").append(getIsmust())
.append(",level:").append(getLevel())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.name = null;
this.basicsId = null;
this.parentId = null;
this.parentOptionId = null;
this.type = null;
this.ismust = null;
this.level = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:ClassifyOption
* date: 2021-8-19 23:28:22
*/
public class ClassifyOptionEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629386902204L;
/**
* 一件事问题表id
*/
private Long classifyId;
/**
* 一件事下个问题id
*/
private Long classifyNextId;
/**
* 选项名称
*/
private String name;
/**
* 是否最终节点 0否 1是
*/
private Integer isend;
/**
* 基本信息模板id
*/
private Long basicsinfoId;
/**
* 申请条件id
*/
private Long acceptId;
/**
* 办理流程id
*/
private Long flowlimitId;
/**
* 事项关联id
*/
private Long matterId;
/**
* 材料id
*/
private Long datumId;
/**
* 备注类型 1常规备注 2终结备注
*/
private Integer summaryType;
/**
* 备注
*/
private String summary;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public ClassifyOptionEntity(){
}
/**
* 获取 一件事问题表id
* @return classifyId
*/
public Long getClassifyId() {
return this.classifyId;
}
/**
* 设置 一件事问题表id
* @param classifyId
*/
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
/**
* 获取 一件事下个问题id
* @return classifyNextId
*/
public Long getClassifyNextId() {
return this.classifyNextId;
}
/**
* 设置 一件事下个问题id
* @param classifyNextId
*/
public void setClassifyNextId(Long classifyNextId) {
this.classifyNextId = classifyNextId;
}
/**
* 获取 选项名称
* @return name
*/
public String getName() {
return this.name;
}
/**
* 设置 选项名称
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取 是否最终节点 0否 1是
* @return isend
*/
public Integer getIsend() {
return this.isend;
}
/**
* 设置 是否最终节点 0否 1是
* @param isend
*/
public void setIsend(Integer isend) {
this.isend = isend;
}
/**
* 获取 基本信息模板id
* @return basicsinfoId
*/
public Long getBasicsinfoId() {
return this.basicsinfoId;
}
/**
* 设置 基本信息模板id
* @param basicsinfoId
*/
public void setBasicsinfoId(Long basicsinfoId) {
this.basicsinfoId = basicsinfoId;
}
/**
* 获取 申请条件id
* @return acceptId
*/
public Long getAcceptId() {
return this.acceptId;
}
/**
* 设置 申请条件id
* @param acceptId
*/
public void setAcceptId(Long acceptId) {
this.acceptId = acceptId;
}
/**
* 获取 办理流程id
* @return flowlimitId
*/
public Long getFlowlimitId() {
return this.flowlimitId;
}
/**
* 设置 办理流程id
* @param flowlimitId
*/
public void setFlowlimitId(Long flowlimitId) {
this.flowlimitId = flowlimitId;
}
/**
* 获取 事项关联id
* @return matterId
*/
public Long getMatterId() {
return this.matterId;
}
/**
* 设置 事项关联id
* @param matterId
*/
public void setMatterId(Long matterId) {
this.matterId = matterId;
}
/**
* 获取 材料id
* @return datumId
*/
public Long getDatumId() {
return this.datumId;
}
/**
* 设置 材料id
* @param datumId
*/
public void setDatumId(Long datumId) {
this.datumId = datumId;
}
/**
* 获取 备注类型 1常规备注 2终结备注
* @return summaryType
*/
public Integer getSummaryType() {
return this.summaryType;
}
/**
* 设置 备注类型 1常规备注 2终结备注
* @param summaryType
*/
public void setSummaryType(Integer summaryType) {
this.summaryType = summaryType;
}
/**
* 获取 备注
* @return summary
*/
public String getSummary() {
return this.summary;
}
/**
* 设置 备注
* @param summary
*/
public void setSummary(String summary) {
this.summary = summary;
}
/**
* 获取 变更时间
* @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 ClassifyOptionEntity) {
ClassifyOptionEntity tmp = (ClassifyOptionEntity) 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(",classifyId:").append(getClassifyId())
.append(",classifyNextId:").append(getClassifyNextId())
.append(",name:").append(getName())
.append(",isend:").append(getIsend())
.append(",basicsinfoId:").append(getBasicsinfoId())
.append(",acceptId:").append(getAcceptId())
.append(",flowlimitId:").append(getFlowlimitId())
.append(",matterId:").append(getMatterId())
.append(",datumId:").append(getDatumId())
.append(",summaryType:").append(getSummaryType())
.append(",summary:").append(getSummary())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.classifyId = null;
this.classifyNextId = null;
this.name = null;
this.isend = null;
this.basicsinfoId = null;
this.acceptId = null;
this.flowlimitId = null;
this.matterId = null;
this.datumId = null;
this.summaryType = null;
this.summary = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:ClassifyOption
* date: 2021-8-19 23:28:22
*/
public class ClassifyOptionQuery extends ClassifyOptionEntity{
private static final long serialVersionUID = 1629386902206L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 开始 一件事问题表id */
private Long classifyIdStart;
/** 结束 一件事问题表id */
private Long classifyIdEnd;
/** 增加 一件事问题表id */
private Long classifyIdIncrement;
/** 一件事问题表id */
private List <Long> classifyIdList;
/** 开始 一件事下个问题id */
private Long classifyNextIdStart;
/** 结束 一件事下个问题id */
private Long classifyNextIdEnd;
/** 增加 一件事下个问题id */
private Long classifyNextIdIncrement;
/** 一件事下个问题id */
private List <Long> classifyNextIdList;
/** 选项名称 */
private List<String> nameList;
/** 开始 是否最终节点 0否 1是 */
private Integer isendStart;
/** 结束 是否最终节点 0否 1是 */
private Integer isendEnd;
/** 增加 是否最终节点 0否 1是 */
private Integer isendIncrement;
/** 是否最终节点 0否 1是 */
private List <Integer> isendList;
/** 开始 基本信息模板id */
private Long basicsinfoIdStart;
/** 结束 基本信息模板id */
private Long basicsinfoIdEnd;
/** 增加 基本信息模板id */
private Long basicsinfoIdIncrement;
/** 基本信息模板id */
private List <Long> basicsinfoIdList;
/** 开始 申请条件id */
private Long acceptIdStart;
/** 结束 申请条件id */
private Long acceptIdEnd;
/** 增加 申请条件id */
private Long acceptIdIncrement;
/** 申请条件id */
private List <Long> acceptIdList;
/** 开始 办理流程id */
private Long flowlimitIdStart;
/** 结束 办理流程id */
private Long flowlimitIdEnd;
/** 增加 办理流程id */
private Long flowlimitIdIncrement;
/** 办理流程id */
private List <Long> flowlimitIdList;
/** 开始 事项关联id */
private Long matterIdStart;
/** 结束 事项关联id */
private Long matterIdEnd;
/** 增加 事项关联id */
private Long matterIdIncrement;
/** 事项关联id */
private List <Long> matterIdList;
/** 开始 材料id */
private Long datumIdStart;
/** 结束 材料id */
private Long datumIdEnd;
/** 增加 材料id */
private Long datumIdIncrement;
/** 材料id */
private List <Long> datumIdList;
/** 开始 备注类型 1常规备注 2终结备注 */
private Integer summaryTypeStart;
/** 结束 备注类型 1常规备注 2终结备注 */
private Integer summaryTypeEnd;
/** 增加 备注类型 1常规备注 2终结备注 */
private Integer summaryTypeIncrement;
/** 备注类型 1常规备注 2终结备注 */
private List <Integer> summaryTypeList;
/** 备注 */
private List<String> summaryList;
/** 开始 变更时间 */
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<ClassifyOptionQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ClassifyOptionQuery> andConditionList;
public ClassifyOptionQuery(){
}
/**
* 获取 开始 主键,自增长
* @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 classifyIdStart
*/
public Long getClassifyIdStart(){
return this.classifyIdStart;
}
/**
* 设置 开始 一件事问题表id
* @param classifyIdStart
*/
public void setClassifyIdStart(Long classifyIdStart){
this.classifyIdStart = classifyIdStart;
}
/**
* 获取 结束 一件事问题表id
* @return classifyIdEnd
*/
public Long getClassifyIdEnd(){
return this.classifyIdEnd;
}
/**
* 设置 结束 一件事问题表id
* @param classifyIdEnd
*/
public void setClassifyIdEnd(Long classifyIdEnd){
this.classifyIdEnd = classifyIdEnd;
}
/**
* 获取 增加 一件事问题表id
* @return classifyIdIncrement
*/
public Long getClassifyIdIncrement(){
return this.classifyIdIncrement;
}
/**
* 设置 增加 一件事问题表id
* @param classifyIdIncrement
*/
public void setClassifyIdIncrement(Long classifyIdIncrement){
this.classifyIdIncrement = classifyIdIncrement;
}
/**
* 获取 一件事问题表id
* @return classifyIdList
*/
public List<Long> getClassifyIdList(){
return this.classifyIdList;
}
/**
* 设置 一件事问题表id
* @param classifyIdList
*/
public void setClassifyIdList(List<Long> classifyIdList){
this.classifyIdList = classifyIdList;
}
/**
* 获取 开始 一件事下个问题id
* @return classifyNextIdStart
*/
public Long getClassifyNextIdStart(){
return this.classifyNextIdStart;
}
/**
* 设置 开始 一件事下个问题id
* @param classifyNextIdStart
*/
public void setClassifyNextIdStart(Long classifyNextIdStart){
this.classifyNextIdStart = classifyNextIdStart;
}
/**
* 获取 结束 一件事下个问题id
* @return classifyNextIdEnd
*/
public Long getClassifyNextIdEnd(){
return this.classifyNextIdEnd;
}
/**
* 设置 结束 一件事下个问题id
* @param classifyNextIdEnd
*/
public void setClassifyNextIdEnd(Long classifyNextIdEnd){
this.classifyNextIdEnd = classifyNextIdEnd;
}
/**
* 获取 增加 一件事下个问题id
* @return classifyNextIdIncrement
*/
public Long getClassifyNextIdIncrement(){
return this.classifyNextIdIncrement;
}
/**
* 设置 增加 一件事下个问题id
* @param classifyNextIdIncrement
*/
public void setClassifyNextIdIncrement(Long classifyNextIdIncrement){
this.classifyNextIdIncrement = classifyNextIdIncrement;
}
/**
* 获取 一件事下个问题id
* @return classifyNextIdList
*/
public List<Long> getClassifyNextIdList(){
return this.classifyNextIdList;
}
/**
* 设置 一件事下个问题id
* @param classifyNextIdList
*/
public void setClassifyNextIdList(List<Long> classifyNextIdList){
this.classifyNextIdList = classifyNextIdList;
}
/**
* 获取 选项名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 选项名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 开始 是否最终节点 0否 1是
* @return isendStart
*/
public Integer getIsendStart(){
return this.isendStart;
}
/**
* 设置 开始 是否最终节点 0否 1是
* @param isendStart
*/
public void setIsendStart(Integer isendStart){
this.isendStart = isendStart;
}
/**
* 获取 结束 是否最终节点 0否 1是
* @return isendEnd
*/
public Integer getIsendEnd(){
return this.isendEnd;
}
/**
* 设置 结束 是否最终节点 0否 1是
* @param isendEnd
*/
public void setIsendEnd(Integer isendEnd){
this.isendEnd = isendEnd;
}
/**
* 获取 增加 是否最终节点 0否 1是
* @return isendIncrement
*/
public Integer getIsendIncrement(){
return this.isendIncrement;
}
/**
* 设置 增加 是否最终节点 0否 1是
* @param isendIncrement
*/
public void setIsendIncrement(Integer isendIncrement){
this.isendIncrement = isendIncrement;
}
/**
* 获取 是否最终节点 0否 1是
* @return isendList
*/
public List<Integer> getIsendList(){
return this.isendList;
}
/**
* 设置 是否最终节点 0否 1是
* @param isendList
*/
public void setIsendList(List<Integer> isendList){
this.isendList = isendList;
}
/**
* 获取 开始 基本信息模板id
* @return basicsinfoIdStart
*/
public Long getBasicsinfoIdStart(){
return this.basicsinfoIdStart;
}
/**
* 设置 开始 基本信息模板id
* @param basicsinfoIdStart
*/
public void setBasicsinfoIdStart(Long basicsinfoIdStart){
this.basicsinfoIdStart = basicsinfoIdStart;
}
/**
* 获取 结束 基本信息模板id
* @return basicsinfoIdEnd
*/
public Long getBasicsinfoIdEnd(){
return this.basicsinfoIdEnd;
}
/**
* 设置 结束 基本信息模板id
* @param basicsinfoIdEnd
*/
public void setBasicsinfoIdEnd(Long basicsinfoIdEnd){
this.basicsinfoIdEnd = basicsinfoIdEnd;
}
/**
* 获取 增加 基本信息模板id
* @return basicsinfoIdIncrement
*/
public Long getBasicsinfoIdIncrement(){
return this.basicsinfoIdIncrement;
}
/**
* 设置 增加 基本信息模板id
* @param basicsinfoIdIncrement
*/
public void setBasicsinfoIdIncrement(Long basicsinfoIdIncrement){
this.basicsinfoIdIncrement = basicsinfoIdIncrement;
}
/**
* 获取 基本信息模板id
* @return basicsinfoIdList
*/
public List<Long> getBasicsinfoIdList(){
return this.basicsinfoIdList;
}
/**
* 设置 基本信息模板id
* @param basicsinfoIdList
*/
public void setBasicsinfoIdList(List<Long> basicsinfoIdList){
this.basicsinfoIdList = basicsinfoIdList;
}
/**
* 获取 开始 申请条件id
* @return acceptIdStart
*/
public Long getAcceptIdStart(){
return this.acceptIdStart;
}
/**
* 设置 开始 申请条件id
* @param acceptIdStart
*/
public void setAcceptIdStart(Long acceptIdStart){
this.acceptIdStart = acceptIdStart;
}
/**
* 获取 结束 申请条件id
* @return acceptIdEnd
*/
public Long getAcceptIdEnd(){
return this.acceptIdEnd;
}
/**
* 设置 结束 申请条件id
* @param acceptIdEnd
*/
public void setAcceptIdEnd(Long acceptIdEnd){
this.acceptIdEnd = acceptIdEnd;
}
/**
* 获取 增加 申请条件id
* @return acceptIdIncrement
*/
public Long getAcceptIdIncrement(){
return this.acceptIdIncrement;
}
/**
* 设置 增加 申请条件id
* @param acceptIdIncrement
*/
public void setAcceptIdIncrement(Long acceptIdIncrement){
this.acceptIdIncrement = acceptIdIncrement;
}
/**
* 获取 申请条件id
* @return acceptIdList
*/
public List<Long> getAcceptIdList(){
return this.acceptIdList;
}
/**
* 设置 申请条件id
* @param acceptIdList
*/
public void setAcceptIdList(List<Long> acceptIdList){
this.acceptIdList = acceptIdList;
}
/**
* 获取 开始 办理流程id
* @return flowlimitIdStart
*/
public Long getFlowlimitIdStart(){
return this.flowlimitIdStart;
}
/**
* 设置 开始 办理流程id
* @param flowlimitIdStart
*/
public void setFlowlimitIdStart(Long flowlimitIdStart){
this.flowlimitIdStart = flowlimitIdStart;
}
/**
* 获取 结束 办理流程id
* @return flowlimitIdEnd
*/
public Long getFlowlimitIdEnd(){
return this.flowlimitIdEnd;
}
/**
* 设置 结束 办理流程id
* @param flowlimitIdEnd
*/
public void setFlowlimitIdEnd(Long flowlimitIdEnd){
this.flowlimitIdEnd = flowlimitIdEnd;
}
/**
* 获取 增加 办理流程id
* @return flowlimitIdIncrement
*/
public Long getFlowlimitIdIncrement(){
return this.flowlimitIdIncrement;
}
/**
* 设置 增加 办理流程id
* @param flowlimitIdIncrement
*/
public void setFlowlimitIdIncrement(Long flowlimitIdIncrement){
this.flowlimitIdIncrement = flowlimitIdIncrement;
}
/**
* 获取 办理流程id
* @return flowlimitIdList
*/
public List<Long> getFlowlimitIdList(){
return this.flowlimitIdList;
}
/**
* 设置 办理流程id
* @param flowlimitIdList
*/
public void setFlowlimitIdList(List<Long> flowlimitIdList){
this.flowlimitIdList = flowlimitIdList;
}
/**
* 获取 开始 事项关联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;
}
/**
* 获取 开始 材料id
* @return datumIdStart
*/
public Long getDatumIdStart(){
return this.datumIdStart;
}
/**
* 设置 开始 材料id
* @param datumIdStart
*/
public void setDatumIdStart(Long datumIdStart){
this.datumIdStart = datumIdStart;
}
/**
* 获取 结束 材料id
* @return datumIdEnd
*/
public Long getDatumIdEnd(){
return this.datumIdEnd;
}
/**
* 设置 结束 材料id
* @param datumIdEnd
*/
public void setDatumIdEnd(Long datumIdEnd){
this.datumIdEnd = datumIdEnd;
}
/**
* 获取 增加 材料id
* @return datumIdIncrement
*/
public Long getDatumIdIncrement(){
return this.datumIdIncrement;
}
/**
* 设置 增加 材料id
* @param datumIdIncrement
*/
public void setDatumIdIncrement(Long datumIdIncrement){
this.datumIdIncrement = datumIdIncrement;
}
/**
* 获取 材料id
* @return datumIdList
*/
public List<Long> getDatumIdList(){
return this.datumIdList;
}
/**
* 设置 材料id
* @param datumIdList
*/
public void setDatumIdList(List<Long> datumIdList){
this.datumIdList = datumIdList;
}
/**
* 获取 开始 备注类型 1常规备注 2终结备注
* @return summaryTypeStart
*/
public Integer getSummaryTypeStart(){
return this.summaryTypeStart;
}
/**
* 设置 开始 备注类型 1常规备注 2终结备注
* @param summaryTypeStart
*/
public void setSummaryTypeStart(Integer summaryTypeStart){
this.summaryTypeStart = summaryTypeStart;
}
/**
* 获取 结束 备注类型 1常规备注 2终结备注
* @return summaryTypeEnd
*/
public Integer getSummaryTypeEnd(){
return this.summaryTypeEnd;
}
/**
* 设置 结束 备注类型 1常规备注 2终结备注
* @param summaryTypeEnd
*/
public void setSummaryTypeEnd(Integer summaryTypeEnd){
this.summaryTypeEnd = summaryTypeEnd;
}
/**
* 获取 增加 备注类型 1常规备注 2终结备注
* @return summaryTypeIncrement
*/
public Integer getSummaryTypeIncrement(){
return this.summaryTypeIncrement;
}
/**
* 设置 增加 备注类型 1常规备注 2终结备注
* @param summaryTypeIncrement
*/
public void setSummaryTypeIncrement(Integer summaryTypeIncrement){
this.summaryTypeIncrement = summaryTypeIncrement;
}
/**
* 获取 备注类型 1常规备注 2终结备注
* @return summaryTypeList
*/
public List<Integer> getSummaryTypeList(){
return this.summaryTypeList;
}
/**
* 设置 备注类型 1常规备注 2终结备注
* @param summaryTypeList
*/
public void setSummaryTypeList(List<Integer> summaryTypeList){
this.summaryTypeList = summaryTypeList;
}
/**
* 获取 备注
* @return summaryList
*/
public List<String> getSummaryList(){
return this.summaryList;
}
/**
* 设置 备注
* @param summaryList
*/
public void setSummaryList(List<String> summaryList){
this.summaryList = summaryList;
}
/**
* 获取 开始 变更时间
* @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 ClassifyOptionQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public ClassifyOptionQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public ClassifyOptionQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public ClassifyOptionQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public ClassifyOptionQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 一件事问题表id
* @param classifyId
*/
public ClassifyOptionQuery classifyId(Long classifyId){
setClassifyId(classifyId);
return this;
}
/**
* 设置 开始 一件事问题表id
* @param classifyIdStart
*/
public ClassifyOptionQuery classifyIdStart(Long classifyIdStart){
this.classifyIdStart = classifyIdStart;
return this;
}
/**
* 设置 结束 一件事问题表id
* @param classifyIdEnd
*/
public ClassifyOptionQuery classifyIdEnd(Long classifyIdEnd){
this.classifyIdEnd = classifyIdEnd;
return this;
}
/**
* 设置 增加 一件事问题表id
* @param classifyIdIncrement
*/
public ClassifyOptionQuery classifyIdIncrement(Long classifyIdIncrement){
this.classifyIdIncrement = classifyIdIncrement;
return this;
}
/**
* 设置 一件事问题表id
* @param classifyIdList
*/
public ClassifyOptionQuery classifyIdList(List<Long> classifyIdList){
this.classifyIdList = classifyIdList;
return this;
}
/**
* 设置 一件事下个问题id
* @param classifyNextId
*/
public ClassifyOptionQuery classifyNextId(Long classifyNextId){
setClassifyNextId(classifyNextId);
return this;
}
/**
* 设置 开始 一件事下个问题id
* @param classifyNextIdStart
*/
public ClassifyOptionQuery classifyNextIdStart(Long classifyNextIdStart){
this.classifyNextIdStart = classifyNextIdStart;
return this;
}
/**
* 设置 结束 一件事下个问题id
* @param classifyNextIdEnd
*/
public ClassifyOptionQuery classifyNextIdEnd(Long classifyNextIdEnd){
this.classifyNextIdEnd = classifyNextIdEnd;
return this;
}
/**
* 设置 增加 一件事下个问题id
* @param classifyNextIdIncrement
*/
public ClassifyOptionQuery classifyNextIdIncrement(Long classifyNextIdIncrement){
this.classifyNextIdIncrement = classifyNextIdIncrement;
return this;
}
/**
* 设置 一件事下个问题id
* @param classifyNextIdList
*/
public ClassifyOptionQuery classifyNextIdList(List<Long> classifyNextIdList){
this.classifyNextIdList = classifyNextIdList;
return this;
}
/**
* 设置 选项名称
* @param name
*/
public ClassifyOptionQuery name(String name){
setName(name);
return this;
}
/**
* 设置 选项名称
* @param nameList
*/
public ClassifyOptionQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 是否最终节点 0否 1是
* @param isend
*/
public ClassifyOptionQuery isend(Integer isend){
setIsend(isend);
return this;
}
/**
* 设置 开始 是否最终节点 0否 1是
* @param isendStart
*/
public ClassifyOptionQuery isendStart(Integer isendStart){
this.isendStart = isendStart;
return this;
}
/**
* 设置 结束 是否最终节点 0否 1是
* @param isendEnd
*/
public ClassifyOptionQuery isendEnd(Integer isendEnd){
this.isendEnd = isendEnd;
return this;
}
/**
* 设置 增加 是否最终节点 0否 1是
* @param isendIncrement
*/
public ClassifyOptionQuery isendIncrement(Integer isendIncrement){
this.isendIncrement = isendIncrement;
return this;
}
/**
* 设置 是否最终节点 0否 1是
* @param isendList
*/
public ClassifyOptionQuery isendList(List<Integer> isendList){
this.isendList = isendList;
return this;
}
/**
* 设置 基本信息模板id
* @param basicsinfoId
*/
public ClassifyOptionQuery basicsinfoId(Long basicsinfoId){
setBasicsinfoId(basicsinfoId);
return this;
}
/**
* 设置 开始 基本信息模板id
* @param basicsinfoIdStart
*/
public ClassifyOptionQuery basicsinfoIdStart(Long basicsinfoIdStart){
this.basicsinfoIdStart = basicsinfoIdStart;
return this;
}
/**
* 设置 结束 基本信息模板id
* @param basicsinfoIdEnd
*/
public ClassifyOptionQuery basicsinfoIdEnd(Long basicsinfoIdEnd){
this.basicsinfoIdEnd = basicsinfoIdEnd;
return this;
}
/**
* 设置 增加 基本信息模板id
* @param basicsinfoIdIncrement
*/
public ClassifyOptionQuery basicsinfoIdIncrement(Long basicsinfoIdIncrement){
this.basicsinfoIdIncrement = basicsinfoIdIncrement;
return this;
}
/**
* 设置 基本信息模板id
* @param basicsinfoIdList
*/
public ClassifyOptionQuery basicsinfoIdList(List<Long> basicsinfoIdList){
this.basicsinfoIdList = basicsinfoIdList;
return this;
}
/**
* 设置 申请条件id
* @param acceptId
*/
public ClassifyOptionQuery acceptId(Long acceptId){
setAcceptId(acceptId);
return this;
}
/**
* 设置 开始 申请条件id
* @param acceptIdStart
*/
public ClassifyOptionQuery acceptIdStart(Long acceptIdStart){
this.acceptIdStart = acceptIdStart;
return this;
}
/**
* 设置 结束 申请条件id
* @param acceptIdEnd
*/
public ClassifyOptionQuery acceptIdEnd(Long acceptIdEnd){
this.acceptIdEnd = acceptIdEnd;
return this;
}
/**
* 设置 增加 申请条件id
* @param acceptIdIncrement
*/
public ClassifyOptionQuery acceptIdIncrement(Long acceptIdIncrement){
this.acceptIdIncrement = acceptIdIncrement;
return this;
}
/**
* 设置 申请条件id
* @param acceptIdList
*/
public ClassifyOptionQuery acceptIdList(List<Long> acceptIdList){
this.acceptIdList = acceptIdList;
return this;
}
/**
* 设置 办理流程id
* @param flowlimitId
*/
public ClassifyOptionQuery flowlimitId(Long flowlimitId){
setFlowlimitId(flowlimitId);
return this;
}
/**
* 设置 开始 办理流程id
* @param flowlimitIdStart
*/
public ClassifyOptionQuery flowlimitIdStart(Long flowlimitIdStart){
this.flowlimitIdStart = flowlimitIdStart;
return this;
}
/**
* 设置 结束 办理流程id
* @param flowlimitIdEnd
*/
public ClassifyOptionQuery flowlimitIdEnd(Long flowlimitIdEnd){
this.flowlimitIdEnd = flowlimitIdEnd;
return this;
}
/**
* 设置 增加 办理流程id
* @param flowlimitIdIncrement
*/
public ClassifyOptionQuery flowlimitIdIncrement(Long flowlimitIdIncrement){
this.flowlimitIdIncrement = flowlimitIdIncrement;
return this;
}
/**
* 设置 办理流程id
* @param flowlimitIdList
*/
public ClassifyOptionQuery flowlimitIdList(List<Long> flowlimitIdList){
this.flowlimitIdList = flowlimitIdList;
return this;
}
/**
* 设置 事项关联id
* @param matterId
*/
public ClassifyOptionQuery matterId(Long matterId){
setMatterId(matterId);
return this;
}
/**
* 设置 开始 事项关联id
* @param matterIdStart
*/
public ClassifyOptionQuery matterIdStart(Long matterIdStart){
this.matterIdStart = matterIdStart;
return this;
}
/**
* 设置 结束 事项关联id
* @param matterIdEnd
*/
public ClassifyOptionQuery matterIdEnd(Long matterIdEnd){
this.matterIdEnd = matterIdEnd;
return this;
}
/**
* 设置 增加 事项关联id
* @param matterIdIncrement
*/
public ClassifyOptionQuery matterIdIncrement(Long matterIdIncrement){
this.matterIdIncrement = matterIdIncrement;
return this;
}
/**
* 设置 事项关联id
* @param matterIdList
*/
public ClassifyOptionQuery matterIdList(List<Long> matterIdList){
this.matterIdList = matterIdList;
return this;
}
/**
* 设置 材料id
* @param datumId
*/
public ClassifyOptionQuery datumId(Long datumId){
setDatumId(datumId);
return this;
}
/**
* 设置 开始 材料id
* @param datumIdStart
*/
public ClassifyOptionQuery datumIdStart(Long datumIdStart){
this.datumIdStart = datumIdStart;
return this;
}
/**
* 设置 结束 材料id
* @param datumIdEnd
*/
public ClassifyOptionQuery datumIdEnd(Long datumIdEnd){
this.datumIdEnd = datumIdEnd;
return this;
}
/**
* 设置 增加 材料id
* @param datumIdIncrement
*/
public ClassifyOptionQuery datumIdIncrement(Long datumIdIncrement){
this.datumIdIncrement = datumIdIncrement;
return this;
}
/**
* 设置 材料id
* @param datumIdList
*/
public ClassifyOptionQuery datumIdList(List<Long> datumIdList){
this.datumIdList = datumIdList;
return this;
}
/**
* 设置 备注类型 1常规备注 2终结备注
* @param summaryType
*/
public ClassifyOptionQuery summaryType(Integer summaryType){
setSummaryType(summaryType);
return this;
}
/**
* 设置 开始 备注类型 1常规备注 2终结备注
* @param summaryTypeStart
*/
public ClassifyOptionQuery summaryTypeStart(Integer summaryTypeStart){
this.summaryTypeStart = summaryTypeStart;
return this;
}
/**
* 设置 结束 备注类型 1常规备注 2终结备注
* @param summaryTypeEnd
*/
public ClassifyOptionQuery summaryTypeEnd(Integer summaryTypeEnd){
this.summaryTypeEnd = summaryTypeEnd;
return this;
}
/**
* 设置 增加 备注类型 1常规备注 2终结备注
* @param summaryTypeIncrement
*/
public ClassifyOptionQuery summaryTypeIncrement(Integer summaryTypeIncrement){
this.summaryTypeIncrement = summaryTypeIncrement;
return this;
}
/**
* 设置 备注类型 1常规备注 2终结备注
* @param summaryTypeList
*/
public ClassifyOptionQuery summaryTypeList(List<Integer> summaryTypeList){
this.summaryTypeList = summaryTypeList;
return this;
}
/**
* 设置 备注
* @param summary
*/
public ClassifyOptionQuery summary(String summary){
setSummary(summary);
return this;
}
/**
* 设置 备注
* @param summaryList
*/
public ClassifyOptionQuery summaryList(List<String> summaryList){
this.summaryList = summaryList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public ClassifyOptionQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public ClassifyOptionQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public ClassifyOptionQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public ClassifyOptionQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public ClassifyOptionQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public ClassifyOptionQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public ClassifyOptionQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public ClassifyOptionQuery 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<ClassifyOptionQuery> 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<ClassifyOptionQuery> 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<ClassifyOptionQuery> 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<ClassifyOptionQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Classify
* date: 2021-8-20 16:42:32
*/
public class ClassifyQuery extends ClassifyEntity{
private static final long serialVersionUID = 1629448952010L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 问题名称 */
private List<String> nameList;
/** 开始 一件事表 one_basics id */
private Long basicsIdStart;
/** 结束 一件事表 one_basics id */
private Long basicsIdEnd;
/** 增加 一件事表 one_basics id */
private Long basicsIdIncrement;
/** 一件事表 one_basics id */
private List <Long> basicsIdList;
/** 开始 父级选项id,顶级为-1 */
private Long parentIdStart;
/** 结束 父级选项id,顶级为-1 */
private Long parentIdEnd;
/** 增加 父级选项id,顶级为-1 */
private Long parentIdIncrement;
/** 父级选项id,顶级为-1 */
private List <Long> parentIdList;
/** 开始 父级问题选项关联 */
private Long parentOptionIdStart;
/** 结束 父级问题选项关联 */
private Long parentOptionIdEnd;
/** 增加 父级问题选项关联 */
private Long parentOptionIdIncrement;
/** 父级问题选项关联 */
private List <Long> parentOptionIdList;
/** 开始 题目类型 1单选 2多选 */
private Integer typeStart;
/** 结束 题目类型 1单选 2多选 */
private Integer typeEnd;
/** 增加 题目类型 1单选 2多选 */
private Integer typeIncrement;
/** 题目类型 1单选 2多选 */
private List <Integer> typeList;
/** 开始 是否必答 0否 1是 */
private Integer ismustStart;
/** 结束 是否必答 0否 1是 */
private Integer ismustEnd;
/** 增加 是否必答 0否 1是 */
private Integer ismustIncrement;
/** 是否必答 0否 1是 */
private List <Integer> ismustList;
/** 开始 级数 */
private Integer levelStart;
/** 结束 级数 */
private Integer levelEnd;
/** 增加 级数 */
private Integer levelIncrement;
/** 级数 */
private List <Integer> levelList;
/** 开始 变更时间 */
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<ClassifyQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ClassifyQuery> andConditionList;
public ClassifyQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 问题名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 问题名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 开始 一件事表 one_basics id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 一件事表 one_basics id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 一件事表 one_basics id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 一件事表 one_basics id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 一件事表 one_basics id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 一件事表 one_basics id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 一件事表 one_basics id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 一件事表 one_basics id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 开始 父级选项id,顶级为-1
* @return parentIdStart
*/
public Long getParentIdStart(){
return this.parentIdStart;
}
/**
* 设置 开始 父级选项id,顶级为-1
* @param parentIdStart
*/
public void setParentIdStart(Long parentIdStart){
this.parentIdStart = parentIdStart;
}
/**
* 获取 结束 父级选项id,顶级为-1
* @return parentIdEnd
*/
public Long getParentIdEnd(){
return this.parentIdEnd;
}
/**
* 设置 结束 父级选项id,顶级为-1
* @param parentIdEnd
*/
public void setParentIdEnd(Long parentIdEnd){
this.parentIdEnd = parentIdEnd;
}
/**
* 获取 增加 父级选项id,顶级为-1
* @return parentIdIncrement
*/
public Long getParentIdIncrement(){
return this.parentIdIncrement;
}
/**
* 设置 增加 父级选项id,顶级为-1
* @param parentIdIncrement
*/
public void setParentIdIncrement(Long parentIdIncrement){
this.parentIdIncrement = parentIdIncrement;
}
/**
* 获取 父级选项id,顶级为-1
* @return parentIdList
*/
public List<Long> getParentIdList(){
return this.parentIdList;
}
/**
* 设置 父级选项id,顶级为-1
* @param parentIdList
*/
public void setParentIdList(List<Long> parentIdList){
this.parentIdList = parentIdList;
}
/**
* 获取 开始 父级问题选项关联
* @return parentOptionIdStart
*/
public Long getParentOptionIdStart(){
return this.parentOptionIdStart;
}
/**
* 设置 开始 父级问题选项关联
* @param parentOptionIdStart
*/
public void setParentOptionIdStart(Long parentOptionIdStart){
this.parentOptionIdStart = parentOptionIdStart;
}
/**
* 获取 结束 父级问题选项关联
* @return parentOptionIdEnd
*/
public Long getParentOptionIdEnd(){
return this.parentOptionIdEnd;
}
/**
* 设置 结束 父级问题选项关联
* @param parentOptionIdEnd
*/
public void setParentOptionIdEnd(Long parentOptionIdEnd){
this.parentOptionIdEnd = parentOptionIdEnd;
}
/**
* 获取 增加 父级问题选项关联
* @return parentOptionIdIncrement
*/
public Long getParentOptionIdIncrement(){
return this.parentOptionIdIncrement;
}
/**
* 设置 增加 父级问题选项关联
* @param parentOptionIdIncrement
*/
public void setParentOptionIdIncrement(Long parentOptionIdIncrement){
this.parentOptionIdIncrement = parentOptionIdIncrement;
}
/**
* 获取 父级问题选项关联
* @return parentOptionIdList
*/
public List<Long> getParentOptionIdList(){
return this.parentOptionIdList;
}
/**
* 设置 父级问题选项关联
* @param parentOptionIdList
*/
public void setParentOptionIdList(List<Long> parentOptionIdList){
this.parentOptionIdList = parentOptionIdList;
}
/**
* 获取 开始 题目类型 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;
}
/**
* 获取 开始 是否必答 0否 1是
* @return ismustStart
*/
public Integer getIsmustStart(){
return this.ismustStart;
}
/**
* 设置 开始 是否必答 0否 1是
* @param ismustStart
*/
public void setIsmustStart(Integer ismustStart){
this.ismustStart = ismustStart;
}
/**
* 获取 结束 是否必答 0否 1是
* @return ismustEnd
*/
public Integer getIsmustEnd(){
return this.ismustEnd;
}
/**
* 设置 结束 是否必答 0否 1是
* @param ismustEnd
*/
public void setIsmustEnd(Integer ismustEnd){
this.ismustEnd = ismustEnd;
}
/**
* 获取 增加 是否必答 0否 1是
* @return ismustIncrement
*/
public Integer getIsmustIncrement(){
return this.ismustIncrement;
}
/**
* 设置 增加 是否必答 0否 1是
* @param ismustIncrement
*/
public void setIsmustIncrement(Integer ismustIncrement){
this.ismustIncrement = ismustIncrement;
}
/**
* 获取 是否必答 0否 1是
* @return ismustList
*/
public List<Integer> getIsmustList(){
return this.ismustList;
}
/**
* 设置 是否必答 0否 1是
* @param ismustList
*/
public void setIsmustList(List<Integer> ismustList){
this.ismustList = ismustList;
}
/**
* 获取 开始 级数
* @return levelStart
*/
public Integer getLevelStart(){
return this.levelStart;
}
/**
* 设置 开始 级数
* @param levelStart
*/
public void setLevelStart(Integer levelStart){
this.levelStart = levelStart;
}
/**
* 获取 结束 级数
* @return levelEnd
*/
public Integer getLevelEnd(){
return this.levelEnd;
}
/**
* 设置 结束 级数
* @param levelEnd
*/
public void setLevelEnd(Integer levelEnd){
this.levelEnd = levelEnd;
}
/**
* 获取 增加 级数
* @return levelIncrement
*/
public Integer getLevelIncrement(){
return this.levelIncrement;
}
/**
* 设置 增加 级数
* @param levelIncrement
*/
public void setLevelIncrement(Integer levelIncrement){
this.levelIncrement = levelIncrement;
}
/**
* 获取 级数
* @return levelList
*/
public List<Integer> getLevelList(){
return this.levelList;
}
/**
* 设置 级数
* @param levelList
*/
public void setLevelList(List<Integer> levelList){
this.levelList = levelList;
}
/**
* 获取 开始 变更时间
* @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 ClassifyQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public ClassifyQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public ClassifyQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public ClassifyQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public ClassifyQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 问题名称
* @param name
*/
public ClassifyQuery name(String name){
setName(name);
return this;
}
/**
* 设置 问题名称
* @param nameList
*/
public ClassifyQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 一件事表 one_basics id
* @param basicsId
*/
public ClassifyQuery basicsId(Long basicsId){
setBasicsId(basicsId);
return this;
}
/**
* 设置 开始 一件事表 one_basics id
* @param basicsIdStart
*/
public ClassifyQuery basicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
return this;
}
/**
* 设置 结束 一件事表 one_basics id
* @param basicsIdEnd
*/
public ClassifyQuery basicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
return this;
}
/**
* 设置 增加 一件事表 one_basics id
* @param basicsIdIncrement
*/
public ClassifyQuery basicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
return this;
}
/**
* 设置 一件事表 one_basics id
* @param basicsIdList
*/
public ClassifyQuery basicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
return this;
}
/**
* 设置 父级选项id,顶级为-1
* @param parentId
*/
public ClassifyQuery parentId(Long parentId){
setParentId(parentId);
return this;
}
/**
* 设置 开始 父级选项id,顶级为-1
* @param parentIdStart
*/
public ClassifyQuery parentIdStart(Long parentIdStart){
this.parentIdStart = parentIdStart;
return this;
}
/**
* 设置 结束 父级选项id,顶级为-1
* @param parentIdEnd
*/
public ClassifyQuery parentIdEnd(Long parentIdEnd){
this.parentIdEnd = parentIdEnd;
return this;
}
/**
* 设置 增加 父级选项id,顶级为-1
* @param parentIdIncrement
*/
public ClassifyQuery parentIdIncrement(Long parentIdIncrement){
this.parentIdIncrement = parentIdIncrement;
return this;
}
/**
* 设置 父级选项id,顶级为-1
* @param parentIdList
*/
public ClassifyQuery parentIdList(List<Long> parentIdList){
this.parentIdList = parentIdList;
return this;
}
/**
* 设置 父级问题选项关联
* @param parentOptionId
*/
public ClassifyQuery parentOptionId(Long parentOptionId){
setParentOptionId(parentOptionId);
return this;
}
/**
* 设置 开始 父级问题选项关联
* @param parentOptionIdStart
*/
public ClassifyQuery parentOptionIdStart(Long parentOptionIdStart){
this.parentOptionIdStart = parentOptionIdStart;
return this;
}
/**
* 设置 结束 父级问题选项关联
* @param parentOptionIdEnd
*/
public ClassifyQuery parentOptionIdEnd(Long parentOptionIdEnd){
this.parentOptionIdEnd = parentOptionIdEnd;
return this;
}
/**
* 设置 增加 父级问题选项关联
* @param parentOptionIdIncrement
*/
public ClassifyQuery parentOptionIdIncrement(Long parentOptionIdIncrement){
this.parentOptionIdIncrement = parentOptionIdIncrement;
return this;
}
/**
* 设置 父级问题选项关联
* @param parentOptionIdList
*/
public ClassifyQuery parentOptionIdList(List<Long> parentOptionIdList){
this.parentOptionIdList = parentOptionIdList;
return this;
}
/**
* 设置 题目类型 1单选 2多选
* @param type
*/
public ClassifyQuery type(Integer type){
setType(type);
return this;
}
/**
* 设置 开始 题目类型 1单选 2多选
* @param typeStart
*/
public ClassifyQuery typeStart(Integer typeStart){
this.typeStart = typeStart;
return this;
}
/**
* 设置 结束 题目类型 1单选 2多选
* @param typeEnd
*/
public ClassifyQuery typeEnd(Integer typeEnd){
this.typeEnd = typeEnd;
return this;
}
/**
* 设置 增加 题目类型 1单选 2多选
* @param typeIncrement
*/
public ClassifyQuery typeIncrement(Integer typeIncrement){
this.typeIncrement = typeIncrement;
return this;
}
/**
* 设置 题目类型 1单选 2多选
* @param typeList
*/
public ClassifyQuery typeList(List<Integer> typeList){
this.typeList = typeList;
return this;
}
/**
* 设置 是否必答 0否 1是
* @param ismust
*/
public ClassifyQuery ismust(Integer ismust){
setIsmust(ismust);
return this;
}
/**
* 设置 开始 是否必答 0否 1是
* @param ismustStart
*/
public ClassifyQuery ismustStart(Integer ismustStart){
this.ismustStart = ismustStart;
return this;
}
/**
* 设置 结束 是否必答 0否 1是
* @param ismustEnd
*/
public ClassifyQuery ismustEnd(Integer ismustEnd){
this.ismustEnd = ismustEnd;
return this;
}
/**
* 设置 增加 是否必答 0否 1是
* @param ismustIncrement
*/
public ClassifyQuery ismustIncrement(Integer ismustIncrement){
this.ismustIncrement = ismustIncrement;
return this;
}
/**
* 设置 是否必答 0否 1是
* @param ismustList
*/
public ClassifyQuery ismustList(List<Integer> ismustList){
this.ismustList = ismustList;
return this;
}
/**
* 设置 级数
* @param level
*/
public ClassifyQuery level(Integer level){
setLevel(level);
return this;
}
/**
* 设置 开始 级数
* @param levelStart
*/
public ClassifyQuery levelStart(Integer levelStart){
this.levelStart = levelStart;
return this;
}
/**
* 设置 结束 级数
* @param levelEnd
*/
public ClassifyQuery levelEnd(Integer levelEnd){
this.levelEnd = levelEnd;
return this;
}
/**
* 设置 增加 级数
* @param levelIncrement
*/
public ClassifyQuery levelIncrement(Integer levelIncrement){
this.levelIncrement = levelIncrement;
return this;
}
/**
* 设置 级数
* @param levelList
*/
public ClassifyQuery levelList(List<Integer> levelList){
this.levelList = levelList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public ClassifyQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public ClassifyQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public ClassifyQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public ClassifyQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public ClassifyQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public ClassifyQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public ClassifyQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public ClassifyQuery 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<ClassifyQuery> 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<ClassifyQuery> 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<ClassifyQuery> 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<ClassifyQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:ClassifyRelation
* date: 2021-8-19 23:28:22
*/
public class ClassifyRelationEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629386902235L;
/**
* 一件事分类表id
*/
private Long classifyId;
/**
* 基础信息json
*/
private String basicsJson;
/**
* 申请条件json
*/
private String acceptJson;
/**
* 办理流程json
*/
private String flowlimitJson;
/**
* 最终选择的材料id one_datum
*/
private String oneDatumIds;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public ClassifyRelationEntity(){
}
/**
* 获取 一件事分类表id
* @return classifyId
*/
public Long getClassifyId() {
return this.classifyId;
}
/**
* 设置 一件事分类表id
* @param classifyId
*/
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
/**
* 获取 基础信息json
* @return basicsJson
*/
public String getBasicsJson() {
return this.basicsJson;
}
/**
* 设置 基础信息json
* @param basicsJson
*/
public void setBasicsJson(String basicsJson) {
this.basicsJson = basicsJson;
}
/**
* 获取 申请条件json
* @return acceptJson
*/
public String getAcceptJson() {
return this.acceptJson;
}
/**
* 设置 申请条件json
* @param acceptJson
*/
public void setAcceptJson(String acceptJson) {
this.acceptJson = acceptJson;
}
/**
* 获取 办理流程json
* @return flowlimitJson
*/
public String getFlowlimitJson() {
return this.flowlimitJson;
}
/**
* 设置 办理流程json
* @param flowlimitJson
*/
public void setFlowlimitJson(String flowlimitJson) {
this.flowlimitJson = flowlimitJson;
}
/**
* 获取 最终选择的材料id one_datum
* @return oneDatumIds
*/
public String getOneDatumIds() {
return this.oneDatumIds;
}
/**
* 设置 最终选择的材料id one_datum
* @param oneDatumIds
*/
public void setOneDatumIds(String oneDatumIds) {
this.oneDatumIds = oneDatumIds;
}
/**
* 获取 变更时间
* @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 ClassifyRelationEntity) {
ClassifyRelationEntity tmp = (ClassifyRelationEntity) 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(",classifyId:").append(getClassifyId())
.append(",basicsJson:").append(getBasicsJson())
.append(",acceptJson:").append(getAcceptJson())
.append(",flowlimitJson:").append(getFlowlimitJson())
.append(",oneDatumIds:").append(getOneDatumIds())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.classifyId = null;
this.basicsJson = null;
this.acceptJson = null;
this.flowlimitJson = null;
this.oneDatumIds = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:ClassifyRelation
* date: 2021-8-19 23:28:22
*/
public class ClassifyRelationQuery extends ClassifyRelationEntity{
private static final long serialVersionUID = 1629386902237L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 开始 一件事分类表id */
private Long classifyIdStart;
/** 结束 一件事分类表id */
private Long classifyIdEnd;
/** 增加 一件事分类表id */
private Long classifyIdIncrement;
/** 一件事分类表id */
private List <Long> classifyIdList;
/** 基础信息json */
private List<String> basicsJsonList;
/** 申请条件json */
private List<String> acceptJsonList;
/** 办理流程json */
private List<String> flowlimitJsonList;
/** 最终选择的材料id one_datum */
private List<String> oneDatumIdsList;
/** 开始 变更时间 */
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<ClassifyRelationQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ClassifyRelationQuery> andConditionList;
public ClassifyRelationQuery(){
}
/**
* 获取 开始 主键,自增长
* @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 classifyIdStart
*/
public Long getClassifyIdStart(){
return this.classifyIdStart;
}
/**
* 设置 开始 一件事分类表id
* @param classifyIdStart
*/
public void setClassifyIdStart(Long classifyIdStart){
this.classifyIdStart = classifyIdStart;
}
/**
* 获取 结束 一件事分类表id
* @return classifyIdEnd
*/
public Long getClassifyIdEnd(){
return this.classifyIdEnd;
}
/**
* 设置 结束 一件事分类表id
* @param classifyIdEnd
*/
public void setClassifyIdEnd(Long classifyIdEnd){
this.classifyIdEnd = classifyIdEnd;
}
/**
* 获取 增加 一件事分类表id
* @return classifyIdIncrement
*/
public Long getClassifyIdIncrement(){
return this.classifyIdIncrement;
}
/**
* 设置 增加 一件事分类表id
* @param classifyIdIncrement
*/
public void setClassifyIdIncrement(Long classifyIdIncrement){
this.classifyIdIncrement = classifyIdIncrement;
}
/**
* 获取 一件事分类表id
* @return classifyIdList
*/
public List<Long> getClassifyIdList(){
return this.classifyIdList;
}
/**
* 设置 一件事分类表id
* @param classifyIdList
*/
public void setClassifyIdList(List<Long> classifyIdList){
this.classifyIdList = classifyIdList;
}
/**
* 获取 基础信息json
* @return basicsJsonList
*/
public List<String> getBasicsJsonList(){
return this.basicsJsonList;
}
/**
* 设置 基础信息json
* @param basicsJsonList
*/
public void setBasicsJsonList(List<String> basicsJsonList){
this.basicsJsonList = basicsJsonList;
}
/**
* 获取 申请条件json
* @return acceptJsonList
*/
public List<String> getAcceptJsonList(){
return this.acceptJsonList;
}
/**
* 设置 申请条件json
* @param acceptJsonList
*/
public void setAcceptJsonList(List<String> acceptJsonList){
this.acceptJsonList = acceptJsonList;
}
/**
* 获取 办理流程json
* @return flowlimitJsonList
*/
public List<String> getFlowlimitJsonList(){
return this.flowlimitJsonList;
}
/**
* 设置 办理流程json
* @param flowlimitJsonList
*/
public void setFlowlimitJsonList(List<String> flowlimitJsonList){
this.flowlimitJsonList = flowlimitJsonList;
}
/**
* 获取 最终选择的材料id one_datum
* @return oneDatumIdsList
*/
public List<String> getOneDatumIdsList(){
return this.oneDatumIdsList;
}
/**
* 设置 最终选择的材料id one_datum
* @param oneDatumIdsList
*/
public void setOneDatumIdsList(List<String> oneDatumIdsList){
this.oneDatumIdsList = oneDatumIdsList;
}
/**
* 获取 开始 变更时间
* @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 ClassifyRelationQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键,自增长
* @param idStart
*/
public ClassifyRelationQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键,自增长
* @param idEnd
*/
public ClassifyRelationQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键,自增长
* @param idIncrement
*/
public ClassifyRelationQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键,自增长
* @param idList
*/
public ClassifyRelationQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 一件事分类表id
* @param classifyId
*/
public ClassifyRelationQuery classifyId(Long classifyId){
setClassifyId(classifyId);
return this;
}
/**
* 设置 开始 一件事分类表id
* @param classifyIdStart
*/
public ClassifyRelationQuery classifyIdStart(Long classifyIdStart){
this.classifyIdStart = classifyIdStart;
return this;
}
/**
* 设置 结束 一件事分类表id
* @param classifyIdEnd
*/
public ClassifyRelationQuery classifyIdEnd(Long classifyIdEnd){
this.classifyIdEnd = classifyIdEnd;
return this;
}
/**
* 设置 增加 一件事分类表id
* @param classifyIdIncrement
*/
public ClassifyRelationQuery classifyIdIncrement(Long classifyIdIncrement){
this.classifyIdIncrement = classifyIdIncrement;
return this;
}
/**
* 设置 一件事分类表id
* @param classifyIdList
*/
public ClassifyRelationQuery classifyIdList(List<Long> classifyIdList){
this.classifyIdList = classifyIdList;
return this;
}
/**
* 设置 基础信息json
* @param basicsJson
*/
public ClassifyRelationQuery basicsJson(String basicsJson){
setBasicsJson(basicsJson);
return this;
}
/**
* 设置 基础信息json
* @param basicsJsonList
*/
public ClassifyRelationQuery basicsJsonList(List<String> basicsJsonList){
this.basicsJsonList = basicsJsonList;
return this;
}
/**
* 设置 申请条件json
* @param acceptJson
*/
public ClassifyRelationQuery acceptJson(String acceptJson){
setAcceptJson(acceptJson);
return this;
}
/**
* 设置 申请条件json
* @param acceptJsonList
*/
public ClassifyRelationQuery acceptJsonList(List<String> acceptJsonList){
this.acceptJsonList = acceptJsonList;
return this;
}
/**
* 设置 办理流程json
* @param flowlimitJson
*/
public ClassifyRelationQuery flowlimitJson(String flowlimitJson){
setFlowlimitJson(flowlimitJson);
return this;
}
/**
* 设置 办理流程json
* @param flowlimitJsonList
*/
public ClassifyRelationQuery flowlimitJsonList(List<String> flowlimitJsonList){
this.flowlimitJsonList = flowlimitJsonList;
return this;
}
/**
* 设置 最终选择的材料id one_datum
* @param oneDatumIds
*/
public ClassifyRelationQuery oneDatumIds(String oneDatumIds){
setOneDatumIds(oneDatumIds);
return this;
}
/**
* 设置 最终选择的材料id one_datum
* @param oneDatumIdsList
*/
public ClassifyRelationQuery oneDatumIdsList(List<String> oneDatumIdsList){
this.oneDatumIdsList = oneDatumIdsList;
return this;
}
/**
* 设置 开始 变更时间
* @param updateTimeStart
*/
public ClassifyRelationQuery updateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
return this;
}
/**
* 设置 结束 变更时间
* @param updateTimeEnd
*/
public ClassifyRelationQuery updateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
return this;
}
/**
* 设置 变更用户loginName
* @param updateUser
*/
public ClassifyRelationQuery updateUser(String updateUser){
setUpdateUser(updateUser);
return this;
}
/**
* 设置 变更用户loginName
* @param updateUserList
*/
public ClassifyRelationQuery updateUserList(List<String> updateUserList){
this.updateUserList = updateUserList;
return this;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public ClassifyRelationQuery createTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
return this;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public ClassifyRelationQuery createTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
return this;
}
/**
* 设置 创建用户loginName
* @param createUser
*/
public ClassifyRelationQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户loginName
* @param createUserList
*/
public ClassifyRelationQuery 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<ClassifyRelationQuery> 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<ClassifyRelationQuery> 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<ClassifyRelationQuery> 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<ClassifyRelationQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.model;
import lombok.Data;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@Data
public class ClassifyTreeNode {
private Long id;
private Long parentId;
private ClassifyOptionEntity preQuestion;
private String name;
private Integer type;
private Integer ismust;
private Integer level;
//创建线程安全的list CopyOnWriteArrayList
private List<ClassifyOptionEntity> question = new CopyOnWriteArrayList<>();
private List<ClassifyTreeNode> children = new CopyOnWriteArrayList<>();
}
package com.mortals.xhx.module.classify.model;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author: zxfei
* @date: 2021/8/20 9:25
* @description:
**/
@Data
public class ClassifyVo {
private ClassifyEntity entity = new ClassifyEntity();
public ClassifyEntity getEntity() {
return entity;
}
private List<ClassifyOptionEntity> list = new ArrayList<ClassifyOptionEntity>();
public List<ClassifyOptionEntity> getList() {
return list;
}
public static void main(String[] args) {
ClassifyVo classifyVo = new ClassifyVo();
classifyVo.getEntity().setBasicsId(111L);
ClassifyOptionEntity classifyOptionEntity = new ClassifyOptionEntity();
classifyOptionEntity.setDatumId(22222L);
classifyVo.getList().add(classifyOptionEntity);
System.out.println(JSON.toJSONString(classifyVo));
}
}
package com.mortals.xhx.module.classify.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 问题选项
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Option {
private Long id;
private String name;
private Integer type;
private Integer ismust;
private Integer level;
}
package com.mortals.xhx.module.classify.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.classify.model.ClassifyOptionEntity;
import java.util.List;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface ClassifyOptionService extends ICRUDService<ClassifyOptionEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.classify.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.classify.model.ClassifyRelationEntity;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface ClassifyRelationService extends ICRUDService<ClassifyRelationEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.classify.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.classify.model.ClassifyEntity;
import com.mortals.xhx.module.classify.model.ClassifyVo;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface ClassifyService extends ICRUDService<ClassifyEntity,Long>{
ClassifyEntity saveOrUpdateClassifyTree(ClassifyVo classifyvo, Context context);
int removeQueston(Long basicsId, Context context);
}
\ No newline at end of file
package com.mortals.xhx.module.classify.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.classify.dao.ClassifyOptionDao;
import com.mortals.xhx.module.classify.model.ClassifyOptionEntity;
import com.mortals.xhx.module.classify.service.ClassifyOptionService;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("classifyOptionService")
public class ClassifyOptionServiceImpl extends AbstractCRUDServiceImpl<ClassifyOptionDao, ClassifyOptionEntity, Long> implements ClassifyOptionService {
}
\ No newline at end of file
package com.mortals.xhx.module.classify.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.classify.dao.ClassifyRelationDao;
import com.mortals.xhx.module.classify.model.ClassifyRelationEntity;
import com.mortals.xhx.module.classify.service.ClassifyRelationService;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("classifyRelationService")
public class ClassifyRelationServiceImpl extends AbstractCRUDServiceImpl<ClassifyRelationDao, ClassifyRelationEntity, Long> implements ClassifyRelationService {
}
\ No newline at end of file
package com.mortals.xhx.module.classify.service.impl;
import com.mortals.framework.model.Context;;
import com.mortals.xhx.module.basics.model.BasicsDatumEntity;
import com.mortals.xhx.module.classify.model.*;
import com.mortals.xhx.module.classify.service.ClassifyOptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.classify.dao.ClassifyDao;
import com.mortals.xhx.module.classify.service.ClassifyService;
import org.springframework.util.ObjectUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
*
* @version 1.0.0
*/
@Service("classifyService")
public class ClassifyServiceImpl extends AbstractCRUDServiceImpl<ClassifyDao, ClassifyEntity, Long> implements ClassifyService {
@Autowired
private ClassifyOptionService classifyOptionService;
@Override
public ClassifyEntity saveOrUpdateClassifyTree(ClassifyVo classifyvo, Context context) {
//判断是更新 还是新增
if (ObjectUtils.isEmpty(classifyvo.getEntity().getId())) {
//新增
classifyvo.getEntity().setCreateUser(context.getUser().getLoginName());
classifyvo.getEntity().setCreateTime(new Date());
ClassifyEntity save = this.save(classifyvo.getEntity());
//新增问题库
List<ClassifyOptionEntity> classifyOptionEntityList = classifyvo.getList().stream().map(item -> {
item.setCreateUser(context.getUser().getLoginName());
item.setCreateTime(new Date());
item.setClassifyId(save.getId());
return item;
}).collect(Collectors.toList());
int count = classifyOptionService.save(classifyOptionEntityList);
return save;
} else {
//更新
classifyvo.getEntity().setUpdateUser(context.getUser().getLoginName());
classifyvo.getEntity().setUpdateTime(new Date());
ClassifyEntity update = this.update(classifyvo.getEntity());
//求交集并集更新或删除问题库
List<ClassifyOptionEntity> oldList = classifyOptionService.find(new ClassifyOptionQuery().classifyId(update.getId()));
List<ClassifyOptionEntity> newList = classifyvo.getList();
List<ClassifyOptionEntity> updateList = classifyOptionService.sameList(oldList, newList).stream().map(item -> {
item.setUpdateUser(context.getUser().getLoginName());
item.setUpdateTime(new Date());
return item;
}).collect(Collectors.toList());
classifyOptionService.update(updateList);
//求old 差集 做删除
Long[] delIds = classifyOptionService.diffList(oldList, newList).stream().map(item -> item.getId()).toArray(Long[]::new);
classifyOptionService.remove(delIds, context);
//求new 差集 做新增
List<ClassifyOptionEntity> insertList = classifyOptionService.diffList(newList, oldList).stream().map(item -> {
item.setCreateUser(context.getUser().getLoginName());
item.setCreateTime(new Date());
return item;
}).collect(Collectors.toList());
classifyOptionService.save(insertList);
return update;
}
}
@Override
public int removeQueston(Long basicsId, Context context) {
List<Long> idList = this.find(new ClassifyQuery().basicsId(basicsId)).stream().map(item -> item.getId()).collect(Collectors.toList());
Long[] ids = idList.stream().toArray(Long[]::new);
Long[] optionIds = classifyOptionService.find(new ClassifyOptionQuery().classifyIdList(idList)).stream().map(ClassifyOptionEntity::getId).toArray(Long[]::new);
//级联删除
int remove = this.remove(ids, context);
int remove1 = classifyOptionService.remove(optionIds, context);
return remove+remove1;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.basics.model.BasicsEntity;
import com.mortals.xhx.module.basics.web.BasicsForm;
import com.mortals.xhx.module.classify.model.*;
import com.mortals.xhx.module.classify.service.ClassifyOptionService;
import com.mortals.xhx.module.classify.service.ClassifyRelationService;
import com.mortals.xhx.utils.QRCodeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.module.classify.service.ClassifyService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("classify")
public class ClassifyController extends BaseCRUDJsonMappingController<ClassifyService, ClassifyForm, ClassifyEntity, Long> {
@Autowired
private ClassifyOptionService optionService;
@Autowired
private ClassifyRelationService relationService;
@Autowired
private ParamService paramService;
public ClassifyController() {
super.setFormClass(ClassifyForm.class);
super.setModuleDesc("一件事问题分类");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, ClassifyForm form, Map<String, Object> model, Context context) {
this.addDict(model, "typeOptions", paramService.getParamByFirstOrganize(Constant.Param_typeOptions));
}
/**
* 根据一件事查询问题树
*/
@PostMapping(value = "getListByBasicsId")
public String getListByParentId(@RequestParam(value = "basicsId") Long basicsId) {
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
try {
//根据id获取所有事项
List<ClassifyEntity> classifyEntityList = this.service.find(new ClassifyQuery().basicsId(basicsId));
//构建问题树的根节点
ClassifyEntity root = classifyEntityList.stream().filter(f -> f.getParentId() == -1L).findFirst().orElseGet(() -> null);
if (!ObjectUtils.isEmpty(root)) {
ClassifyTreeNode classifyTreeNode = new ClassifyTreeNode();
classifyTreeNode.setName(root.getName());
classifyTreeNode.setId(root.getId());
classifyTreeNode.setIsmust(root.getIsmust());
classifyTreeNode.setType(root.getType());
classifyTreeNode.setLevel(root.getLevel());
//设置问题库
List<ClassifyOptionEntity> classifyOptionEntities = this.optionService.find(new ClassifyOptionQuery().classifyId(root.getId()));
classifyTreeNode.setQuestion(classifyOptionEntities);
ClassifyTreeNode data = this.recursionTree(classifyTreeNode);
ret.put(KEY_RESULT_DATA, data);
}
} catch (Exception e) {
log.error("根据parentId查询子信息错误", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, e.getMessage());
}
return ret.toJSONString();
}
/**
* 保存或更新问题树
*/
@PostMapping(value = "saveClassify")
@RepeatSubmit
public String saveClassify(ClassifyVo classifyVo) {
JSONObject ret = new JSONObject();
Map<String, Object> model = new HashMap();
String busiDesc = "保存" + this.getModuleDesc();
try {
ClassifyEntity entity = this.service.saveOrUpdateClassifyTree(classifyVo, getContext());
//更新
// String preAnsOptionId = request.getParameter("preAnsOption");
if (!ObjectUtils.isEmpty(entity.getParentOptionId())) {
ClassifyOptionEntity optionEntity = new ClassifyOptionEntity();
optionEntity.setClassifyNextId(entity.getId());
optionEntity.setUpdateUser(getContext().getUser().getLoginName());
optionEntity.setUpdateTime(new Date());
optionService.updateBatch(optionEntity, new ClassifyOptionQuery().id(entity.getParentOptionId()), getContext());
}
model.put("id", entity.getId());
ret.put(KEY_RESULT_DATA, model);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("保存或更新问题树", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
this.doException(request, busiDesc, model, e);
}
return ret.toJSONString();
}
/**
* 新增时校验返回问题选项
*/
@PostMapping(value = "checkAddQuestion")
public String checkAddQuestion(@RequestParam(value = "classifyId") Long classifyId) {
JSONObject ret = new JSONObject();
Map<String, Object> model = new HashMap();
String busiDesc = "校验新增问题" + this.getModuleDesc();
try {
//查询当前问题下子节点已有个数
List<ClassifyOptionEntity> classifyEntityList = this.optionService.find(new ClassifyOptionQuery().classifyId(classifyId));
List<ClassifyEntity> classifyChilds = this.service.find(new ClassifyQuery().parentId(classifyId));
if (classifyChilds.size() >= classifyEntityList.size()) {
//当前节点子节点已经满了,不能再新增,请先编辑添加当前节点问题选项再添加子问题
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, "请先编辑添加当前节点问题选项再添加子问题!");
return ret.toJSONString();
}
//查询当前问题下子节点已有个数
List<ClassifyOptionEntity> unChildList = classifyEntityList.stream().filter(f -> f.getClassifyNextId() == 0 || f.getClassifyNextId() == null).collect(Collectors.toList());
//List<ClassifyOptionEntity> haveChildList = this.optionService.find(new ClassifyOptionQuery().classifyNextId(classifyId));
//求差集,返回新增节点可选择的子问题
// List<ClassifyOptionEntity> unChildList = this.optionService.diffList(classifyEntityList, haveChildList);
model.put("preAnsOptions", unChildList);
ret.put(KEY_RESULT_DATA, model);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("校验新增问题", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
this.doException(request, busiDesc, model, e);
}
return ret.toJSONString();
}
@PostMapping(value = "getQuestionById")
public String getQuestionById(@RequestParam(value = "classifyId") Long classifyId) {
JSONObject ret = new JSONObject();
Map<String, Object> model = new HashMap();
String busiDesc = "获取问题" + this.getModuleDesc();
try {
ClassifyEntity entity = this.service.get(classifyId);
List<ClassifyOptionEntity> optionList = this.optionService.find(new ClassifyOptionQuery().classifyId(classifyId));
ClassifyOptionEntity curOption = this.optionService.selectOne(new ClassifyOptionQuery().classifyId(entity.getParentId()).classifyNextId(entity.getId()), getContext());
List<ClassifyOptionEntity> unChildList = this.optionService.find(new ClassifyOptionQuery().classifyId(entity.getParentId())).stream().filter(f -> f.getClassifyNextId() == 0 || f.getClassifyNextId() == null).collect(Collectors.toList());
unChildList.add(curOption);
model.put("preAnsOptions", unChildList);
model.put(KEY_RESULT_ENTITY, entity);
model.put(KEY_RESULT_LIST, optionList);
ret.put(KEY_RESULT_DATA, model);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("获取问题", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
this.doException(request, busiDesc, model, e);
}
return ret.toJSONString();
}
@PostMapping(value = "removeQuestion")
public String removeQuestion(@RequestParam(value = "basicsId") Long basicsId) {
JSONObject ret = new JSONObject();
Map<String, Object> model = new HashMap();
String busiDesc = "清除问题" + this.getModuleDesc();
try {
this.service.removeQueston(basicsId,getContext());
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("清除问题", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
this.doException(request, busiDesc, model, e);
}
return ret.toJSONString();
}
public ClassifyTreeNode recursionTree(ClassifyTreeNode node) {
List<ClassifyEntity> list = this.service.find(new ClassifyQuery().parentId(node.getId()));
list.stream().peek(item -> {
ClassifyTreeNode classifyTreeNode = new ClassifyTreeNode();
classifyTreeNode.setId(item.getId());
classifyTreeNode.setName(item.getName());
classifyTreeNode.setIsmust(item.getIsmust());
classifyTreeNode.setType(item.getType());
classifyTreeNode.setLevel(item.getLevel());
List<ClassifyOptionEntity> classifyOptionList = this.optionService.find(new ClassifyOptionQuery().classifyId(item.getId()));
classifyTreeNode.setQuestion(classifyOptionList);
//设置当前问题关联的上一个问题选项
ClassifyOptionEntity preClassifyOptionEntity = this.optionService.selectOne(new ClassifyOptionQuery().classifyNextId(item.getId()), null);
classifyTreeNode.setPreQuestion(preClassifyOptionEntity);
node.getChildren().add(recursionTree(classifyTreeNode));
}).count();
return node;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.classify.model.ClassifyEntity;
import com.mortals.xhx.module.classify.model.ClassifyQuery;
/**
* <p>Title: 一件事问题分类</p>
* <p>Description: ClassifyForm </p>
* @author
* @version 1.0.0
*/
public class ClassifyForm extends BaseCRUDFormLong<ClassifyEntity> {
private ClassifyEntity entity = new ClassifyEntity();
private ClassifyQuery query = new ClassifyQuery();
public ClassifyForm(){
}
@Override
public ClassifyEntity getEntity() {
return entity;
}
public void setClassify(ClassifyEntity entity) {
this.entity = entity;
}
@Override
public ClassifyQuery getQuery() {
return query;
}
public void setQuery(ClassifyQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
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.classify.model.ClassifyOptionEntity;
import com.mortals.xhx.module.classify.service.ClassifyOptionService;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("classify/option")
public class ClassifyOptionController extends BaseCRUDJsonMappingController<ClassifyOptionService,ClassifyOptionForm,ClassifyOptionEntity,Long> {
public ClassifyOptionController(){
super.setFormClass(ClassifyOptionForm.class);
super.setModuleDesc("一件事问题选项表");
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.classify.model.ClassifyOptionEntity;
import com.mortals.xhx.module.classify.model.ClassifyOptionQuery;
/**
* <p>Title: 一件事问题选项表</p>
* <p>Description: ClassifyOptionForm </p>
* @author
* @version 1.0.0
*/
public class ClassifyOptionForm extends BaseCRUDFormLong<ClassifyOptionEntity> {
private ClassifyOptionEntity entity = new ClassifyOptionEntity();
private ClassifyOptionQuery query = new ClassifyOptionQuery();
public ClassifyOptionForm(){
}
@Override
public ClassifyOptionEntity getEntity() {
return entity;
}
public void setClassifyOption(ClassifyOptionEntity entity) {
this.entity = entity;
}
@Override
public ClassifyOptionQuery getQuery() {
return query;
}
public void setQuery(ClassifyOptionQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
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.classify.model.ClassifyRelationEntity;
import com.mortals.xhx.module.classify.service.ClassifyRelationService;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("classify/relation")
public class ClassifyRelationController extends BaseCRUDJsonMappingController<ClassifyRelationService,ClassifyRelationForm,ClassifyRelationEntity,Long> {
public ClassifyRelationController(){
super.setFormClass(ClassifyRelationForm.class);
super.setModuleDesc("一件事分类关联表 关联材料和修改的基础信息等");
}
}
\ No newline at end of file
package com.mortals.xhx.module.classify.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.classify.model.ClassifyRelationEntity;
import com.mortals.xhx.module.classify.model.ClassifyRelationQuery;
/**
* <p>Title: 一件事分类关联表 关联材料和修改的基础信息等</p>
* <p>Description: ClassifyRelationForm </p>
* @author
* @version 1.0.0
*/
public class ClassifyRelationForm extends BaseCRUDFormLong<ClassifyRelationEntity> {
private ClassifyRelationEntity entity = new ClassifyRelationEntity();
private ClassifyRelationQuery query = new ClassifyRelationQuery();
public ClassifyRelationForm(){
}
@Override
public ClassifyRelationEntity getEntity() {
return entity;
}
public void setClassifyRelation(ClassifyRelationEntity entity) {
this.entity = entity;
}
@Override
public ClassifyRelationQuery getQuery() {
return query;
}
public void setQuery(ClassifyRelationQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.datum.model.DatumEntity;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface DatumDao extends ICRUDDao<DatumEntity,Long>{
}
package com.mortals.xhx.module.datum.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.datum.model.DatumFileEntity;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface DatumFileDao extends ICRUDDao<DatumFileEntity,Long>{
}
package com.mortals.xhx.module.datum.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.datum.dao.DatumDao;
import com.mortals.xhx.module.datum.model.DatumEntity;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("datumDao")
public class DatumDaoImpl extends BaseCRUDDaoMybatis<DatumEntity,Long> implements DatumDao {
}
package com.mortals.xhx.module.datum.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.datum.dao.DatumFileDao;
import com.mortals.xhx.module.datum.model.DatumFileEntity;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("datumFileDao")
public class DatumFileDaoImpl extends BaseCRUDDaoMybatis<DatumFileEntity,Long> implements DatumFileDao {
}
package com.mortals.xhx.module.datum.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Datum
* date: 2021-8-18 14:24:46
*/
public class DatumEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886241L;
/**
* 材料名
*/
private String materialName;
/**
* 基础表one_basics id
*/
private Long basicsId;
/**
* 事项表yth_matter id 表示从一体化获取的材料
*/
private Long matterid;
/**
* 材料表yth_datum id 表示从一体化获取的材料
*/
private Long datumId;
/**
* 材料形式
*/
private Integer materialProperty;
/**
* 是否必交,0 否 1 是 默认0
*/
private Integer isMust;
/**
* 材料类型
*/
private Integer materialType;
/**
* 电子材料格式
*/
private Integer electronicgs;
/**
* 材料来源渠道
*/
private Integer materialSource;
/**
* 纸质材料份数
*/
private Integer paperNum;
/**
* 纸质材料规格
*/
private Integer paperGg;
/**
* 减免模式
*/
private Integer jianmMs;
/**
* 盖章方式
*/
private Integer sealWay;
/**
* 是否减免
*/
private Integer isjianm;
/**
* 材料是否容缺
*/
private Integer isLack;
/**
* 材料地址
*/
private String ybUrl;
/**
* 来源渠道说明
*/
private Integer materialSourceSm;
/**
* 填报须知
*/
private String remarkSub;
/**
* 受理标准
*/
private String remark;
/**
* 要求提供材料的依据
*/
private String clauseContent;
/**
* 备注
*/
private String summary;
/**
* 0正常 1删除
*/
private Integer valid;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public DatumEntity(){
}
/**
* 获取 材料名
* @return materialName
*/
public String getMaterialName() {
return this.materialName;
}
/**
* 设置 材料名
* @param materialName
*/
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
/**
* 获取 基础表one_basics id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 基础表one_basics id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 事项表yth_matter id 表示从一体化获取的材料
* @return matterid
*/
public Long getMatterid() {
return this.matterid;
}
/**
* 设置 事项表yth_matter id 表示从一体化获取的材料
* @param matterid
*/
public void setMatterid(Long matterid) {
this.matterid = matterid;
}
/**
* 获取 材料表yth_datum id 表示从一体化获取的材料
* @return datumId
*/
public Long getDatumId() {
return this.datumId;
}
/**
* 设置 材料表yth_datum id 表示从一体化获取的材料
* @param datumId
*/
public void setDatumId(Long datumId) {
this.datumId = datumId;
}
/**
* 获取 材料形式
* @return materialProperty
*/
public Integer getMaterialProperty() {
return this.materialProperty;
}
/**
* 设置 材料形式
* @param materialProperty
*/
public void setMaterialProperty(Integer materialProperty) {
this.materialProperty = materialProperty;
}
/**
* 获取 是否必交,0 否 1 是 默认0
* @return isMust
*/
public Integer getIsMust() {
return this.isMust;
}
/**
* 设置 是否必交,0 否 1 是 默认0
* @param isMust
*/
public void setIsMust(Integer isMust) {
this.isMust = isMust;
}
/**
* 获取 材料类型
* @return materialType
*/
public Integer getMaterialType() {
return this.materialType;
}
/**
* 设置 材料类型
* @param materialType
*/
public void setMaterialType(Integer materialType) {
this.materialType = materialType;
}
/**
* 获取 电子材料格式
* @return electronicgs
*/
public Integer getElectronicgs() {
return this.electronicgs;
}
/**
* 设置 电子材料格式
* @param electronicgs
*/
public void setElectronicgs(Integer electronicgs) {
this.electronicgs = electronicgs;
}
/**
* 获取 材料来源渠道
* @return materialSource
*/
public Integer getMaterialSource() {
return this.materialSource;
}
/**
* 设置 材料来源渠道
* @param materialSource
*/
public void setMaterialSource(Integer materialSource) {
this.materialSource = materialSource;
}
/**
* 获取 纸质材料份数
* @return paperNum
*/
public Integer getPaperNum() {
return this.paperNum;
}
/**
* 设置 纸质材料份数
* @param paperNum
*/
public void setPaperNum(Integer paperNum) {
this.paperNum = paperNum;
}
/**
* 获取 纸质材料规格
* @return paperGg
*/
public Integer getPaperGg() {
return this.paperGg;
}
/**
* 设置 纸质材料规格
* @param paperGg
*/
public void setPaperGg(Integer paperGg) {
this.paperGg = paperGg;
}
/**
* 获取 减免模式
* @return jianmMs
*/
public Integer getJianmMs() {
return this.jianmMs;
}
/**
* 设置 减免模式
* @param jianmMs
*/
public void setJianmMs(Integer jianmMs) {
this.jianmMs = jianmMs;
}
/**
* 获取 盖章方式
* @return sealWay
*/
public Integer getSealWay() {
return this.sealWay;
}
/**
* 设置 盖章方式
* @param sealWay
*/
public void setSealWay(Integer sealWay) {
this.sealWay = sealWay;
}
/**
* 获取 是否减免
* @return isjianm
*/
public Integer getIsjianm() {
return this.isjianm;
}
/**
* 设置 是否减免
* @param isjianm
*/
public void setIsjianm(Integer isjianm) {
this.isjianm = isjianm;
}
/**
* 获取 材料是否容缺
* @return isLack
*/
public Integer getIsLack() {
return this.isLack;
}
/**
* 设置 材料是否容缺
* @param isLack
*/
public void setIsLack(Integer isLack) {
this.isLack = isLack;
}
/**
* 获取 材料地址
* @return ybUrl
*/
public String getYbUrl() {
return this.ybUrl;
}
/**
* 设置 材料地址
* @param ybUrl
*/
public void setYbUrl(String ybUrl) {
this.ybUrl = ybUrl;
}
/**
* 获取 来源渠道说明
* @return materialSourceSm
*/
public Integer getMaterialSourceSm() {
return this.materialSourceSm;
}
/**
* 设置 来源渠道说明
* @param materialSourceSm
*/
public void setMaterialSourceSm(Integer materialSourceSm) {
this.materialSourceSm = materialSourceSm;
}
/**
* 获取 填报须知
* @return remarkSub
*/
public String getRemarkSub() {
return this.remarkSub;
}
/**
* 设置 填报须知
* @param remarkSub
*/
public void setRemarkSub(String remarkSub) {
this.remarkSub = remarkSub;
}
/**
* 获取 受理标准
* @return remark
*/
public String getRemark() {
return this.remark;
}
/**
* 设置 受理标准
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 获取 要求提供材料的依据
* @return clauseContent
*/
public String getClauseContent() {
return this.clauseContent;
}
/**
* 设置 要求提供材料的依据
* @param clauseContent
*/
public void setClauseContent(String clauseContent) {
this.clauseContent = clauseContent;
}
/**
* 获取 备注
* @return summary
*/
public String getSummary() {
return this.summary;
}
/**
* 设置 备注
* @param summary
*/
public void setSummary(String summary) {
this.summary = summary;
}
/**
* 获取 0正常 1删除
* @return valid
*/
public Integer getValid() {
return this.valid;
}
/**
* 设置 0正常 1删除
* @param valid
*/
public void setValid(Integer valid) {
this.valid = valid;
}
/**
* 获取 变更时间
* @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 DatumEntity) {
DatumEntity tmp = (DatumEntity) 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(",materialName:").append(getMaterialName())
.append(",basicsId:").append(getBasicsId())
.append(",matterid:").append(getMatterid())
.append(",datumId:").append(getDatumId())
.append(",materialProperty:").append(getMaterialProperty())
.append(",isMust:").append(getIsMust())
.append(",materialType:").append(getMaterialType())
.append(",electronicgs:").append(getElectronicgs())
.append(",materialSource:").append(getMaterialSource())
.append(",paperNum:").append(getPaperNum())
.append(",paperGg:").append(getPaperGg())
.append(",jianmMs:").append(getJianmMs())
.append(",sealWay:").append(getSealWay())
.append(",isjianm:").append(getIsjianm())
.append(",isLack:").append(getIsLack())
.append(",ybUrl:").append(getYbUrl())
.append(",materialSourceSm:").append(getMaterialSourceSm())
.append(",remarkSub:").append(getRemarkSub())
.append(",remark:").append(getRemark())
.append(",clauseContent:").append(getClauseContent())
.append(",summary:").append(getSummary())
.append(",valid:").append(getValid())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.materialName = null;
this.basicsId = null;
this.matterid = null;
this.datumId = null;
this.materialProperty = null;
this.isMust = null;
this.materialType = null;
this.electronicgs = null;
this.materialSource = null;
this.paperNum = null;
this.paperGg = null;
this.jianmMs = null;
this.sealWay = null;
this.isjianm = null;
this.isLack = null;
this.ybUrl = null;
this.materialSourceSm = null;
this.remarkSub = null;
this.remark = null;
this.clauseContent = null;
this.summary = null;
this.valid = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:DatumFile
* date: 2021-8-18 14:24:46
*/
public class DatumFileEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886325L;
/**
* 附件ID
*/
private Long tid;
/**
* 材料id 政务网
*/
private Long datumid;
/**
* 用户事项id(gra_matterdatum的id)
*/
private Integer fdatumid;
/**
* 上传资料地址
*/
private String file;
/**
* 上传时间
*/
private Date uploadtime;
/**
* 状态 1资料上传 2确认提交
*/
private Integer type;
/**
* 审核是否不通过 0待审核 1不通过 2通过
*/
private Integer examine;
/**
* 不通过原因
*/
private String summary;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public DatumFileEntity(){
}
/**
* 获取 附件ID
* @return tid
*/
public Long getTid() {
return this.tid;
}
/**
* 设置 附件ID
* @param tid
*/
public void setTid(Long tid) {
this.tid = tid;
}
/**
* 获取 材料id 政务网
* @return datumid
*/
public Long getDatumid() {
return this.datumid;
}
/**
* 设置 材料id 政务网
* @param datumid
*/
public void setDatumid(Long datumid) {
this.datumid = datumid;
}
/**
* 获取 用户事项id(gra_matterdatum的id)
* @return fdatumid
*/
public Integer getFdatumid() {
return this.fdatumid;
}
/**
* 设置 用户事项id(gra_matterdatum的id)
* @param fdatumid
*/
public void setFdatumid(Integer fdatumid) {
this.fdatumid = fdatumid;
}
/**
* 获取 上传资料地址
* @return file
*/
public String getFile() {
return this.file;
}
/**
* 设置 上传资料地址
* @param file
*/
public void setFile(String file) {
this.file = file;
}
/**
* 获取 上传时间
* @return uploadtime
*/
public Date getUploadtime() {
return this.uploadtime;
}
/**
* 设置 上传时间
* @param uploadtime
*/
public void setUploadtime(Date 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;
}
/**
* 获取 审核是否不通过 0待审核 1不通过 2通过
* @return examine
*/
public Integer getExamine() {
return this.examine;
}
/**
* 设置 审核是否不通过 0待审核 1不通过 2通过
* @param examine
*/
public void setExamine(Integer examine) {
this.examine = examine;
}
/**
* 获取 不通过原因
* @return summary
*/
public String getSummary() {
return this.summary;
}
/**
* 设置 不通过原因
* @param summary
*/
public void setSummary(String summary) {
this.summary = summary;
}
/**
* 获取 变更时间
* @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 DatumFileEntity) {
DatumFileEntity tmp = (DatumFileEntity) 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(",tid:").append(getTid())
.append(",datumid:").append(getDatumid())
.append(",fdatumid:").append(getFdatumid())
.append(",file:").append(getFile())
.append(",uploadtime:").append(getUploadtime())
.append(",type:").append(getType())
.append(",examine:").append(getExamine())
.append(",summary:").append(getSummary())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.tid = null;
this.datumid = null;
this.fdatumid = null;
this.file = null;
this.uploadtime = null;
this.type = null;
this.examine = null;
this.summary = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:DatumFile
* date: 2021-8-18 14:24:46
*/
public class DatumFileQuery extends DatumFileEntity{
private static final long serialVersionUID = 1629267886327L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 开始 附件ID */
private Long tidStart;
/** 结束 附件ID */
private Long tidEnd;
/** 增加 附件ID */
private Long tidIncrement;
/** 附件ID */
private List <Long> tidList;
/** 开始 材料id 政务网 */
private Long datumidStart;
/** 结束 材料id 政务网 */
private Long datumidEnd;
/** 增加 材料id 政务网 */
private Long datumidIncrement;
/** 材料id 政务网 */
private List <Long> datumidList;
/** 开始 用户事项id(gra_matterdatum的id) */
private Integer fdatumidStart;
/** 结束 用户事项id(gra_matterdatum的id) */
private Integer fdatumidEnd;
/** 增加 用户事项id(gra_matterdatum的id) */
private Integer fdatumidIncrement;
/** 用户事项id(gra_matterdatum的id) */
private List <Integer> fdatumidList;
/** 上传资料地址 */
private List<String> fileList;
/** 开始 上传时间 */
private String uploadtimeStart;
/** 结束 上传时间 */
private String uploadtimeEnd;
/** 开始 状态 1资料上传 2确认提交 */
private Integer typeStart;
/** 结束 状态 1资料上传 2确认提交 */
private Integer typeEnd;
/** 增加 状态 1资料上传 2确认提交 */
private Integer typeIncrement;
/** 状态 1资料上传 2确认提交 */
private List <Integer> typeList;
/** 开始 审核是否不通过 0待审核 1不通过 2通过 */
private Integer examineStart;
/** 结束 审核是否不通过 0待审核 1不通过 2通过 */
private Integer examineEnd;
/** 增加 审核是否不通过 0待审核 1不通过 2通过 */
private Integer examineIncrement;
/** 审核是否不通过 0待审核 1不通过 2通过 */
private List <Integer> examineList;
/** 不通过原因 */
private List<String> summaryList;
/** 开始 变更时间 */
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<DatumFileQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<DatumFileQuery> andConditionList;
public DatumFileQuery(){
}
/**
* 获取 开始 主键,自增长
* @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 tidStart
*/
public Long getTidStart(){
return this.tidStart;
}
/**
* 设置 开始 附件ID
* @param tidStart
*/
public void setTidStart(Long tidStart){
this.tidStart = tidStart;
}
/**
* 获取 结束 附件ID
* @return tidEnd
*/
public Long getTidEnd(){
return this.tidEnd;
}
/**
* 设置 结束 附件ID
* @param tidEnd
*/
public void setTidEnd(Long tidEnd){
this.tidEnd = tidEnd;
}
/**
* 获取 增加 附件ID
* @return tidIncrement
*/
public Long getTidIncrement(){
return this.tidIncrement;
}
/**
* 设置 增加 附件ID
* @param tidIncrement
*/
public void setTidIncrement(Long tidIncrement){
this.tidIncrement = tidIncrement;
}
/**
* 获取 附件ID
* @return tidList
*/
public List<Long> getTidList(){
return this.tidList;
}
/**
* 设置 附件ID
* @param tidList
*/
public void setTidList(List<Long> tidList){
this.tidList = tidList;
}
/**
* 获取 开始 材料id 政务网
* @return datumidStart
*/
public Long getDatumidStart(){
return this.datumidStart;
}
/**
* 设置 开始 材料id 政务网
* @param datumidStart
*/
public void setDatumidStart(Long datumidStart){
this.datumidStart = datumidStart;
}
/**
* 获取 结束 材料id 政务网
* @return datumidEnd
*/
public Long getDatumidEnd(){
return this.datumidEnd;
}
/**
* 设置 结束 材料id 政务网
* @param datumidEnd
*/
public void setDatumidEnd(Long datumidEnd){
this.datumidEnd = datumidEnd;
}
/**
* 获取 增加 材料id 政务网
* @return datumidIncrement
*/
public Long getDatumidIncrement(){
return this.datumidIncrement;
}
/**
* 设置 增加 材料id 政务网
* @param datumidIncrement
*/
public void setDatumidIncrement(Long datumidIncrement){
this.datumidIncrement = datumidIncrement;
}
/**
* 获取 材料id 政务网
* @return datumidList
*/
public List<Long> getDatumidList(){
return this.datumidList;
}
/**
* 设置 材料id 政务网
* @param datumidList
*/
public void setDatumidList(List<Long> datumidList){
this.datumidList = datumidList;
}
/**
* 获取 开始 用户事项id(gra_matterdatum的id)
* @return fdatumidStart
*/
public Integer getFdatumidStart(){
return this.fdatumidStart;
}
/**
* 设置 开始 用户事项id(gra_matterdatum的id)
* @param fdatumidStart
*/
public void setFdatumidStart(Integer fdatumidStart){
this.fdatumidStart = fdatumidStart;
}
/**
* 获取 结束 用户事项id(gra_matterdatum的id)
* @return fdatumidEnd
*/
public Integer getFdatumidEnd(){
return this.fdatumidEnd;
}
/**
* 设置 结束 用户事项id(gra_matterdatum的id)
* @param fdatumidEnd
*/
public void setFdatumidEnd(Integer fdatumidEnd){
this.fdatumidEnd = fdatumidEnd;
}
/**
* 获取 增加 用户事项id(gra_matterdatum的id)
* @return fdatumidIncrement
*/
public Integer getFdatumidIncrement(){
return this.fdatumidIncrement;
}
/**
* 设置 增加 用户事项id(gra_matterdatum的id)
* @param fdatumidIncrement
*/
public void setFdatumidIncrement(Integer fdatumidIncrement){
this.fdatumidIncrement = fdatumidIncrement;
}
/**
* 获取 用户事项id(gra_matterdatum的id)
* @return fdatumidList
*/
public List<Integer> getFdatumidList(){
return this.fdatumidList;
}
/**
* 设置 用户事项id(gra_matterdatum的id)
* @param fdatumidList
*/
public void setFdatumidList(List<Integer> fdatumidList){
this.fdatumidList = fdatumidList;
}
/**
* 获取 上传资料地址
* @return fileList
*/
public List<String> getFileList(){
return this.fileList;
}
/**
* 设置 上传资料地址
* @param fileList
*/
public void setFileList(List<String> fileList){
this.fileList = fileList;
}
/**
* 获取 开始 上传时间
* @return uploadtimeStart
*/
public String getUploadtimeStart(){
return this.uploadtimeStart;
}
/**
* 设置 开始 上传时间
* @param uploadtimeStart
*/
public void setUploadtimeStart(String uploadtimeStart){
this.uploadtimeStart = uploadtimeStart;
}
/**
* 获取 结束 上传时间
* @return uploadtimeEnd
*/
public String getUploadtimeEnd(){
return this.uploadtimeEnd;
}
/**
* 设置 结束 上传时间
* @param uploadtimeEnd
*/
public void setUploadtimeEnd(String uploadtimeEnd){
this.uploadtimeEnd = uploadtimeEnd;
}
/**
* 获取 开始 状态 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;
}
/**
* 获取 开始 审核是否不通过 0待审核 1不通过 2通过
* @return examineStart
*/
public Integer getExamineStart(){
return this.examineStart;
}
/**
* 设置 开始 审核是否不通过 0待审核 1不通过 2通过
* @param examineStart
*/
public void setExamineStart(Integer examineStart){
this.examineStart = examineStart;
}
/**
* 获取 结束 审核是否不通过 0待审核 1不通过 2通过
* @return examineEnd
*/
public Integer getExamineEnd(){
return this.examineEnd;
}
/**
* 设置 结束 审核是否不通过 0待审核 1不通过 2通过
* @param examineEnd
*/
public void setExamineEnd(Integer examineEnd){
this.examineEnd = examineEnd;
}
/**
* 获取 增加 审核是否不通过 0待审核 1不通过 2通过
* @return examineIncrement
*/
public Integer getExamineIncrement(){
return this.examineIncrement;
}
/**
* 设置 增加 审核是否不通过 0待审核 1不通过 2通过
* @param examineIncrement
*/
public void setExamineIncrement(Integer examineIncrement){
this.examineIncrement = examineIncrement;
}
/**
* 获取 审核是否不通过 0待审核 1不通过 2通过
* @return examineList
*/
public List<Integer> getExamineList(){
return this.examineList;
}
/**
* 设置 审核是否不通过 0待审核 1不通过 2通过
* @param examineList
*/
public void setExamineList(List<Integer> examineList){
this.examineList = examineList;
}
/**
* 获取 不通过原因
* @return summaryList
*/
public List<String> getSummaryList(){
return this.summaryList;
}
/**
* 设置 不通过原因
* @param summaryList
*/
public void setSummaryList(List<String> summaryList){
this.summaryList = summaryList;
}
/**
* 获取 开始 变更时间
* @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;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<DatumFileQuery> 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<DatumFileQuery> 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<DatumFileQuery> 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<DatumFileQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Datum
* date: 2021-8-18 14:24:46
*/
public class DatumQuery extends DatumEntity{
private static final long serialVersionUID = 1629267886247L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 材料名 */
private List<String> materialNameList;
/** 开始 基础表one_basics id */
private Long basicsIdStart;
/** 结束 基础表one_basics id */
private Long basicsIdEnd;
/** 增加 基础表one_basics id */
private Long basicsIdIncrement;
/** 基础表one_basics id */
private List <Long> basicsIdList;
/** 开始 事项表yth_matter id 表示从一体化获取的材料 */
private Long matteridStart;
/** 结束 事项表yth_matter id 表示从一体化获取的材料 */
private Long matteridEnd;
/** 增加 事项表yth_matter id 表示从一体化获取的材料 */
private Long matteridIncrement;
/** 事项表yth_matter id 表示从一体化获取的材料 */
private List <Long> matteridList;
/** 开始 材料表yth_datum id 表示从一体化获取的材料 */
private Long datumIdStart;
/** 结束 材料表yth_datum id 表示从一体化获取的材料 */
private Long datumIdEnd;
/** 增加 材料表yth_datum id 表示从一体化获取的材料 */
private Long datumIdIncrement;
/** 材料表yth_datum id 表示从一体化获取的材料 */
private List <Long> datumIdList;
/** 开始 材料形式 */
private Integer materialPropertyStart;
/** 结束 材料形式 */
private Integer materialPropertyEnd;
/** 增加 材料形式 */
private Integer materialPropertyIncrement;
/** 材料形式 */
private List <Integer> materialPropertyList;
/** 开始 是否必交,0 否 1 是 默认0 */
private Integer isMustStart;
/** 结束 是否必交,0 否 1 是 默认0 */
private Integer isMustEnd;
/** 增加 是否必交,0 否 1 是 默认0 */
private Integer isMustIncrement;
/** 是否必交,0 否 1 是 默认0 */
private List <Integer> isMustList;
/** 开始 材料类型 */
private Integer materialTypeStart;
/** 结束 材料类型 */
private Integer materialTypeEnd;
/** 增加 材料类型 */
private Integer materialTypeIncrement;
/** 材料类型 */
private List <Integer> materialTypeList;
/** 开始 电子材料格式 */
private Integer electronicgsStart;
/** 结束 电子材料格式 */
private Integer electronicgsEnd;
/** 增加 电子材料格式 */
private Integer electronicgsIncrement;
/** 电子材料格式 */
private List <Integer> electronicgsList;
/** 开始 材料来源渠道 */
private Integer materialSourceStart;
/** 结束 材料来源渠道 */
private Integer materialSourceEnd;
/** 增加 材料来源渠道 */
private Integer materialSourceIncrement;
/** 材料来源渠道 */
private List <Integer> materialSourceList;
/** 开始 纸质材料份数 */
private Integer paperNumStart;
/** 结束 纸质材料份数 */
private Integer paperNumEnd;
/** 增加 纸质材料份数 */
private Integer paperNumIncrement;
/** 纸质材料份数 */
private List <Integer> paperNumList;
/** 开始 纸质材料规格 */
private Integer paperGgStart;
/** 结束 纸质材料规格 */
private Integer paperGgEnd;
/** 增加 纸质材料规格 */
private Integer paperGgIncrement;
/** 纸质材料规格 */
private List <Integer> paperGgList;
/** 开始 减免模式 */
private Integer jianmMsStart;
/** 结束 减免模式 */
private Integer jianmMsEnd;
/** 增加 减免模式 */
private Integer jianmMsIncrement;
/** 减免模式 */
private List <Integer> jianmMsList;
/** 开始 盖章方式 */
private Integer sealWayStart;
/** 结束 盖章方式 */
private Integer sealWayEnd;
/** 增加 盖章方式 */
private Integer sealWayIncrement;
/** 盖章方式 */
private List <Integer> sealWayList;
/** 开始 是否减免 */
private Integer isjianmStart;
/** 结束 是否减免 */
private Integer isjianmEnd;
/** 增加 是否减免 */
private Integer isjianmIncrement;
/** 是否减免 */
private List <Integer> isjianmList;
/** 开始 材料是否容缺 */
private Integer isLackStart;
/** 结束 材料是否容缺 */
private Integer isLackEnd;
/** 增加 材料是否容缺 */
private Integer isLackIncrement;
/** 材料是否容缺 */
private List <Integer> isLackList;
/** 材料地址 */
private List<String> ybUrlList;
/** 开始 来源渠道说明 */
private Integer materialSourceSmStart;
/** 结束 来源渠道说明 */
private Integer materialSourceSmEnd;
/** 增加 来源渠道说明 */
private Integer materialSourceSmIncrement;
/** 来源渠道说明 */
private List <Integer> materialSourceSmList;
/** 填报须知 */
private List<String> remarkSubList;
/** 受理标准 */
private List<String> remarkList;
/** 要求提供材料的依据 */
private List<String> clauseContentList;
/** 备注 */
private List<String> summaryList;
/** 开始 0正常 1删除 */
private Integer validStart;
/** 结束 0正常 1删除 */
private Integer validEnd;
/** 增加 0正常 1删除 */
private Integer validIncrement;
/** 0正常 1删除 */
private List <Integer> validList;
/** 开始 变更时间 */
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<DatumQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<DatumQuery> andConditionList;
public DatumQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 材料名
* @return materialNameList
*/
public List<String> getMaterialNameList(){
return this.materialNameList;
}
/**
* 设置 材料名
* @param materialNameList
*/
public void setMaterialNameList(List<String> materialNameList){
this.materialNameList = materialNameList;
}
/**
* 获取 开始 基础表one_basics id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 基础表one_basics id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 基础表one_basics id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 基础表one_basics id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 基础表one_basics id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 基础表one_basics id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 基础表one_basics id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 基础表one_basics id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 开始 事项表yth_matter id 表示从一体化获取的材料
* @return matteridStart
*/
public Long getMatteridStart(){
return this.matteridStart;
}
/**
* 设置 开始 事项表yth_matter id 表示从一体化获取的材料
* @param matteridStart
*/
public void setMatteridStart(Long matteridStart){
this.matteridStart = matteridStart;
}
/**
* 获取 结束 事项表yth_matter id 表示从一体化获取的材料
* @return matteridEnd
*/
public Long getMatteridEnd(){
return this.matteridEnd;
}
/**
* 设置 结束 事项表yth_matter id 表示从一体化获取的材料
* @param matteridEnd
*/
public void setMatteridEnd(Long matteridEnd){
this.matteridEnd = matteridEnd;
}
/**
* 获取 增加 事项表yth_matter id 表示从一体化获取的材料
* @return matteridIncrement
*/
public Long getMatteridIncrement(){
return this.matteridIncrement;
}
/**
* 设置 增加 事项表yth_matter id 表示从一体化获取的材料
* @param matteridIncrement
*/
public void setMatteridIncrement(Long matteridIncrement){
this.matteridIncrement = matteridIncrement;
}
/**
* 获取 事项表yth_matter id 表示从一体化获取的材料
* @return matteridList
*/
public List<Long> getMatteridList(){
return this.matteridList;
}
/**
* 设置 事项表yth_matter id 表示从一体化获取的材料
* @param matteridList
*/
public void setMatteridList(List<Long> matteridList){
this.matteridList = matteridList;
}
/**
* 获取 开始 材料表yth_datum id 表示从一体化获取的材料
* @return datumIdStart
*/
public Long getDatumIdStart(){
return this.datumIdStart;
}
/**
* 设置 开始 材料表yth_datum id 表示从一体化获取的材料
* @param datumIdStart
*/
public void setDatumIdStart(Long datumIdStart){
this.datumIdStart = datumIdStart;
}
/**
* 获取 结束 材料表yth_datum id 表示从一体化获取的材料
* @return datumIdEnd
*/
public Long getDatumIdEnd(){
return this.datumIdEnd;
}
/**
* 设置 结束 材料表yth_datum id 表示从一体化获取的材料
* @param datumIdEnd
*/
public void setDatumIdEnd(Long datumIdEnd){
this.datumIdEnd = datumIdEnd;
}
/**
* 获取 增加 材料表yth_datum id 表示从一体化获取的材料
* @return datumIdIncrement
*/
public Long getDatumIdIncrement(){
return this.datumIdIncrement;
}
/**
* 设置 增加 材料表yth_datum id 表示从一体化获取的材料
* @param datumIdIncrement
*/
public void setDatumIdIncrement(Long datumIdIncrement){
this.datumIdIncrement = datumIdIncrement;
}
/**
* 获取 材料表yth_datum id 表示从一体化获取的材料
* @return datumIdList
*/
public List<Long> getDatumIdList(){
return this.datumIdList;
}
/**
* 设置 材料表yth_datum id 表示从一体化获取的材料
* @param datumIdList
*/
public void setDatumIdList(List<Long> datumIdList){
this.datumIdList = datumIdList;
}
/**
* 获取 开始 材料形式
* @return materialPropertyStart
*/
public Integer getMaterialPropertyStart(){
return this.materialPropertyStart;
}
/**
* 设置 开始 材料形式
* @param materialPropertyStart
*/
public void setMaterialPropertyStart(Integer materialPropertyStart){
this.materialPropertyStart = materialPropertyStart;
}
/**
* 获取 结束 材料形式
* @return materialPropertyEnd
*/
public Integer getMaterialPropertyEnd(){
return this.materialPropertyEnd;
}
/**
* 设置 结束 材料形式
* @param materialPropertyEnd
*/
public void setMaterialPropertyEnd(Integer materialPropertyEnd){
this.materialPropertyEnd = materialPropertyEnd;
}
/**
* 获取 增加 材料形式
* @return materialPropertyIncrement
*/
public Integer getMaterialPropertyIncrement(){
return this.materialPropertyIncrement;
}
/**
* 设置 增加 材料形式
* @param materialPropertyIncrement
*/
public void setMaterialPropertyIncrement(Integer materialPropertyIncrement){
this.materialPropertyIncrement = materialPropertyIncrement;
}
/**
* 获取 材料形式
* @return materialPropertyList
*/
public List<Integer> getMaterialPropertyList(){
return this.materialPropertyList;
}
/**
* 设置 材料形式
* @param materialPropertyList
*/
public void setMaterialPropertyList(List<Integer> materialPropertyList){
this.materialPropertyList = materialPropertyList;
}
/**
* 获取 开始 是否必交,0 否 1 是 默认0
* @return isMustStart
*/
public Integer getIsMustStart(){
return this.isMustStart;
}
/**
* 设置 开始 是否必交,0 否 1 是 默认0
* @param isMustStart
*/
public void setIsMustStart(Integer isMustStart){
this.isMustStart = isMustStart;
}
/**
* 获取 结束 是否必交,0 否 1 是 默认0
* @return isMustEnd
*/
public Integer getIsMustEnd(){
return this.isMustEnd;
}
/**
* 设置 结束 是否必交,0 否 1 是 默认0
* @param isMustEnd
*/
public void setIsMustEnd(Integer isMustEnd){
this.isMustEnd = isMustEnd;
}
/**
* 获取 增加 是否必交,0 否 1 是 默认0
* @return isMustIncrement
*/
public Integer getIsMustIncrement(){
return this.isMustIncrement;
}
/**
* 设置 增加 是否必交,0 否 1 是 默认0
* @param isMustIncrement
*/
public void setIsMustIncrement(Integer isMustIncrement){
this.isMustIncrement = isMustIncrement;
}
/**
* 获取 是否必交,0 否 1 是 默认0
* @return isMustList
*/
public List<Integer> getIsMustList(){
return this.isMustList;
}
/**
* 设置 是否必交,0 否 1 是 默认0
* @param isMustList
*/
public void setIsMustList(List<Integer> isMustList){
this.isMustList = isMustList;
}
/**
* 获取 开始 材料类型
* @return materialTypeStart
*/
public Integer getMaterialTypeStart(){
return this.materialTypeStart;
}
/**
* 设置 开始 材料类型
* @param materialTypeStart
*/
public void setMaterialTypeStart(Integer materialTypeStart){
this.materialTypeStart = materialTypeStart;
}
/**
* 获取 结束 材料类型
* @return materialTypeEnd
*/
public Integer getMaterialTypeEnd(){
return this.materialTypeEnd;
}
/**
* 设置 结束 材料类型
* @param materialTypeEnd
*/
public void setMaterialTypeEnd(Integer materialTypeEnd){
this.materialTypeEnd = materialTypeEnd;
}
/**
* 获取 增加 材料类型
* @return materialTypeIncrement
*/
public Integer getMaterialTypeIncrement(){
return this.materialTypeIncrement;
}
/**
* 设置 增加 材料类型
* @param materialTypeIncrement
*/
public void setMaterialTypeIncrement(Integer materialTypeIncrement){
this.materialTypeIncrement = materialTypeIncrement;
}
/**
* 获取 材料类型
* @return materialTypeList
*/
public List<Integer> getMaterialTypeList(){
return this.materialTypeList;
}
/**
* 设置 材料类型
* @param materialTypeList
*/
public void setMaterialTypeList(List<Integer> materialTypeList){
this.materialTypeList = materialTypeList;
}
/**
* 获取 开始 电子材料格式
* @return electronicgsStart
*/
public Integer getElectronicgsStart(){
return this.electronicgsStart;
}
/**
* 设置 开始 电子材料格式
* @param electronicgsStart
*/
public void setElectronicgsStart(Integer electronicgsStart){
this.electronicgsStart = electronicgsStart;
}
/**
* 获取 结束 电子材料格式
* @return electronicgsEnd
*/
public Integer getElectronicgsEnd(){
return this.electronicgsEnd;
}
/**
* 设置 结束 电子材料格式
* @param electronicgsEnd
*/
public void setElectronicgsEnd(Integer electronicgsEnd){
this.electronicgsEnd = electronicgsEnd;
}
/**
* 获取 增加 电子材料格式
* @return electronicgsIncrement
*/
public Integer getElectronicgsIncrement(){
return this.electronicgsIncrement;
}
/**
* 设置 增加 电子材料格式
* @param electronicgsIncrement
*/
public void setElectronicgsIncrement(Integer electronicgsIncrement){
this.electronicgsIncrement = electronicgsIncrement;
}
/**
* 获取 电子材料格式
* @return electronicgsList
*/
public List<Integer> getElectronicgsList(){
return this.electronicgsList;
}
/**
* 设置 电子材料格式
* @param electronicgsList
*/
public void setElectronicgsList(List<Integer> electronicgsList){
this.electronicgsList = electronicgsList;
}
/**
* 获取 开始 材料来源渠道
* @return materialSourceStart
*/
public Integer getMaterialSourceStart(){
return this.materialSourceStart;
}
/**
* 设置 开始 材料来源渠道
* @param materialSourceStart
*/
public void setMaterialSourceStart(Integer materialSourceStart){
this.materialSourceStart = materialSourceStart;
}
/**
* 获取 结束 材料来源渠道
* @return materialSourceEnd
*/
public Integer getMaterialSourceEnd(){
return this.materialSourceEnd;
}
/**
* 设置 结束 材料来源渠道
* @param materialSourceEnd
*/
public void setMaterialSourceEnd(Integer materialSourceEnd){
this.materialSourceEnd = materialSourceEnd;
}
/**
* 获取 增加 材料来源渠道
* @return materialSourceIncrement
*/
public Integer getMaterialSourceIncrement(){
return this.materialSourceIncrement;
}
/**
* 设置 增加 材料来源渠道
* @param materialSourceIncrement
*/
public void setMaterialSourceIncrement(Integer materialSourceIncrement){
this.materialSourceIncrement = materialSourceIncrement;
}
/**
* 获取 材料来源渠道
* @return materialSourceList
*/
public List<Integer> getMaterialSourceList(){
return this.materialSourceList;
}
/**
* 设置 材料来源渠道
* @param materialSourceList
*/
public void setMaterialSourceList(List<Integer> materialSourceList){
this.materialSourceList = materialSourceList;
}
/**
* 获取 开始 纸质材料份数
* @return paperNumStart
*/
public Integer getPaperNumStart(){
return this.paperNumStart;
}
/**
* 设置 开始 纸质材料份数
* @param paperNumStart
*/
public void setPaperNumStart(Integer paperNumStart){
this.paperNumStart = paperNumStart;
}
/**
* 获取 结束 纸质材料份数
* @return paperNumEnd
*/
public Integer getPaperNumEnd(){
return this.paperNumEnd;
}
/**
* 设置 结束 纸质材料份数
* @param paperNumEnd
*/
public void setPaperNumEnd(Integer paperNumEnd){
this.paperNumEnd = paperNumEnd;
}
/**
* 获取 增加 纸质材料份数
* @return paperNumIncrement
*/
public Integer getPaperNumIncrement(){
return this.paperNumIncrement;
}
/**
* 设置 增加 纸质材料份数
* @param paperNumIncrement
*/
public void setPaperNumIncrement(Integer paperNumIncrement){
this.paperNumIncrement = paperNumIncrement;
}
/**
* 获取 纸质材料份数
* @return paperNumList
*/
public List<Integer> getPaperNumList(){
return this.paperNumList;
}
/**
* 设置 纸质材料份数
* @param paperNumList
*/
public void setPaperNumList(List<Integer> paperNumList){
this.paperNumList = paperNumList;
}
/**
* 获取 开始 纸质材料规格
* @return paperGgStart
*/
public Integer getPaperGgStart(){
return this.paperGgStart;
}
/**
* 设置 开始 纸质材料规格
* @param paperGgStart
*/
public void setPaperGgStart(Integer paperGgStart){
this.paperGgStart = paperGgStart;
}
/**
* 获取 结束 纸质材料规格
* @return paperGgEnd
*/
public Integer getPaperGgEnd(){
return this.paperGgEnd;
}
/**
* 设置 结束 纸质材料规格
* @param paperGgEnd
*/
public void setPaperGgEnd(Integer paperGgEnd){
this.paperGgEnd = paperGgEnd;
}
/**
* 获取 增加 纸质材料规格
* @return paperGgIncrement
*/
public Integer getPaperGgIncrement(){
return this.paperGgIncrement;
}
/**
* 设置 增加 纸质材料规格
* @param paperGgIncrement
*/
public void setPaperGgIncrement(Integer paperGgIncrement){
this.paperGgIncrement = paperGgIncrement;
}
/**
* 获取 纸质材料规格
* @return paperGgList
*/
public List<Integer> getPaperGgList(){
return this.paperGgList;
}
/**
* 设置 纸质材料规格
* @param paperGgList
*/
public void setPaperGgList(List<Integer> paperGgList){
this.paperGgList = paperGgList;
}
/**
* 获取 开始 减免模式
* @return jianmMsStart
*/
public Integer getJianmMsStart(){
return this.jianmMsStart;
}
/**
* 设置 开始 减免模式
* @param jianmMsStart
*/
public void setJianmMsStart(Integer jianmMsStart){
this.jianmMsStart = jianmMsStart;
}
/**
* 获取 结束 减免模式
* @return jianmMsEnd
*/
public Integer getJianmMsEnd(){
return this.jianmMsEnd;
}
/**
* 设置 结束 减免模式
* @param jianmMsEnd
*/
public void setJianmMsEnd(Integer jianmMsEnd){
this.jianmMsEnd = jianmMsEnd;
}
/**
* 获取 增加 减免模式
* @return jianmMsIncrement
*/
public Integer getJianmMsIncrement(){
return this.jianmMsIncrement;
}
/**
* 设置 增加 减免模式
* @param jianmMsIncrement
*/
public void setJianmMsIncrement(Integer jianmMsIncrement){
this.jianmMsIncrement = jianmMsIncrement;
}
/**
* 获取 减免模式
* @return jianmMsList
*/
public List<Integer> getJianmMsList(){
return this.jianmMsList;
}
/**
* 设置 减免模式
* @param jianmMsList
*/
public void setJianmMsList(List<Integer> jianmMsList){
this.jianmMsList = jianmMsList;
}
/**
* 获取 开始 盖章方式
* @return sealWayStart
*/
public Integer getSealWayStart(){
return this.sealWayStart;
}
/**
* 设置 开始 盖章方式
* @param sealWayStart
*/
public void setSealWayStart(Integer sealWayStart){
this.sealWayStart = sealWayStart;
}
/**
* 获取 结束 盖章方式
* @return sealWayEnd
*/
public Integer getSealWayEnd(){
return this.sealWayEnd;
}
/**
* 设置 结束 盖章方式
* @param sealWayEnd
*/
public void setSealWayEnd(Integer sealWayEnd){
this.sealWayEnd = sealWayEnd;
}
/**
* 获取 增加 盖章方式
* @return sealWayIncrement
*/
public Integer getSealWayIncrement(){
return this.sealWayIncrement;
}
/**
* 设置 增加 盖章方式
* @param sealWayIncrement
*/
public void setSealWayIncrement(Integer sealWayIncrement){
this.sealWayIncrement = sealWayIncrement;
}
/**
* 获取 盖章方式
* @return sealWayList
*/
public List<Integer> getSealWayList(){
return this.sealWayList;
}
/**
* 设置 盖章方式
* @param sealWayList
*/
public void setSealWayList(List<Integer> sealWayList){
this.sealWayList = sealWayList;
}
/**
* 获取 开始 是否减免
* @return isjianmStart
*/
public Integer getIsjianmStart(){
return this.isjianmStart;
}
/**
* 设置 开始 是否减免
* @param isjianmStart
*/
public void setIsjianmStart(Integer isjianmStart){
this.isjianmStart = isjianmStart;
}
/**
* 获取 结束 是否减免
* @return isjianmEnd
*/
public Integer getIsjianmEnd(){
return this.isjianmEnd;
}
/**
* 设置 结束 是否减免
* @param isjianmEnd
*/
public void setIsjianmEnd(Integer isjianmEnd){
this.isjianmEnd = isjianmEnd;
}
/**
* 获取 增加 是否减免
* @return isjianmIncrement
*/
public Integer getIsjianmIncrement(){
return this.isjianmIncrement;
}
/**
* 设置 增加 是否减免
* @param isjianmIncrement
*/
public void setIsjianmIncrement(Integer isjianmIncrement){
this.isjianmIncrement = isjianmIncrement;
}
/**
* 获取 是否减免
* @return isjianmList
*/
public List<Integer> getIsjianmList(){
return this.isjianmList;
}
/**
* 设置 是否减免
* @param isjianmList
*/
public void setIsjianmList(List<Integer> isjianmList){
this.isjianmList = isjianmList;
}
/**
* 获取 开始 材料是否容缺
* @return isLackStart
*/
public Integer getIsLackStart(){
return this.isLackStart;
}
/**
* 设置 开始 材料是否容缺
* @param isLackStart
*/
public void setIsLackStart(Integer isLackStart){
this.isLackStart = isLackStart;
}
/**
* 获取 结束 材料是否容缺
* @return isLackEnd
*/
public Integer getIsLackEnd(){
return this.isLackEnd;
}
/**
* 设置 结束 材料是否容缺
* @param isLackEnd
*/
public void setIsLackEnd(Integer isLackEnd){
this.isLackEnd = isLackEnd;
}
/**
* 获取 增加 材料是否容缺
* @return isLackIncrement
*/
public Integer getIsLackIncrement(){
return this.isLackIncrement;
}
/**
* 设置 增加 材料是否容缺
* @param isLackIncrement
*/
public void setIsLackIncrement(Integer isLackIncrement){
this.isLackIncrement = isLackIncrement;
}
/**
* 获取 材料是否容缺
* @return isLackList
*/
public List<Integer> getIsLackList(){
return this.isLackList;
}
/**
* 设置 材料是否容缺
* @param isLackList
*/
public void setIsLackList(List<Integer> isLackList){
this.isLackList = isLackList;
}
/**
* 获取 材料地址
* @return ybUrlList
*/
public List<String> getYbUrlList(){
return this.ybUrlList;
}
/**
* 设置 材料地址
* @param ybUrlList
*/
public void setYbUrlList(List<String> ybUrlList){
this.ybUrlList = ybUrlList;
}
/**
* 获取 开始 来源渠道说明
* @return materialSourceSmStart
*/
public Integer getMaterialSourceSmStart(){
return this.materialSourceSmStart;
}
/**
* 设置 开始 来源渠道说明
* @param materialSourceSmStart
*/
public void setMaterialSourceSmStart(Integer materialSourceSmStart){
this.materialSourceSmStart = materialSourceSmStart;
}
/**
* 获取 结束 来源渠道说明
* @return materialSourceSmEnd
*/
public Integer getMaterialSourceSmEnd(){
return this.materialSourceSmEnd;
}
/**
* 设置 结束 来源渠道说明
* @param materialSourceSmEnd
*/
public void setMaterialSourceSmEnd(Integer materialSourceSmEnd){
this.materialSourceSmEnd = materialSourceSmEnd;
}
/**
* 获取 增加 来源渠道说明
* @return materialSourceSmIncrement
*/
public Integer getMaterialSourceSmIncrement(){
return this.materialSourceSmIncrement;
}
/**
* 设置 增加 来源渠道说明
* @param materialSourceSmIncrement
*/
public void setMaterialSourceSmIncrement(Integer materialSourceSmIncrement){
this.materialSourceSmIncrement = materialSourceSmIncrement;
}
/**
* 获取 来源渠道说明
* @return materialSourceSmList
*/
public List<Integer> getMaterialSourceSmList(){
return this.materialSourceSmList;
}
/**
* 设置 来源渠道说明
* @param materialSourceSmList
*/
public void setMaterialSourceSmList(List<Integer> materialSourceSmList){
this.materialSourceSmList = materialSourceSmList;
}
/**
* 获取 填报须知
* @return remarkSubList
*/
public List<String> getRemarkSubList(){
return this.remarkSubList;
}
/**
* 设置 填报须知
* @param remarkSubList
*/
public void setRemarkSubList(List<String> remarkSubList){
this.remarkSubList = remarkSubList;
}
/**
* 获取 受理标准
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 受理标准
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 要求提供材料的依据
* @return clauseContentList
*/
public List<String> getClauseContentList(){
return this.clauseContentList;
}
/**
* 设置 要求提供材料的依据
* @param clauseContentList
*/
public void setClauseContentList(List<String> clauseContentList){
this.clauseContentList = clauseContentList;
}
/**
* 获取 备注
* @return summaryList
*/
public List<String> getSummaryList(){
return this.summaryList;
}
/**
* 设置 备注
* @param summaryList
*/
public void setSummaryList(List<String> summaryList){
this.summaryList = summaryList;
}
/**
* 获取 开始 0正常 1删除
* @return validStart
*/
public Integer getValidStart(){
return this.validStart;
}
/**
* 设置 开始 0正常 1删除
* @param validStart
*/
public void setValidStart(Integer validStart){
this.validStart = validStart;
}
/**
* 获取 结束 0正常 1删除
* @return validEnd
*/
public Integer getValidEnd(){
return this.validEnd;
}
/**
* 设置 结束 0正常 1删除
* @param validEnd
*/
public void setValidEnd(Integer validEnd){
this.validEnd = validEnd;
}
/**
* 获取 增加 0正常 1删除
* @return validIncrement
*/
public Integer getValidIncrement(){
return this.validIncrement;
}
/**
* 设置 增加 0正常 1删除
* @param validIncrement
*/
public void setValidIncrement(Integer validIncrement){
this.validIncrement = validIncrement;
}
/**
* 获取 0正常 1删除
* @return validList
*/
public List<Integer> getValidList(){
return this.validList;
}
/**
* 设置 0正常 1删除
* @param validList
*/
public void setValidList(List<Integer> validList){
this.validList = validList;
}
/**
* 获取 开始 变更时间
* @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;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<DatumQuery> 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<DatumQuery> 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<DatumQuery> 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<DatumQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.datum.model.DatumFileEntity;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface DatumFileService extends ICRUDService<DatumFileEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.datum.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.datum.model.DatumEntity;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface DatumService extends ICRUDService<DatumEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.datum.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.datum.dao.DatumFileDao;
import com.mortals.xhx.module.datum.model.DatumFileEntity;
import com.mortals.xhx.module.datum.service.DatumFileService;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("datumFileService")
public class DatumFileServiceImpl extends AbstractCRUDServiceImpl<DatumFileDao, DatumFileEntity, Long> implements DatumFileService {
}
\ No newline at end of file
package com.mortals.xhx.module.datum.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.datum.dao.DatumDao;
import com.mortals.xhx.module.datum.model.DatumEntity;
import com.mortals.xhx.module.datum.service.DatumService;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("datumService")
public class DatumServiceImpl extends AbstractCRUDServiceImpl<DatumDao, DatumEntity, Long> implements DatumService {
}
\ No newline at end of file
package com.mortals.xhx.module.datum.web;
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.datum.model.DatumEntity;
import com.mortals.xhx.module.datum.service.DatumService;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("datum")
public class DatumController extends BaseCRUDJsonMappingController<DatumService,DatumForm,DatumEntity,Long> {
public DatumController(){
super.setFormClass(DatumForm.class);
super.setModuleDesc("一件事申请材料");
}
@Override
public String list(DatumForm form) {
DatumEntity datumEntity = new DatumEntity();
return super.list(form);
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.web;
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.datum.model.DatumFileEntity;
import com.mortals.xhx.module.datum.service.DatumFileService;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("datum/file")
public class DatumFileController extends BaseCRUDJsonMappingController<DatumFileService,DatumFileForm,DatumFileEntity,Long> {
public DatumFileController(){
super.setFormClass(DatumFileForm.class);
super.setModuleDesc("申请材料附件表");
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.datum.model.DatumFileEntity;
import com.mortals.xhx.module.datum.model.DatumFileQuery;
/**
* <p>Title: 申请材料附件表</p>
* <p>Description: DatumFileForm </p>
* @author
* @version 1.0.0
*/
public class DatumFileForm extends BaseCRUDFormLong<DatumFileEntity> {
private DatumFileEntity entity = new DatumFileEntity();
private DatumFileQuery query = new DatumFileQuery();
public DatumFileForm(){
}
@Override
public DatumFileEntity getEntity() {
return entity;
}
public void setDatumFile(DatumFileEntity entity) {
this.entity = entity;
}
@Override
public DatumFileQuery getQuery() {
return query;
}
public void setQuery(DatumFileQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.datum.model.DatumEntity;
import com.mortals.xhx.module.datum.model.DatumQuery;
/**
* <p>Title: 一件事申请材料</p>
* <p>Description: DatumForm </p>
* @author
* @version 1.0.0
*/
public class DatumForm extends BaseCRUDFormLong<DatumEntity> {
private DatumEntity entity = new DatumEntity();
private DatumQuery query = new DatumQuery();
public DatumForm(){
}
@Override
public DatumEntity getEntity() {
return entity;
}
public void setDatum(DatumEntity entity) {
this.entity = entity;
}
@Override
public DatumQuery getQuery() {
return query;
}
public void setQuery(DatumQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.flowlimit.model.FlowlimitEntity;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface FlowlimitDao extends ICRUDDao<FlowlimitEntity,Long>{
}
package com.mortals.xhx.module.flowlimit.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.flowlimit.dao.FlowlimitDao;
import com.mortals.xhx.module.flowlimit.model.FlowlimitEntity;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("flowlimitDao")
public class FlowlimitDaoImpl extends BaseCRUDDaoMybatis<FlowlimitEntity,Long> implements FlowlimitDao {
}
package com.mortals.xhx.module.flowlimit.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Flowlimit
* date: 2021-8-18 14:24:46
*/
public class FlowlimitEntity extends BaseEntityLong{
private static final long serialVersionUID = 1629267886336L;
/**
* 模板标题
*/
private String title;
/**
* 办理流程
*/
private String content;
/**
* 基础表one_basics id
*/
private Long basicsId;
/**
* 变更时间
*/
private Date updateTime;
/**
* 变更用户loginName
*/
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建用户loginName
*/
private String createUser;
public FlowlimitEntity(){
}
/**
* 获取 模板标题
* @return title
*/
public String getTitle() {
return this.title;
}
/**
* 设置 模板标题
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* 获取 办理流程
* @return content
*/
public String getContent() {
return this.content;
}
/**
* 设置 办理流程
* @param content
*/
public void setContent(String content) {
this.content = content;
}
/**
* 获取 基础表one_basics id
* @return basicsId
*/
public Long getBasicsId() {
return this.basicsId;
}
/**
* 设置 基础表one_basics id
* @param basicsId
*/
public void setBasicsId(Long basicsId) {
this.basicsId = basicsId;
}
/**
* 获取 变更时间
* @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 FlowlimitEntity) {
FlowlimitEntity tmp = (FlowlimitEntity) 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(",title:").append(getTitle())
.append(",content:").append(getContent())
.append(",basicsId:").append(getBasicsId())
.append(",updateTime:").append(getUpdateTime())
.append(",updateUser:").append(getUpdateUser())
.append(",createTime:").append(getCreateTime())
.append(",createUser:").append(getCreateUser())
;
return sb.toString();
}
public void initAttrValue(){
this.title = null;
this.content = null;
this.basicsId = null;
this.updateTime = null;
this.updateUser = null;
this.createTime = null;
this.createUser = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.model;
import java.util.List;
import java.util.Date;
/**
*
* Description:Flowlimit
* date: 2021-8-18 14:24:46
*/
public class FlowlimitQuery extends FlowlimitEntity{
private static final long serialVersionUID = 1629267886337L;
/** 开始 主键,自增长 */
private Long idStart;
/** 结束 主键,自增长 */
private Long idEnd;
/** 增加 主键,自增长 */
private Long idIncrement;
/** 主键,自增长 */
private List <Long> idList;
/** 模板标题 */
private List<String> titleList;
/** 办理流程 */
private List<String> contentList;
/** 开始 基础表one_basics id */
private Long basicsIdStart;
/** 结束 基础表one_basics id */
private Long basicsIdEnd;
/** 增加 基础表one_basics id */
private Long basicsIdIncrement;
/** 基础表one_basics id */
private List <Long> basicsIdList;
/** 开始 变更时间 */
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<FlowlimitQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<FlowlimitQuery> andConditionList;
public FlowlimitQuery(){
}
/**
* 获取 开始 主键,自增长
* @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;
}
/**
* 获取 模板标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 模板标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 办理流程
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 办理流程
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 开始 基础表one_basics id
* @return basicsIdStart
*/
public Long getBasicsIdStart(){
return this.basicsIdStart;
}
/**
* 设置 开始 基础表one_basics id
* @param basicsIdStart
*/
public void setBasicsIdStart(Long basicsIdStart){
this.basicsIdStart = basicsIdStart;
}
/**
* 获取 结束 基础表one_basics id
* @return basicsIdEnd
*/
public Long getBasicsIdEnd(){
return this.basicsIdEnd;
}
/**
* 设置 结束 基础表one_basics id
* @param basicsIdEnd
*/
public void setBasicsIdEnd(Long basicsIdEnd){
this.basicsIdEnd = basicsIdEnd;
}
/**
* 获取 增加 基础表one_basics id
* @return basicsIdIncrement
*/
public Long getBasicsIdIncrement(){
return this.basicsIdIncrement;
}
/**
* 设置 增加 基础表one_basics id
* @param basicsIdIncrement
*/
public void setBasicsIdIncrement(Long basicsIdIncrement){
this.basicsIdIncrement = basicsIdIncrement;
}
/**
* 获取 基础表one_basics id
* @return basicsIdList
*/
public List<Long> getBasicsIdList(){
return this.basicsIdList;
}
/**
* 设置 基础表one_basics id
* @param basicsIdList
*/
public void setBasicsIdList(List<Long> basicsIdList){
this.basicsIdList = basicsIdList;
}
/**
* 获取 开始 变更时间
* @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;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<FlowlimitQuery> 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<FlowlimitQuery> 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<FlowlimitQuery> 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<FlowlimitQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.flowlimit.model.FlowlimitEntity;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface FlowlimitService extends ICRUDService<FlowlimitEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.flowlimit.dao.FlowlimitDao;
import com.mortals.xhx.module.flowlimit.model.FlowlimitEntity;
import com.mortals.xhx.module.flowlimit.service.FlowlimitService;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("flowlimitService")
public class FlowlimitServiceImpl extends AbstractCRUDServiceImpl<FlowlimitDao, FlowlimitEntity, Long> implements FlowlimitService {
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.web;
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.flowlimit.model.FlowlimitEntity;
import com.mortals.xhx.module.flowlimit.service.FlowlimitService;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("flowlimit")
public class FlowlimitController extends BaseCRUDJsonMappingController<FlowlimitService,FlowlimitForm,FlowlimitEntity,Long> {
public FlowlimitController(){
super.setFormClass(FlowlimitForm.class);
super.setModuleDesc("一件事办理流程");
}
}
\ No newline at end of file
package com.mortals.xhx.module.flowlimit.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.flowlimit.model.FlowlimitEntity;
import com.mortals.xhx.module.flowlimit.model.FlowlimitQuery;
/**
* <p>Title: 一件事办理流程</p>
* <p>Description: FlowlimitForm </p>
* @author
* @version 1.0.0
*/
public class FlowlimitForm extends BaseCRUDFormLong<FlowlimitEntity> {
private FlowlimitEntity entity = new FlowlimitEntity();
private FlowlimitQuery query = new FlowlimitQuery();
public FlowlimitForm(){
}
@Override
public FlowlimitEntity getEntity() {
return entity;
}
public void setFlowlimit(FlowlimitEntity entity) {
this.entity = entity;
}
@Override
public FlowlimitQuery getQuery() {
return query;
}
public void setQuery(FlowlimitQuery query) {
this.query = query;
}
}
\ 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.accept.dao.ibatis.AcceptDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="AcceptEntity" id="AcceptEntity-Map">
<result property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="basicsId" column="basicsId" />
<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('title') or colPickMode == 1 and data.containsKey('title')))">
a.title as title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content as content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</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="AcceptEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_accept
(title,content,basicsId,updateTime,updateUser,createTime,createUser)
VALUES
(#{title},#{content},#{basicsId},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_accept
(title,content,basicsId,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.title},#{item.content},#{item.basicsId},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_accept as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</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_one_accept as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</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="AcceptEntity-Map">
select <include refid="_columns"/>
from mortals_one_accept as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_accept as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_accept 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_one_accept as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="AcceptEntity-Map">
select <include refid="_columns"/>
from mortals_one_accept 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_one_accept 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('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</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('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>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
<?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.basics.dao.ibatis.BasicsDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="BasicsEntity" id="BasicsEntity-Map">
<result property="id" column="id" />
<result property="tname" column="tname" />
<result property="qrcode" column="qrcode" />
<result property="matterIds" column="matterIds" />
<result property="iszzsb" column="iszzsb" />
<result property="sort" column="sort" />
<result property="valid" column="valid" />
<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('tname') or colPickMode == 1 and data.containsKey('tname')))">
a.tname as tname,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('qrcode') or colPickMode == 1 and data.containsKey('qrcode')))">
a.qrcode as qrcode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('matterIds') or colPickMode == 1 and data.containsKey('matterIds')))">
a.matterIds as matterIds,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('iszzsb') or colPickMode == 1 and data.containsKey('iszzsb')))">
a.iszzsb as iszzsb,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sort') or colPickMode == 1 and data.containsKey('sort')))">
a.sort as sort,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('valid') or colPickMode == 1 and data.containsKey('valid')))">
a.valid as valid,
</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="BasicsEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_basics
(tname,qrcode,matterIds,iszzsb,sort,valid,updateTime,updateUser,createTime,createUser)
VALUES
(#{tname},#{qrcode},#{matterIds},#{iszzsb},#{sort},#{valid},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_basics
(tname,qrcode,matterIds,iszzsb,sort,valid,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.tname},#{item.qrcode},#{item.matterIds},#{item.iszzsb},#{item.sort},#{item.valid},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_basics as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('tname')) or (colPickMode==1 and !data.containsKey('tname'))">
a.tname=#{data.tname},
</if>
<if test="(colPickMode==0 and data.containsKey('qrcode')) or (colPickMode==1 and !data.containsKey('qrcode'))">
a.qrcode=#{data.qrcode},
</if>
<if test="(colPickMode==0 and data.containsKey('matterIds')) or (colPickMode==1 and !data.containsKey('matterIds'))">
a.matterIds=#{data.matterIds},
</if>
<if test="(colPickMode==0 and data.containsKey('iszzsb')) or (colPickMode==1 and !data.containsKey('iszzsb'))">
a.iszzsb=#{data.iszzsb},
</if>
<if test="(colPickMode==0 and data.containsKey('iszzsbIncrement')) or (colPickMode==1 and !data.containsKey('iszzsbIncrement'))">
a.iszzsb=ifnull(a.iszzsb,0) + #{data.iszzsbIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sort')) or (colPickMode==1 and !data.containsKey('sort'))">
a.sort=#{data.sort},
</if>
<if test="(colPickMode==0 and data.containsKey('sortIncrement')) or (colPickMode==1 and !data.containsKey('sortIncrement'))">
a.sort=ifnull(a.sort,0) + #{data.sortIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('valid')) or (colPickMode==1 and !data.containsKey('valid'))">
a.valid=#{data.valid},
</if>
<if test="(colPickMode==0 and data.containsKey('validIncrement')) or (colPickMode==1 and !data.containsKey('validIncrement'))">
a.valid=ifnull(a.valid,0) + #{data.validIncrement},
</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_one_basics as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="tname=(case" suffix="ELSE tname end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('tname')) or (colPickMode==1 and !item.containsKey('tname'))">
when a.id=#{item.id} then #{item.tname}
</if>
</foreach>
</trim>
<trim prefix="qrcode=(case" suffix="ELSE qrcode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('qrcode')) or (colPickMode==1 and !item.containsKey('qrcode'))">
when a.id=#{item.id} then #{item.qrcode}
</if>
</foreach>
</trim>
<trim prefix="matterIds=(case" suffix="ELSE matterIds end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('matterIds')) or (colPickMode==1 and !item.containsKey('matterIds'))">
when a.id=#{item.id} then #{item.matterIds}
</if>
</foreach>
</trim>
<trim prefix="iszzsb=(case" suffix="ELSE iszzsb end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('iszzsb')) or (colPickMode==1 and !item.containsKey('iszzsb'))">
when a.id=#{item.id} then #{item.iszzsb}
</when>
<when test="(colPickMode==0 and item.containsKey('iszzsbIncrement')) or (colPickMode==1 and !item.containsKey('iszzsbIncrement'))">
when a.id=#{item.id} then ifnull(a.iszzsb,0) + #{item.iszzsbIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sort=(case" suffix="ELSE sort end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sort')) or (colPickMode==1 and !item.containsKey('sort'))">
when a.id=#{item.id} then #{item.sort}
</when>
<when test="(colPickMode==0 and item.containsKey('sortIncrement')) or (colPickMode==1 and !item.containsKey('sortIncrement'))">
when a.id=#{item.id} then ifnull(a.sort,0) + #{item.sortIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="valid=(case" suffix="ELSE valid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('valid')) or (colPickMode==1 and !item.containsKey('valid'))">
when a.id=#{item.id} then #{item.valid}
</when>
<when test="(colPickMode==0 and item.containsKey('validIncrement')) or (colPickMode==1 and !item.containsKey('validIncrement'))">
when a.id=#{item.id} then ifnull(a.valid,0) + #{item.validIncrement}
</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="BasicsEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_basics as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_basics 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_one_basics as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="BasicsEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics 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_one_basics 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('tname')">
<if test="conditionParamRef.tname != null and conditionParamRef.tname != ''">
${_conditionType_} a.tname like #{${_conditionParam_}.tname}
</if>
<if test="conditionParamRef.tname == null">
${_conditionType_} a.tname is null
</if>
</if>
<if test="conditionParamRef.containsKey('tnameList')">
${_conditionType_} a.tname in
<foreach collection="conditionParamRef.tnameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('qrcode')">
<if test="conditionParamRef.qrcode != null and conditionParamRef.qrcode != ''">
${_conditionType_} a.qrcode like #{${_conditionParam_}.qrcode}
</if>
<if test="conditionParamRef.qrcode == null">
${_conditionType_} a.qrcode is null
</if>
</if>
<if test="conditionParamRef.containsKey('qrcodeList')">
${_conditionType_} a.qrcode in
<foreach collection="conditionParamRef.qrcodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('matterIds')">
<if test="conditionParamRef.matterIds != null and conditionParamRef.matterIds != ''">
${_conditionType_} a.matterIds like #{${_conditionParam_}.matterIds}
</if>
<if test="conditionParamRef.matterIds == null">
${_conditionType_} a.matterIds is null
</if>
</if>
<if test="conditionParamRef.containsKey('matterIdsList')">
${_conditionType_} a.matterIds in
<foreach collection="conditionParamRef.matterIdsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('iszzsb')">
<if test="conditionParamRef.iszzsb != null ">
${_conditionType_} a.iszzsb = #{${_conditionParam_}.iszzsb}
</if>
<if test="conditionParamRef.iszzsb == null">
${_conditionType_} a.iszzsb is null
</if>
</if>
<if test="conditionParamRef.containsKey('iszzsbList')">
${_conditionType_} a.iszzsb in
<foreach collection="conditionParamRef.iszzsbList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('iszzsbStart') and conditionParamRef.iszzsbStart != null">
${_conditionType_} a.iszzsb <![CDATA[ >= ]]> #{${_conditionParam_}.iszzsbStart}
</if>
<if test="conditionParamRef.containsKey('iszzsbEnd') and conditionParamRef.iszzsbEnd != null">
${_conditionType_} a.iszzsb <![CDATA[ <= ]]> #{${_conditionParam_}.iszzsbEnd}
</if>
<if test="conditionParamRef.containsKey('sort')">
<if test="conditionParamRef.sort != null ">
${_conditionType_} a.sort = #{${_conditionParam_}.sort}
</if>
<if test="conditionParamRef.sort == null">
${_conditionType_} a.sort is null
</if>
</if>
<if test="conditionParamRef.containsKey('sortList')">
${_conditionType_} a.sort in
<foreach collection="conditionParamRef.sortList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sortStart') and conditionParamRef.sortStart != null">
${_conditionType_} a.sort <![CDATA[ >= ]]> #{${_conditionParam_}.sortStart}
</if>
<if test="conditionParamRef.containsKey('sortEnd') and conditionParamRef.sortEnd != null">
${_conditionType_} a.sort <![CDATA[ <= ]]> #{${_conditionParam_}.sortEnd}
</if>
<if test="conditionParamRef.containsKey('valid')">
<if test="conditionParamRef.valid != null ">
${_conditionType_} a.valid = #{${_conditionParam_}.valid}
</if>
<if test="conditionParamRef.valid == null">
${_conditionType_} a.valid is null
</if>
</if>
<if test="conditionParamRef.containsKey('validList')">
${_conditionType_} a.valid in
<foreach collection="conditionParamRef.validList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('validStart') and conditionParamRef.validStart != null">
${_conditionType_} a.valid <![CDATA[ >= ]]> #{${_conditionParam_}.validStart}
</if>
<if test="conditionParamRef.containsKey('validEnd') and conditionParamRef.validEnd != null">
${_conditionType_} a.valid <![CDATA[ <= ]]> #{${_conditionParam_}.validEnd}
</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('tname')">
a.tname
<if test='orderCol.tname != null and "DESC".equalsIgnoreCase(orderCol.tname)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('qrcode')">
a.qrcode
<if test='orderCol.qrcode != null and "DESC".equalsIgnoreCase(orderCol.qrcode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('matterIds')">
a.matterIds
<if test='orderCol.matterIds != null and "DESC".equalsIgnoreCase(orderCol.matterIds)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('iszzsb')">
a.iszzsb
<if test='orderCol.iszzsb != null and "DESC".equalsIgnoreCase(orderCol.iszzsb)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sort')">
a.sort
<if test='orderCol.sort != null and "DESC".equalsIgnoreCase(orderCol.sort)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('valid')">
a.valid
<if test='orderCol.valid != null and "DESC".equalsIgnoreCase(orderCol.valid)'>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
<?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.basics.dao.ibatis.BasicsDatumDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="BasicsDatumEntity" id="BasicsDatumEntity-Map">
<result property="id" column="id" />
<result property="basicsId" column="basicsId" />
<result property="oneDatumIds" column="oneDatumIds" />
<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('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('oneDatumIds') or colPickMode == 1 and data.containsKey('oneDatumIds')))">
a.oneDatumIds as oneDatumIds,
</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="BasicsDatumEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_basics_datum
(basicsId,oneDatumIds,updateTime,updateUser,createTime,createUser)
VALUES
(#{basicsId},#{oneDatumIds},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_basics_datum
(basicsId,oneDatumIds,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.basicsId},#{item.oneDatumIds},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_basics_datum as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('oneDatumIds')) or (colPickMode==1 and !data.containsKey('oneDatumIds'))">
a.oneDatumIds=#{data.oneDatumIds},
</if>
<if test="(colPickMode==0 and data.containsKey('oneDatumIdsIncrement')) or (colPickMode==1 and !data.containsKey('oneDatumIdsIncrement'))">
a.oneDatumIds=ifnull(a.oneDatumIds,0) + #{data.oneDatumIdsIncrement},
</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_one_basics_datum as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="oneDatumIds=(case" suffix="ELSE oneDatumIds end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('oneDatumIds')) or (colPickMode==1 and !item.containsKey('oneDatumIds'))">
when a.id=#{item.id} then #{item.oneDatumIds}
</when>
<when test="(colPickMode==0 and item.containsKey('oneDatumIdsIncrement')) or (colPickMode==1 and !item.containsKey('oneDatumIdsIncrement'))">
when a.id=#{item.id} then ifnull(a.oneDatumIds,0) + #{item.oneDatumIdsIncrement}
</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="BasicsDatumEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics_datum as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_basics_datum as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_basics_datum 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_one_basics_datum as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="BasicsDatumEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics_datum 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_one_basics_datum 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('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</if>
<if test="conditionParamRef.containsKey('oneDatumIds')">
<if test="conditionParamRef.oneDatumIds != null ">
${_conditionType_} a.oneDatumIds = #{${_conditionParam_}.oneDatumIds}
</if>
<if test="conditionParamRef.oneDatumIds == null">
${_conditionType_} a.oneDatumIds is null
</if>
</if>
<if test="conditionParamRef.containsKey('oneDatumIdsList')">
${_conditionType_} a.oneDatumIds in
<foreach collection="conditionParamRef.oneDatumIdsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('oneDatumIdsStart') and conditionParamRef.oneDatumIdsStart != null">
${_conditionType_} a.oneDatumIds <![CDATA[ >= ]]> #{${_conditionParam_}.oneDatumIdsStart}
</if>
<if test="conditionParamRef.containsKey('oneDatumIdsEnd') and conditionParamRef.oneDatumIdsEnd != null">
${_conditionType_} a.oneDatumIds <![CDATA[ <= ]]> #{${_conditionParam_}.oneDatumIdsEnd}
</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('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('oneDatumIds')">
a.oneDatumIds
<if test='orderCol.oneDatumIds != null and "DESC".equalsIgnoreCase(orderCol.oneDatumIds)'>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
<?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.basics.dao.ibatis.BasicsInfoDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="BasicsInfoEntity" id="BasicsInfoEntity-Map">
<result property="id" column="id" />
<result property="title" column="title" />
<result property="basicsId" column="basicsId" />
<result property="jointInfoShow" column="jointInfoShow" />
<result property="legalTimeLimitShow" column="legalTimeLimitShow" />
<result property="promiseTimeLimitShow" column="promiseTimeLimitShow" />
<result property="isChargesShow" column="isChargesShow" />
<result property="charges" column="charges" />
<result property="handleTimeShow" column="handleTimeShow" />
<result property="handlePlaceShow" column="handlePlaceShow" />
<result property="cousultingTelephoneShow" column="cousultingTelephoneShow" />
<result property="supervisoryTelephoneShow" column="supervisoryTelephoneShow" />
<result property="resultInfo" column="resultInfo" />
<result property="qa" column="qa" />
<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('title') or colPickMode == 1 and data.containsKey('title')))">
a.title as title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('jointInfoShow') or colPickMode == 1 and data.containsKey('jointInfoShow')))">
a.jointInfoShow as jointInfoShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('legalTimeLimitShow') or colPickMode == 1 and data.containsKey('legalTimeLimitShow')))">
a.legalTimeLimitShow as legalTimeLimitShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('promiseTimeLimitShow') or colPickMode == 1 and data.containsKey('promiseTimeLimitShow')))">
a.promiseTimeLimitShow as promiseTimeLimitShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isChargesShow') or colPickMode == 1 and data.containsKey('isChargesShow')))">
a.isChargesShow as isChargesShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('charges') or colPickMode == 1 and data.containsKey('charges')))">
a.charges as charges,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('handleTimeShow') or colPickMode == 1 and data.containsKey('handleTimeShow')))">
a.handleTimeShow as handleTimeShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('handlePlaceShow') or colPickMode == 1 and data.containsKey('handlePlaceShow')))">
a.handlePlaceShow as handlePlaceShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('cousultingTelephoneShow') or colPickMode == 1 and data.containsKey('cousultingTelephoneShow')))">
a.cousultingTelephoneShow as cousultingTelephoneShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('supervisoryTelephoneShow') or colPickMode == 1 and data.containsKey('supervisoryTelephoneShow')))">
a.supervisoryTelephoneShow as supervisoryTelephoneShow,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('resultInfo') or colPickMode == 1 and data.containsKey('resultInfo')))">
a.resultInfo as resultInfo,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('qa') or colPickMode == 1 and data.containsKey('qa')))">
a.qa as qa,
</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="BasicsInfoEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_basics_info
(title,basicsId,jointInfoShow,legalTimeLimitShow,promiseTimeLimitShow,isChargesShow,charges,handleTimeShow,handlePlaceShow,cousultingTelephoneShow,supervisoryTelephoneShow,resultInfo,qa,updateTime,updateUser,createTime,createUser)
VALUES
(#{title},#{basicsId},#{jointInfoShow},#{legalTimeLimitShow},#{promiseTimeLimitShow},#{isChargesShow},#{charges},#{handleTimeShow},#{handlePlaceShow},#{cousultingTelephoneShow},#{supervisoryTelephoneShow},#{resultInfo},#{qa},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_basics_info
(title,basicsId,jointInfoShow,legalTimeLimitShow,promiseTimeLimitShow,isChargesShow,charges,handleTimeShow,handlePlaceShow,cousultingTelephoneShow,supervisoryTelephoneShow,resultInfo,qa,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.title},#{item.basicsId},#{item.jointInfoShow},#{item.legalTimeLimitShow},#{item.promiseTimeLimitShow},#{item.isChargesShow},#{item.charges},#{item.handleTimeShow},#{item.handlePlaceShow},#{item.cousultingTelephoneShow},#{item.supervisoryTelephoneShow},#{item.resultInfo},#{item.qa},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_basics_info as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('jointInfoShow')) or (colPickMode==1 and !data.containsKey('jointInfoShow'))">
a.jointInfoShow=#{data.jointInfoShow},
</if>
<if test="(colPickMode==0 and data.containsKey('legalTimeLimitShow')) or (colPickMode==1 and !data.containsKey('legalTimeLimitShow'))">
a.legalTimeLimitShow=#{data.legalTimeLimitShow},
</if>
<if test="(colPickMode==0 and data.containsKey('promiseTimeLimitShow')) or (colPickMode==1 and !data.containsKey('promiseTimeLimitShow'))">
a.promiseTimeLimitShow=#{data.promiseTimeLimitShow},
</if>
<if test="(colPickMode==0 and data.containsKey('isChargesShow')) or (colPickMode==1 and !data.containsKey('isChargesShow'))">
a.isChargesShow=#{data.isChargesShow},
</if>
<if test="(colPickMode==0 and data.containsKey('isChargesShowIncrement')) or (colPickMode==1 and !data.containsKey('isChargesShowIncrement'))">
a.isChargesShow=ifnull(a.isChargesShow,0) + #{data.isChargesShowIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('charges')) or (colPickMode==1 and !data.containsKey('charges'))">
a.charges=#{data.charges},
</if>
<if test="(colPickMode==0 and data.containsKey('handleTimeShow')) or (colPickMode==1 and !data.containsKey('handleTimeShow'))">
a.handleTimeShow=#{data.handleTimeShow},
</if>
<if test="(colPickMode==0 and data.containsKey('handlePlaceShow')) or (colPickMode==1 and !data.containsKey('handlePlaceShow'))">
a.handlePlaceShow=#{data.handlePlaceShow},
</if>
<if test="(colPickMode==0 and data.containsKey('cousultingTelephoneShow')) or (colPickMode==1 and !data.containsKey('cousultingTelephoneShow'))">
a.cousultingTelephoneShow=#{data.cousultingTelephoneShow},
</if>
<if test="(colPickMode==0 and data.containsKey('supervisoryTelephoneShow')) or (colPickMode==1 and !data.containsKey('supervisoryTelephoneShow'))">
a.supervisoryTelephoneShow=#{data.supervisoryTelephoneShow},
</if>
<if test="(colPickMode==0 and data.containsKey('resultInfo')) or (colPickMode==1 and !data.containsKey('resultInfo'))">
a.resultInfo=#{data.resultInfo},
</if>
<if test="(colPickMode==0 and data.containsKey('qa')) or (colPickMode==1 and !data.containsKey('qa'))">
a.qa=#{data.qa},
</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_one_basics_info as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="jointInfoShow=(case" suffix="ELSE jointInfoShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('jointInfoShow')) or (colPickMode==1 and !item.containsKey('jointInfoShow'))">
when a.id=#{item.id} then #{item.jointInfoShow}
</if>
</foreach>
</trim>
<trim prefix="legalTimeLimitShow=(case" suffix="ELSE legalTimeLimitShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('legalTimeLimitShow')) or (colPickMode==1 and !item.containsKey('legalTimeLimitShow'))">
when a.id=#{item.id} then #{item.legalTimeLimitShow}
</if>
</foreach>
</trim>
<trim prefix="promiseTimeLimitShow=(case" suffix="ELSE promiseTimeLimitShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('promiseTimeLimitShow')) or (colPickMode==1 and !item.containsKey('promiseTimeLimitShow'))">
when a.id=#{item.id} then #{item.promiseTimeLimitShow}
</if>
</foreach>
</trim>
<trim prefix="isChargesShow=(case" suffix="ELSE isChargesShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isChargesShow')) or (colPickMode==1 and !item.containsKey('isChargesShow'))">
when a.id=#{item.id} then #{item.isChargesShow}
</when>
<when test="(colPickMode==0 and item.containsKey('isChargesShowIncrement')) or (colPickMode==1 and !item.containsKey('isChargesShowIncrement'))">
when a.id=#{item.id} then ifnull(a.isChargesShow,0) + #{item.isChargesShowIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="charges=(case" suffix="ELSE charges end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('charges')) or (colPickMode==1 and !item.containsKey('charges'))">
when a.id=#{item.id} then #{item.charges}
</if>
</foreach>
</trim>
<trim prefix="handleTimeShow=(case" suffix="ELSE handleTimeShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('handleTimeShow')) or (colPickMode==1 and !item.containsKey('handleTimeShow'))">
when a.id=#{item.id} then #{item.handleTimeShow}
</if>
</foreach>
</trim>
<trim prefix="handlePlaceShow=(case" suffix="ELSE handlePlaceShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('handlePlaceShow')) or (colPickMode==1 and !item.containsKey('handlePlaceShow'))">
when a.id=#{item.id} then #{item.handlePlaceShow}
</if>
</foreach>
</trim>
<trim prefix="cousultingTelephoneShow=(case" suffix="ELSE cousultingTelephoneShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('cousultingTelephoneShow')) or (colPickMode==1 and !item.containsKey('cousultingTelephoneShow'))">
when a.id=#{item.id} then #{item.cousultingTelephoneShow}
</if>
</foreach>
</trim>
<trim prefix="supervisoryTelephoneShow=(case" suffix="ELSE supervisoryTelephoneShow end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('supervisoryTelephoneShow')) or (colPickMode==1 and !item.containsKey('supervisoryTelephoneShow'))">
when a.id=#{item.id} then #{item.supervisoryTelephoneShow}
</if>
</foreach>
</trim>
<trim prefix="resultInfo=(case" suffix="ELSE resultInfo end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('resultInfo')) or (colPickMode==1 and !item.containsKey('resultInfo'))">
when a.id=#{item.id} then #{item.resultInfo}
</if>
</foreach>
</trim>
<trim prefix="qa=(case" suffix="ELSE qa end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('qa')) or (colPickMode==1 and !item.containsKey('qa'))">
when a.id=#{item.id} then #{item.qa}
</if>
</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="BasicsInfoEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics_info as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_basics_info as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_basics_info 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_one_basics_info as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="BasicsInfoEntity-Map">
select <include refid="_columns"/>
from mortals_one_basics_info 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_one_basics_info 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('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</if>
<if test="conditionParamRef.containsKey('jointInfoShow')">
<if test="conditionParamRef.jointInfoShow != null and conditionParamRef.jointInfoShow != ''">
${_conditionType_} a.jointInfoShow like #{${_conditionParam_}.jointInfoShow}
</if>
<if test="conditionParamRef.jointInfoShow == null">
${_conditionType_} a.jointInfoShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('jointInfoShowList')">
${_conditionType_} a.jointInfoShow in
<foreach collection="conditionParamRef.jointInfoShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('legalTimeLimitShow')">
<if test="conditionParamRef.legalTimeLimitShow != null and conditionParamRef.legalTimeLimitShow != ''">
${_conditionType_} a.legalTimeLimitShow like #{${_conditionParam_}.legalTimeLimitShow}
</if>
<if test="conditionParamRef.legalTimeLimitShow == null">
${_conditionType_} a.legalTimeLimitShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('legalTimeLimitShowList')">
${_conditionType_} a.legalTimeLimitShow in
<foreach collection="conditionParamRef.legalTimeLimitShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('promiseTimeLimitShow')">
<if test="conditionParamRef.promiseTimeLimitShow != null and conditionParamRef.promiseTimeLimitShow != ''">
${_conditionType_} a.promiseTimeLimitShow like #{${_conditionParam_}.promiseTimeLimitShow}
</if>
<if test="conditionParamRef.promiseTimeLimitShow == null">
${_conditionType_} a.promiseTimeLimitShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('promiseTimeLimitShowList')">
${_conditionType_} a.promiseTimeLimitShow in
<foreach collection="conditionParamRef.promiseTimeLimitShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isChargesShow')">
<if test="conditionParamRef.isChargesShow != null ">
${_conditionType_} a.isChargesShow = #{${_conditionParam_}.isChargesShow}
</if>
<if test="conditionParamRef.isChargesShow == null">
${_conditionType_} a.isChargesShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('isChargesShowList')">
${_conditionType_} a.isChargesShow in
<foreach collection="conditionParamRef.isChargesShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isChargesShowStart') and conditionParamRef.isChargesShowStart != null">
${_conditionType_} a.isChargesShow <![CDATA[ >= ]]> #{${_conditionParam_}.isChargesShowStart}
</if>
<if test="conditionParamRef.containsKey('isChargesShowEnd') and conditionParamRef.isChargesShowEnd != null">
${_conditionType_} a.isChargesShow <![CDATA[ <= ]]> #{${_conditionParam_}.isChargesShowEnd}
</if>
<if test="conditionParamRef.containsKey('charges')">
<if test="conditionParamRef.charges != null and conditionParamRef.charges != ''">
${_conditionType_} a.charges like #{${_conditionParam_}.charges}
</if>
<if test="conditionParamRef.charges == null">
${_conditionType_} a.charges is null
</if>
</if>
<if test="conditionParamRef.containsKey('chargesList')">
${_conditionType_} a.charges in
<foreach collection="conditionParamRef.chargesList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('handleTimeShow')">
<if test="conditionParamRef.handleTimeShow != null and conditionParamRef.handleTimeShow != ''">
${_conditionType_} a.handleTimeShow like #{${_conditionParam_}.handleTimeShow}
</if>
<if test="conditionParamRef.handleTimeShow == null">
${_conditionType_} a.handleTimeShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('handleTimeShowList')">
${_conditionType_} a.handleTimeShow in
<foreach collection="conditionParamRef.handleTimeShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('handlePlaceShow')">
<if test="conditionParamRef.handlePlaceShow != null and conditionParamRef.handlePlaceShow != ''">
${_conditionType_} a.handlePlaceShow like #{${_conditionParam_}.handlePlaceShow}
</if>
<if test="conditionParamRef.handlePlaceShow == null">
${_conditionType_} a.handlePlaceShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('handlePlaceShowList')">
${_conditionType_} a.handlePlaceShow in
<foreach collection="conditionParamRef.handlePlaceShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('cousultingTelephoneShow')">
<if test="conditionParamRef.cousultingTelephoneShow != null and conditionParamRef.cousultingTelephoneShow != ''">
${_conditionType_} a.cousultingTelephoneShow like #{${_conditionParam_}.cousultingTelephoneShow}
</if>
<if test="conditionParamRef.cousultingTelephoneShow == null">
${_conditionType_} a.cousultingTelephoneShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('cousultingTelephoneShowList')">
${_conditionType_} a.cousultingTelephoneShow in
<foreach collection="conditionParamRef.cousultingTelephoneShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('supervisoryTelephoneShow')">
<if test="conditionParamRef.supervisoryTelephoneShow != null and conditionParamRef.supervisoryTelephoneShow != ''">
${_conditionType_} a.supervisoryTelephoneShow like #{${_conditionParam_}.supervisoryTelephoneShow}
</if>
<if test="conditionParamRef.supervisoryTelephoneShow == null">
${_conditionType_} a.supervisoryTelephoneShow is null
</if>
</if>
<if test="conditionParamRef.containsKey('supervisoryTelephoneShowList')">
${_conditionType_} a.supervisoryTelephoneShow in
<foreach collection="conditionParamRef.supervisoryTelephoneShowList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('resultInfo')">
<if test="conditionParamRef.resultInfo != null and conditionParamRef.resultInfo != ''">
${_conditionType_} a.resultInfo like #{${_conditionParam_}.resultInfo}
</if>
<if test="conditionParamRef.resultInfo == null">
${_conditionType_} a.resultInfo is null
</if>
</if>
<if test="conditionParamRef.containsKey('resultInfoList')">
${_conditionType_} a.resultInfo in
<foreach collection="conditionParamRef.resultInfoList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('qa')">
<if test="conditionParamRef.qa != null and conditionParamRef.qa != ''">
${_conditionType_} a.qa like #{${_conditionParam_}.qa}
</if>
<if test="conditionParamRef.qa == null">
${_conditionType_} a.qa is null
</if>
</if>
<if test="conditionParamRef.containsKey('qaList')">
${_conditionType_} a.qa in
<foreach collection="conditionParamRef.qaList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('jointInfoShow')">
a.jointInfoShow
<if test='orderCol.jointInfoShow != null and "DESC".equalsIgnoreCase(orderCol.jointInfoShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('legalTimeLimitShow')">
a.legalTimeLimitShow
<if test='orderCol.legalTimeLimitShow != null and "DESC".equalsIgnoreCase(orderCol.legalTimeLimitShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('promiseTimeLimitShow')">
a.promiseTimeLimitShow
<if test='orderCol.promiseTimeLimitShow != null and "DESC".equalsIgnoreCase(orderCol.promiseTimeLimitShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isChargesShow')">
a.isChargesShow
<if test='orderCol.isChargesShow != null and "DESC".equalsIgnoreCase(orderCol.isChargesShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('charges')">
a.charges
<if test='orderCol.charges != null and "DESC".equalsIgnoreCase(orderCol.charges)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('handleTimeShow')">
a.handleTimeShow
<if test='orderCol.handleTimeShow != null and "DESC".equalsIgnoreCase(orderCol.handleTimeShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('handlePlaceShow')">
a.handlePlaceShow
<if test='orderCol.handlePlaceShow != null and "DESC".equalsIgnoreCase(orderCol.handlePlaceShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('cousultingTelephoneShow')">
a.cousultingTelephoneShow
<if test='orderCol.cousultingTelephoneShow != null and "DESC".equalsIgnoreCase(orderCol.cousultingTelephoneShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('supervisoryTelephoneShow')">
a.supervisoryTelephoneShow
<if test='orderCol.supervisoryTelephoneShow != null and "DESC".equalsIgnoreCase(orderCol.supervisoryTelephoneShow)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('resultInfo')">
a.resultInfo
<if test='orderCol.resultInfo != null and "DESC".equalsIgnoreCase(orderCol.resultInfo)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('qa')">
a.qa
<if test='orderCol.qa != null and "DESC".equalsIgnoreCase(orderCol.qa)'>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
<?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.classify.dao.ibatis.ClassifyDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ClassifyEntity" id="ClassifyEntity-Map">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="basicsId" column="basicsId" />
<result property="parentId" column="parentId" />
<result property="parentOptionId" column="parentOptionId" />
<result property="type" column="type" />
<result property="ismust" column="ismust" />
<result property="level" column="level" />
<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('name') or colPickMode == 1 and data.containsKey('name')))">
a.name as name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('parentId') or colPickMode == 1 and data.containsKey('parentId')))">
a.parentId as parentId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('parentOptionId') or colPickMode == 1 and data.containsKey('parentOptionId')))">
a.parentOptionId as parentOptionId,
</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('ismust') or colPickMode == 1 and data.containsKey('ismust')))">
a.ismust as ismust,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('level') or colPickMode == 1 and data.containsKey('level')))">
a.level as level,
</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="ClassifyEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_classify
(name,basicsId,parentId,parentOptionId,type,ismust,level,updateTime,updateUser,createTime,createUser)
VALUES
(#{name},#{basicsId},#{parentId},#{parentOptionId},#{type},#{ismust},#{level},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_classify
(name,basicsId,parentId,parentOptionId,type,ismust,level,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.name},#{item.basicsId},#{item.parentId},#{item.parentOptionId},#{item.type},#{item.ismust},#{item.level},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_classify as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
a.name=#{data.name},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('parentId')) or (colPickMode==1 and !data.containsKey('parentId'))">
a.parentId=#{data.parentId},
</if>
<if test="(colPickMode==0 and data.containsKey('parentIdIncrement')) or (colPickMode==1 and !data.containsKey('parentIdIncrement'))">
a.parentId=ifnull(a.parentId,0) + #{data.parentIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('parentOptionId')) or (colPickMode==1 and !data.containsKey('parentOptionId'))">
a.parentOptionId=#{data.parentOptionId},
</if>
<if test="(colPickMode==0 and data.containsKey('parentOptionIdIncrement')) or (colPickMode==1 and !data.containsKey('parentOptionIdIncrement'))">
a.parentOptionId=ifnull(a.parentOptionId,0) + #{data.parentOptionIdIncrement},
</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('ismust')) or (colPickMode==1 and !data.containsKey('ismust'))">
a.ismust=#{data.ismust},
</if>
<if test="(colPickMode==0 and data.containsKey('ismustIncrement')) or (colPickMode==1 and !data.containsKey('ismustIncrement'))">
a.ismust=ifnull(a.ismust,0) + #{data.ismustIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('level')) or (colPickMode==1 and !data.containsKey('level'))">
a.level=#{data.level},
</if>
<if test="(colPickMode==0 and data.containsKey('levelIncrement')) or (colPickMode==1 and !data.containsKey('levelIncrement'))">
a.level=ifnull(a.level,0) + #{data.levelIncrement},
</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_one_classify as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="name=(case" suffix="ELSE name end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('name')) or (colPickMode==1 and !item.containsKey('name'))">
when a.id=#{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="parentId=(case" suffix="ELSE parentId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('parentId')) or (colPickMode==1 and !item.containsKey('parentId'))">
when a.id=#{item.id} then #{item.parentId}
</when>
<when test="(colPickMode==0 and item.containsKey('parentIdIncrement')) or (colPickMode==1 and !item.containsKey('parentIdIncrement'))">
when a.id=#{item.id} then ifnull(a.parentId,0) + #{item.parentIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="parentOptionId=(case" suffix="ELSE parentOptionId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('parentOptionId')) or (colPickMode==1 and !item.containsKey('parentOptionId'))">
when a.id=#{item.id} then #{item.parentOptionId}
</when>
<when test="(colPickMode==0 and item.containsKey('parentOptionIdIncrement')) or (colPickMode==1 and !item.containsKey('parentOptionIdIncrement'))">
when a.id=#{item.id} then ifnull(a.parentOptionId,0) + #{item.parentOptionIdIncrement}
</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="ismust=(case" suffix="ELSE ismust end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('ismust')) or (colPickMode==1 and !item.containsKey('ismust'))">
when a.id=#{item.id} then #{item.ismust}
</when>
<when test="(colPickMode==0 and item.containsKey('ismustIncrement')) or (colPickMode==1 and !item.containsKey('ismustIncrement'))">
when a.id=#{item.id} then ifnull(a.ismust,0) + #{item.ismustIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="level=(case" suffix="ELSE level end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('level')) or (colPickMode==1 and !item.containsKey('level'))">
when a.id=#{item.id} then #{item.level}
</when>
<when test="(colPickMode==0 and item.containsKey('levelIncrement')) or (colPickMode==1 and !item.containsKey('levelIncrement'))">
when a.id=#{item.id} then ifnull(a.level,0) + #{item.levelIncrement}
</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="ClassifyEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_classify as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_classify 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_one_classify as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ClassifyEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify 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_one_classify 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('name')">
<if test="conditionParamRef.name != null and conditionParamRef.name != ''">
${_conditionType_} a.name like #{${_conditionParam_}.name}
</if>
<if test="conditionParamRef.name == null">
${_conditionType_} a.name is null
</if>
</if>
<if test="conditionParamRef.containsKey('nameList')">
${_conditionType_} a.name in
<foreach collection="conditionParamRef.nameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</if>
<if test="conditionParamRef.containsKey('parentId')">
<if test="conditionParamRef.parentId != null ">
${_conditionType_} a.parentId = #{${_conditionParam_}.parentId}
</if>
<if test="conditionParamRef.parentId == null">
${_conditionType_} a.parentId is null
</if>
</if>
<if test="conditionParamRef.containsKey('parentIdList')">
${_conditionType_} a.parentId in
<foreach collection="conditionParamRef.parentIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('parentIdStart') and conditionParamRef.parentIdStart != null">
${_conditionType_} a.parentId <![CDATA[ >= ]]> #{${_conditionParam_}.parentIdStart}
</if>
<if test="conditionParamRef.containsKey('parentIdEnd') and conditionParamRef.parentIdEnd != null">
${_conditionType_} a.parentId <![CDATA[ <= ]]> #{${_conditionParam_}.parentIdEnd}
</if>
<if test="conditionParamRef.containsKey('parentOptionId')">
<if test="conditionParamRef.parentOptionId != null ">
${_conditionType_} a.parentOptionId = #{${_conditionParam_}.parentOptionId}
</if>
<if test="conditionParamRef.parentOptionId == null">
${_conditionType_} a.parentOptionId is null
</if>
</if>
<if test="conditionParamRef.containsKey('parentOptionIdList')">
${_conditionType_} a.parentOptionId in
<foreach collection="conditionParamRef.parentOptionIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('parentOptionIdStart') and conditionParamRef.parentOptionIdStart != null">
${_conditionType_} a.parentOptionId <![CDATA[ >= ]]> #{${_conditionParam_}.parentOptionIdStart}
</if>
<if test="conditionParamRef.containsKey('parentOptionIdEnd') and conditionParamRef.parentOptionIdEnd != null">
${_conditionType_} a.parentOptionId <![CDATA[ <= ]]> #{${_conditionParam_}.parentOptionIdEnd}
</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('ismust')">
<if test="conditionParamRef.ismust != null ">
${_conditionType_} a.ismust = #{${_conditionParam_}.ismust}
</if>
<if test="conditionParamRef.ismust == null">
${_conditionType_} a.ismust is null
</if>
</if>
<if test="conditionParamRef.containsKey('ismustList')">
${_conditionType_} a.ismust in
<foreach collection="conditionParamRef.ismustList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('ismustStart') and conditionParamRef.ismustStart != null">
${_conditionType_} a.ismust <![CDATA[ >= ]]> #{${_conditionParam_}.ismustStart}
</if>
<if test="conditionParamRef.containsKey('ismustEnd') and conditionParamRef.ismustEnd != null">
${_conditionType_} a.ismust <![CDATA[ <= ]]> #{${_conditionParam_}.ismustEnd}
</if>
<if test="conditionParamRef.containsKey('level')">
<if test="conditionParamRef.level != null ">
${_conditionType_} a.level = #{${_conditionParam_}.level}
</if>
<if test="conditionParamRef.level == null">
${_conditionType_} a.level is null
</if>
</if>
<if test="conditionParamRef.containsKey('levelList')">
${_conditionType_} a.level in
<foreach collection="conditionParamRef.levelList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('levelStart') and conditionParamRef.levelStart != null">
${_conditionType_} a.level <![CDATA[ >= ]]> #{${_conditionParam_}.levelStart}
</if>
<if test="conditionParamRef.containsKey('levelEnd') and conditionParamRef.levelEnd != null">
${_conditionType_} a.level <![CDATA[ <= ]]> #{${_conditionParam_}.levelEnd}
</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('name')">
a.name
<if test='orderCol.name != null and "DESC".equalsIgnoreCase(orderCol.name)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('parentId')">
a.parentId
<if test='orderCol.parentId != null and "DESC".equalsIgnoreCase(orderCol.parentId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('parentOptionId')">
a.parentOptionId
<if test='orderCol.parentOptionId != null and "DESC".equalsIgnoreCase(orderCol.parentOptionId)'>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('ismust')">
a.ismust
<if test='orderCol.ismust != null and "DESC".equalsIgnoreCase(orderCol.ismust)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('level')">
a.level
<if test='orderCol.level != null and "DESC".equalsIgnoreCase(orderCol.level)'>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
<?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.classify.dao.ibatis.ClassifyOptionDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ClassifyOptionEntity" id="ClassifyOptionEntity-Map">
<result property="id" column="id" />
<result property="classifyId" column="classifyId" />
<result property="classifyNextId" column="classifyNextId" />
<result property="name" column="name" />
<result property="isend" column="isend" />
<result property="basicsinfoId" column="basicsinfoId" />
<result property="acceptId" column="acceptId" />
<result property="flowlimitId" column="flowlimitId" />
<result property="matterId" column="matterId" />
<result property="datumId" column="datumId" />
<result property="summaryType" column="summaryType" />
<result property="summary" column="summary" />
<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('classifyId') or colPickMode == 1 and data.containsKey('classifyId')))">
a.classifyId as classifyId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('classifyNextId') or colPickMode == 1 and data.containsKey('classifyNextId')))">
a.classifyNextId as classifyNextId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
a.name as name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isend') or colPickMode == 1 and data.containsKey('isend')))">
a.isend as isend,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsinfoId') or colPickMode == 1 and data.containsKey('basicsinfoId')))">
a.basicsinfoId as basicsinfoId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('acceptId') or colPickMode == 1 and data.containsKey('acceptId')))">
a.acceptId as acceptId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('flowlimitId') or colPickMode == 1 and data.containsKey('flowlimitId')))">
a.flowlimitId as flowlimitId,
</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('datumId') or colPickMode == 1 and data.containsKey('datumId')))">
a.datumId as datumId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('summaryType') or colPickMode == 1 and data.containsKey('summaryType')))">
a.summaryType as summaryType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('summary') or colPickMode == 1 and data.containsKey('summary')))">
a.summary as summary,
</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="ClassifyOptionEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_classify_option
(classifyId,classifyNextId,name,isend,basicsinfoId,acceptId,flowlimitId,matterId,datumId,summaryType,summary,updateTime,updateUser,createTime,createUser)
VALUES
(#{classifyId},#{classifyNextId},#{name},#{isend},#{basicsinfoId},#{acceptId},#{flowlimitId},#{matterId},#{datumId},#{summaryType},#{summary},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_classify_option
(classifyId,classifyNextId,name,isend,basicsinfoId,acceptId,flowlimitId,matterId,datumId,summaryType,summary,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.classifyId},#{item.classifyNextId},#{item.name},#{item.isend},#{item.basicsinfoId},#{item.acceptId},#{item.flowlimitId},#{item.matterId},#{item.datumId},#{item.summaryType},#{item.summary},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_classify_option as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('classifyId')) or (colPickMode==1 and !data.containsKey('classifyId'))">
a.classifyId=#{data.classifyId},
</if>
<if test="(colPickMode==0 and data.containsKey('classifyIdIncrement')) or (colPickMode==1 and !data.containsKey('classifyIdIncrement'))">
a.classifyId=ifnull(a.classifyId,0) + #{data.classifyIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('classifyNextId')) or (colPickMode==1 and !data.containsKey('classifyNextId'))">
a.classifyNextId=#{data.classifyNextId},
</if>
<if test="(colPickMode==0 and data.containsKey('classifyNextIdIncrement')) or (colPickMode==1 and !data.containsKey('classifyNextIdIncrement'))">
a.classifyNextId=ifnull(a.classifyNextId,0) + #{data.classifyNextIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
a.name=#{data.name},
</if>
<if test="(colPickMode==0 and data.containsKey('isend')) or (colPickMode==1 and !data.containsKey('isend'))">
a.isend=#{data.isend},
</if>
<if test="(colPickMode==0 and data.containsKey('isendIncrement')) or (colPickMode==1 and !data.containsKey('isendIncrement'))">
a.isend=ifnull(a.isend,0) + #{data.isendIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsinfoId')) or (colPickMode==1 and !data.containsKey('basicsinfoId'))">
a.basicsinfoId=#{data.basicsinfoId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsinfoIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsinfoIdIncrement'))">
a.basicsinfoId=ifnull(a.basicsinfoId,0) + #{data.basicsinfoIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('acceptId')) or (colPickMode==1 and !data.containsKey('acceptId'))">
a.acceptId=#{data.acceptId},
</if>
<if test="(colPickMode==0 and data.containsKey('acceptIdIncrement')) or (colPickMode==1 and !data.containsKey('acceptIdIncrement'))">
a.acceptId=ifnull(a.acceptId,0) + #{data.acceptIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('flowlimitId')) or (colPickMode==1 and !data.containsKey('flowlimitId'))">
a.flowlimitId=#{data.flowlimitId},
</if>
<if test="(colPickMode==0 and data.containsKey('flowlimitIdIncrement')) or (colPickMode==1 and !data.containsKey('flowlimitIdIncrement'))">
a.flowlimitId=ifnull(a.flowlimitId,0) + #{data.flowlimitIdIncrement},
</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('datumId')) or (colPickMode==1 and !data.containsKey('datumId'))">
a.datumId=#{data.datumId},
</if>
<if test="(colPickMode==0 and data.containsKey('datumIdIncrement')) or (colPickMode==1 and !data.containsKey('datumIdIncrement'))">
a.datumId=ifnull(a.datumId,0) + #{data.datumIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('summaryType')) or (colPickMode==1 and !data.containsKey('summaryType'))">
a.summaryType=#{data.summaryType},
</if>
<if test="(colPickMode==0 and data.containsKey('summaryTypeIncrement')) or (colPickMode==1 and !data.containsKey('summaryTypeIncrement'))">
a.summaryType=ifnull(a.summaryType,0) + #{data.summaryTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('summary')) or (colPickMode==1 and !data.containsKey('summary'))">
a.summary=#{data.summary},
</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_one_classify_option as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="classifyId=(case" suffix="ELSE classifyId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('classifyId')) or (colPickMode==1 and !item.containsKey('classifyId'))">
when a.id=#{item.id} then #{item.classifyId}
</when>
<when test="(colPickMode==0 and item.containsKey('classifyIdIncrement')) or (colPickMode==1 and !item.containsKey('classifyIdIncrement'))">
when a.id=#{item.id} then ifnull(a.classifyId,0) + #{item.classifyIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="classifyNextId=(case" suffix="ELSE classifyNextId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('classifyNextId')) or (colPickMode==1 and !item.containsKey('classifyNextId'))">
when a.id=#{item.id} then #{item.classifyNextId}
</when>
<when test="(colPickMode==0 and item.containsKey('classifyNextIdIncrement')) or (colPickMode==1 and !item.containsKey('classifyNextIdIncrement'))">
when a.id=#{item.id} then ifnull(a.classifyNextId,0) + #{item.classifyNextIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="name=(case" suffix="ELSE name end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('name')) or (colPickMode==1 and !item.containsKey('name'))">
when a.id=#{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="isend=(case" suffix="ELSE isend end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isend')) or (colPickMode==1 and !item.containsKey('isend'))">
when a.id=#{item.id} then #{item.isend}
</when>
<when test="(colPickMode==0 and item.containsKey('isendIncrement')) or (colPickMode==1 and !item.containsKey('isendIncrement'))">
when a.id=#{item.id} then ifnull(a.isend,0) + #{item.isendIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="basicsinfoId=(case" suffix="ELSE basicsinfoId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsinfoId')) or (colPickMode==1 and !item.containsKey('basicsinfoId'))">
when a.id=#{item.id} then #{item.basicsinfoId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsinfoIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsinfoIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsinfoId,0) + #{item.basicsinfoIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="acceptId=(case" suffix="ELSE acceptId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('acceptId')) or (colPickMode==1 and !item.containsKey('acceptId'))">
when a.id=#{item.id} then #{item.acceptId}
</when>
<when test="(colPickMode==0 and item.containsKey('acceptIdIncrement')) or (colPickMode==1 and !item.containsKey('acceptIdIncrement'))">
when a.id=#{item.id} then ifnull(a.acceptId,0) + #{item.acceptIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="flowlimitId=(case" suffix="ELSE flowlimitId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('flowlimitId')) or (colPickMode==1 and !item.containsKey('flowlimitId'))">
when a.id=#{item.id} then #{item.flowlimitId}
</when>
<when test="(colPickMode==0 and item.containsKey('flowlimitIdIncrement')) or (colPickMode==1 and !item.containsKey('flowlimitIdIncrement'))">
when a.id=#{item.id} then ifnull(a.flowlimitId,0) + #{item.flowlimitIdIncrement}
</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="datumId=(case" suffix="ELSE datumId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('datumId')) or (colPickMode==1 and !item.containsKey('datumId'))">
when a.id=#{item.id} then #{item.datumId}
</when>
<when test="(colPickMode==0 and item.containsKey('datumIdIncrement')) or (colPickMode==1 and !item.containsKey('datumIdIncrement'))">
when a.id=#{item.id} then ifnull(a.datumId,0) + #{item.datumIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="summaryType=(case" suffix="ELSE summaryType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('summaryType')) or (colPickMode==1 and !item.containsKey('summaryType'))">
when a.id=#{item.id} then #{item.summaryType}
</when>
<when test="(colPickMode==0 and item.containsKey('summaryTypeIncrement')) or (colPickMode==1 and !item.containsKey('summaryTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.summaryType,0) + #{item.summaryTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="summary=(case" suffix="ELSE summary end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('summary')) or (colPickMode==1 and !item.containsKey('summary'))">
when a.id=#{item.id} then #{item.summary}
</if>
</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="ClassifyOptionEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify_option as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_classify_option as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_classify_option 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_one_classify_option as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ClassifyOptionEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify_option 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_one_classify_option 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('classifyId')">
<if test="conditionParamRef.classifyId != null ">
${_conditionType_} a.classifyId = #{${_conditionParam_}.classifyId}
</if>
<if test="conditionParamRef.classifyId == null">
${_conditionType_} a.classifyId is null
</if>
</if>
<if test="conditionParamRef.containsKey('classifyIdList')">
${_conditionType_} a.classifyId in
<foreach collection="conditionParamRef.classifyIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('classifyIdStart') and conditionParamRef.classifyIdStart != null">
${_conditionType_} a.classifyId <![CDATA[ >= ]]> #{${_conditionParam_}.classifyIdStart}
</if>
<if test="conditionParamRef.containsKey('classifyIdEnd') and conditionParamRef.classifyIdEnd != null">
${_conditionType_} a.classifyId <![CDATA[ <= ]]> #{${_conditionParam_}.classifyIdEnd}
</if>
<if test="conditionParamRef.containsKey('classifyNextId')">
<if test="conditionParamRef.classifyNextId != null ">
${_conditionType_} a.classifyNextId = #{${_conditionParam_}.classifyNextId}
</if>
<if test="conditionParamRef.classifyNextId == null">
${_conditionType_} a.classifyNextId is null
</if>
</if>
<if test="conditionParamRef.containsKey('classifyNextIdList')">
${_conditionType_} a.classifyNextId in
<foreach collection="conditionParamRef.classifyNextIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('classifyNextIdStart') and conditionParamRef.classifyNextIdStart != null">
${_conditionType_} a.classifyNextId <![CDATA[ >= ]]> #{${_conditionParam_}.classifyNextIdStart}
</if>
<if test="conditionParamRef.containsKey('classifyNextIdEnd') and conditionParamRef.classifyNextIdEnd != null">
${_conditionType_} a.classifyNextId <![CDATA[ <= ]]> #{${_conditionParam_}.classifyNextIdEnd}
</if>
<if test="conditionParamRef.containsKey('name')">
<if test="conditionParamRef.name != null and conditionParamRef.name != ''">
${_conditionType_} a.name like #{${_conditionParam_}.name}
</if>
<if test="conditionParamRef.name == null">
${_conditionType_} a.name is null
</if>
</if>
<if test="conditionParamRef.containsKey('nameList')">
${_conditionType_} a.name in
<foreach collection="conditionParamRef.nameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isend')">
<if test="conditionParamRef.isend != null ">
${_conditionType_} a.isend = #{${_conditionParam_}.isend}
</if>
<if test="conditionParamRef.isend == null">
${_conditionType_} a.isend is null
</if>
</if>
<if test="conditionParamRef.containsKey('isendList')">
${_conditionType_} a.isend in
<foreach collection="conditionParamRef.isendList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isendStart') and conditionParamRef.isendStart != null">
${_conditionType_} a.isend <![CDATA[ >= ]]> #{${_conditionParam_}.isendStart}
</if>
<if test="conditionParamRef.containsKey('isendEnd') and conditionParamRef.isendEnd != null">
${_conditionType_} a.isend <![CDATA[ <= ]]> #{${_conditionParam_}.isendEnd}
</if>
<if test="conditionParamRef.containsKey('basicsinfoId')">
<if test="conditionParamRef.basicsinfoId != null ">
${_conditionType_} a.basicsinfoId = #{${_conditionParam_}.basicsinfoId}
</if>
<if test="conditionParamRef.basicsinfoId == null">
${_conditionType_} a.basicsinfoId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsinfoIdList')">
${_conditionType_} a.basicsinfoId in
<foreach collection="conditionParamRef.basicsinfoIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsinfoIdStart') and conditionParamRef.basicsinfoIdStart != null">
${_conditionType_} a.basicsinfoId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsinfoIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsinfoIdEnd') and conditionParamRef.basicsinfoIdEnd != null">
${_conditionType_} a.basicsinfoId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsinfoIdEnd}
</if>
<if test="conditionParamRef.containsKey('acceptId')">
<if test="conditionParamRef.acceptId != null ">
${_conditionType_} a.acceptId = #{${_conditionParam_}.acceptId}
</if>
<if test="conditionParamRef.acceptId == null">
${_conditionType_} a.acceptId is null
</if>
</if>
<if test="conditionParamRef.containsKey('acceptIdList')">
${_conditionType_} a.acceptId in
<foreach collection="conditionParamRef.acceptIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('acceptIdStart') and conditionParamRef.acceptIdStart != null">
${_conditionType_} a.acceptId <![CDATA[ >= ]]> #{${_conditionParam_}.acceptIdStart}
</if>
<if test="conditionParamRef.containsKey('acceptIdEnd') and conditionParamRef.acceptIdEnd != null">
${_conditionType_} a.acceptId <![CDATA[ <= ]]> #{${_conditionParam_}.acceptIdEnd}
</if>
<if test="conditionParamRef.containsKey('flowlimitId')">
<if test="conditionParamRef.flowlimitId != null ">
${_conditionType_} a.flowlimitId = #{${_conditionParam_}.flowlimitId}
</if>
<if test="conditionParamRef.flowlimitId == null">
${_conditionType_} a.flowlimitId is null
</if>
</if>
<if test="conditionParamRef.containsKey('flowlimitIdList')">
${_conditionType_} a.flowlimitId in
<foreach collection="conditionParamRef.flowlimitIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('flowlimitIdStart') and conditionParamRef.flowlimitIdStart != null">
${_conditionType_} a.flowlimitId <![CDATA[ >= ]]> #{${_conditionParam_}.flowlimitIdStart}
</if>
<if test="conditionParamRef.containsKey('flowlimitIdEnd') and conditionParamRef.flowlimitIdEnd != null">
${_conditionType_} a.flowlimitId <![CDATA[ <= ]]> #{${_conditionParam_}.flowlimitIdEnd}
</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('datumId')">
<if test="conditionParamRef.datumId != null ">
${_conditionType_} a.datumId = #{${_conditionParam_}.datumId}
</if>
<if test="conditionParamRef.datumId == null">
${_conditionType_} a.datumId is null
</if>
</if>
<if test="conditionParamRef.containsKey('datumIdList')">
${_conditionType_} a.datumId in
<foreach collection="conditionParamRef.datumIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('datumIdStart') and conditionParamRef.datumIdStart != null">
${_conditionType_} a.datumId <![CDATA[ >= ]]> #{${_conditionParam_}.datumIdStart}
</if>
<if test="conditionParamRef.containsKey('datumIdEnd') and conditionParamRef.datumIdEnd != null">
${_conditionType_} a.datumId <![CDATA[ <= ]]> #{${_conditionParam_}.datumIdEnd}
</if>
<if test="conditionParamRef.containsKey('summaryType')">
<if test="conditionParamRef.summaryType != null ">
${_conditionType_} a.summaryType = #{${_conditionParam_}.summaryType}
</if>
<if test="conditionParamRef.summaryType == null">
${_conditionType_} a.summaryType is null
</if>
</if>
<if test="conditionParamRef.containsKey('summaryTypeList')">
${_conditionType_} a.summaryType in
<foreach collection="conditionParamRef.summaryTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('summaryTypeStart') and conditionParamRef.summaryTypeStart != null">
${_conditionType_} a.summaryType <![CDATA[ >= ]]> #{${_conditionParam_}.summaryTypeStart}
</if>
<if test="conditionParamRef.containsKey('summaryTypeEnd') and conditionParamRef.summaryTypeEnd != null">
${_conditionType_} a.summaryType <![CDATA[ <= ]]> #{${_conditionParam_}.summaryTypeEnd}
</if>
<if test="conditionParamRef.containsKey('summary')">
<if test="conditionParamRef.summary != null and conditionParamRef.summary != ''">
${_conditionType_} a.summary like #{${_conditionParam_}.summary}
</if>
<if test="conditionParamRef.summary == null">
${_conditionType_} a.summary is null
</if>
</if>
<if test="conditionParamRef.containsKey('summaryList')">
${_conditionType_} a.summary in
<foreach collection="conditionParamRef.summaryList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('classifyId')">
a.classifyId
<if test='orderCol.classifyId != null and "DESC".equalsIgnoreCase(orderCol.classifyId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('classifyNextId')">
a.classifyNextId
<if test='orderCol.classifyNextId != null and "DESC".equalsIgnoreCase(orderCol.classifyNextId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('name')">
a.name
<if test='orderCol.name != null and "DESC".equalsIgnoreCase(orderCol.name)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isend')">
a.isend
<if test='orderCol.isend != null and "DESC".equalsIgnoreCase(orderCol.isend)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsinfoId')">
a.basicsinfoId
<if test='orderCol.basicsinfoId != null and "DESC".equalsIgnoreCase(orderCol.basicsinfoId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('acceptId')">
a.acceptId
<if test='orderCol.acceptId != null and "DESC".equalsIgnoreCase(orderCol.acceptId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('flowlimitId')">
a.flowlimitId
<if test='orderCol.flowlimitId != null and "DESC".equalsIgnoreCase(orderCol.flowlimitId)'>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('datumId')">
a.datumId
<if test='orderCol.datumId != null and "DESC".equalsIgnoreCase(orderCol.datumId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('summaryType')">
a.summaryType
<if test='orderCol.summaryType != null and "DESC".equalsIgnoreCase(orderCol.summaryType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('summary')">
a.summary
<if test='orderCol.summary != null and "DESC".equalsIgnoreCase(orderCol.summary)'>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
<?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.classify.dao.ibatis.ClassifyRelationDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ClassifyRelationEntity" id="ClassifyRelationEntity-Map">
<result property="id" column="id" />
<result property="classifyId" column="classifyId" />
<result property="basicsJson" column="basicsJson" />
<result property="acceptJson" column="acceptJson" />
<result property="flowlimitJson" column="flowlimitJson" />
<result property="oneDatumIds" column="oneDatumIds" />
<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('classifyId') or colPickMode == 1 and data.containsKey('classifyId')))">
a.classifyId as classifyId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsJson') or colPickMode == 1 and data.containsKey('basicsJson')))">
a.basicsJson as basicsJson,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('acceptJson') or colPickMode == 1 and data.containsKey('acceptJson')))">
a.acceptJson as acceptJson,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('flowlimitJson') or colPickMode == 1 and data.containsKey('flowlimitJson')))">
a.flowlimitJson as flowlimitJson,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('oneDatumIds') or colPickMode == 1 and data.containsKey('oneDatumIds')))">
a.oneDatumIds as oneDatumIds,
</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="ClassifyRelationEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_classify_relation
(classifyId,basicsJson,acceptJson,flowlimitJson,oneDatumIds,updateTime,updateUser,createTime,createUser)
VALUES
(#{classifyId},#{basicsJson},#{acceptJson},#{flowlimitJson},#{oneDatumIds},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_classify_relation
(classifyId,basicsJson,acceptJson,flowlimitJson,oneDatumIds,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.classifyId},#{item.basicsJson},#{item.acceptJson},#{item.flowlimitJson},#{item.oneDatumIds},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_classify_relation as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('classifyId')) or (colPickMode==1 and !data.containsKey('classifyId'))">
a.classifyId=#{data.classifyId},
</if>
<if test="(colPickMode==0 and data.containsKey('classifyIdIncrement')) or (colPickMode==1 and !data.containsKey('classifyIdIncrement'))">
a.classifyId=ifnull(a.classifyId,0) + #{data.classifyIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsJson')) or (colPickMode==1 and !data.containsKey('basicsJson'))">
a.basicsJson=#{data.basicsJson},
</if>
<if test="(colPickMode==0 and data.containsKey('acceptJson')) or (colPickMode==1 and !data.containsKey('acceptJson'))">
a.acceptJson=#{data.acceptJson},
</if>
<if test="(colPickMode==0 and data.containsKey('flowlimitJson')) or (colPickMode==1 and !data.containsKey('flowlimitJson'))">
a.flowlimitJson=#{data.flowlimitJson},
</if>
<if test="(colPickMode==0 and data.containsKey('oneDatumIds')) or (colPickMode==1 and !data.containsKey('oneDatumIds'))">
a.oneDatumIds=#{data.oneDatumIds},
</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_one_classify_relation as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="classifyId=(case" suffix="ELSE classifyId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('classifyId')) or (colPickMode==1 and !item.containsKey('classifyId'))">
when a.id=#{item.id} then #{item.classifyId}
</when>
<when test="(colPickMode==0 and item.containsKey('classifyIdIncrement')) or (colPickMode==1 and !item.containsKey('classifyIdIncrement'))">
when a.id=#{item.id} then ifnull(a.classifyId,0) + #{item.classifyIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="basicsJson=(case" suffix="ELSE basicsJson end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('basicsJson')) or (colPickMode==1 and !item.containsKey('basicsJson'))">
when a.id=#{item.id} then #{item.basicsJson}
</if>
</foreach>
</trim>
<trim prefix="acceptJson=(case" suffix="ELSE acceptJson end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('acceptJson')) or (colPickMode==1 and !item.containsKey('acceptJson'))">
when a.id=#{item.id} then #{item.acceptJson}
</if>
</foreach>
</trim>
<trim prefix="flowlimitJson=(case" suffix="ELSE flowlimitJson end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('flowlimitJson')) or (colPickMode==1 and !item.containsKey('flowlimitJson'))">
when a.id=#{item.id} then #{item.flowlimitJson}
</if>
</foreach>
</trim>
<trim prefix="oneDatumIds=(case" suffix="ELSE oneDatumIds end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('oneDatumIds')) or (colPickMode==1 and !item.containsKey('oneDatumIds'))">
when a.id=#{item.id} then #{item.oneDatumIds}
</if>
</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="ClassifyRelationEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify_relation as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_classify_relation as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_classify_relation 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_one_classify_relation as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ClassifyRelationEntity-Map">
select <include refid="_columns"/>
from mortals_one_classify_relation 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_one_classify_relation 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('classifyId')">
<if test="conditionParamRef.classifyId != null ">
${_conditionType_} a.classifyId = #{${_conditionParam_}.classifyId}
</if>
<if test="conditionParamRef.classifyId == null">
${_conditionType_} a.classifyId is null
</if>
</if>
<if test="conditionParamRef.containsKey('classifyIdList')">
${_conditionType_} a.classifyId in
<foreach collection="conditionParamRef.classifyIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('classifyIdStart') and conditionParamRef.classifyIdStart != null">
${_conditionType_} a.classifyId <![CDATA[ >= ]]> #{${_conditionParam_}.classifyIdStart}
</if>
<if test="conditionParamRef.containsKey('classifyIdEnd') and conditionParamRef.classifyIdEnd != null">
${_conditionType_} a.classifyId <![CDATA[ <= ]]> #{${_conditionParam_}.classifyIdEnd}
</if>
<if test="conditionParamRef.containsKey('basicsJson')">
<if test="conditionParamRef.basicsJson != null and conditionParamRef.basicsJson != ''">
${_conditionType_} a.basicsJson like #{${_conditionParam_}.basicsJson}
</if>
<if test="conditionParamRef.basicsJson == null">
${_conditionType_} a.basicsJson is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsJsonList')">
${_conditionType_} a.basicsJson in
<foreach collection="conditionParamRef.basicsJsonList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('acceptJson')">
<if test="conditionParamRef.acceptJson != null and conditionParamRef.acceptJson != ''">
${_conditionType_} a.acceptJson like #{${_conditionParam_}.acceptJson}
</if>
<if test="conditionParamRef.acceptJson == null">
${_conditionType_} a.acceptJson is null
</if>
</if>
<if test="conditionParamRef.containsKey('acceptJsonList')">
${_conditionType_} a.acceptJson in
<foreach collection="conditionParamRef.acceptJsonList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('flowlimitJson')">
<if test="conditionParamRef.flowlimitJson != null and conditionParamRef.flowlimitJson != ''">
${_conditionType_} a.flowlimitJson like #{${_conditionParam_}.flowlimitJson}
</if>
<if test="conditionParamRef.flowlimitJson == null">
${_conditionType_} a.flowlimitJson is null
</if>
</if>
<if test="conditionParamRef.containsKey('flowlimitJsonList')">
${_conditionType_} a.flowlimitJson in
<foreach collection="conditionParamRef.flowlimitJsonList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('oneDatumIds')">
<if test="conditionParamRef.oneDatumIds != null and conditionParamRef.oneDatumIds != ''">
${_conditionType_} a.oneDatumIds like #{${_conditionParam_}.oneDatumIds}
</if>
<if test="conditionParamRef.oneDatumIds == null">
${_conditionType_} a.oneDatumIds is null
</if>
</if>
<if test="conditionParamRef.containsKey('oneDatumIdsList')">
${_conditionType_} a.oneDatumIds in
<foreach collection="conditionParamRef.oneDatumIdsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('classifyId')">
a.classifyId
<if test='orderCol.classifyId != null and "DESC".equalsIgnoreCase(orderCol.classifyId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsJson')">
a.basicsJson
<if test='orderCol.basicsJson != null and "DESC".equalsIgnoreCase(orderCol.basicsJson)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('acceptJson')">
a.acceptJson
<if test='orderCol.acceptJson != null and "DESC".equalsIgnoreCase(orderCol.acceptJson)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('flowlimitJson')">
a.flowlimitJson
<if test='orderCol.flowlimitJson != null and "DESC".equalsIgnoreCase(orderCol.flowlimitJson)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('oneDatumIds')">
a.oneDatumIds
<if test='orderCol.oneDatumIds != null and "DESC".equalsIgnoreCase(orderCol.oneDatumIds)'>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
<?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.datum.dao.ibatis.DatumDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="DatumEntity" id="DatumEntity-Map">
<result property="id" column="id" />
<result property="materialName" column="materialName" />
<result property="basicsId" column="basicsId" />
<result property="matterid" column="matterid" />
<result property="datumId" column="datumId" />
<result property="materialProperty" column="materialProperty" />
<result property="isMust" column="isMust" />
<result property="materialType" column="materialType" />
<result property="electronicgs" column="electronicgs" />
<result property="materialSource" column="materialSource" />
<result property="paperNum" column="paperNum" />
<result property="paperGg" column="paperGg" />
<result property="jianmMs" column="jianmMs" />
<result property="sealWay" column="sealWay" />
<result property="isjianm" column="isjianm" />
<result property="isLack" column="isLack" />
<result property="ybUrl" column="ybUrl" />
<result property="materialSourceSm" column="materialSourceSm" />
<result property="remarkSub" column="remarkSub" />
<result property="remark" column="remark" />
<result property="clauseContent" column="clauseContent" />
<result property="summary" column="summary" />
<result property="valid" column="valid" />
<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('materialName') or colPickMode == 1 and data.containsKey('materialName')))">
a.materialName as materialName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</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('datumId') or colPickMode == 1 and data.containsKey('datumId')))">
a.datumId as datumId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('materialProperty') or colPickMode == 1 and data.containsKey('materialProperty')))">
a.materialProperty as materialProperty,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isMust') or colPickMode == 1 and data.containsKey('isMust')))">
a.isMust as isMust,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('materialType') or colPickMode == 1 and data.containsKey('materialType')))">
a.materialType as materialType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('electronicgs') or colPickMode == 1 and data.containsKey('electronicgs')))">
a.electronicgs as electronicgs,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('materialSource') or colPickMode == 1 and data.containsKey('materialSource')))">
a.materialSource as materialSource,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('paperNum') or colPickMode == 1 and data.containsKey('paperNum')))">
a.paperNum as paperNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('paperGg') or colPickMode == 1 and data.containsKey('paperGg')))">
a.paperGg as paperGg,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('jianmMs') or colPickMode == 1 and data.containsKey('jianmMs')))">
a.jianmMs as jianmMs,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sealWay') or colPickMode == 1 and data.containsKey('sealWay')))">
a.sealWay as sealWay,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isjianm') or colPickMode == 1 and data.containsKey('isjianm')))">
a.isjianm as isjianm,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isLack') or colPickMode == 1 and data.containsKey('isLack')))">
a.isLack as isLack,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ybUrl') or colPickMode == 1 and data.containsKey('ybUrl')))">
a.ybUrl as ybUrl,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('materialSourceSm') or colPickMode == 1 and data.containsKey('materialSourceSm')))">
a.materialSourceSm as materialSourceSm,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remarkSub') or colPickMode == 1 and data.containsKey('remarkSub')))">
a.remarkSub as remarkSub,
</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('clauseContent') or colPickMode == 1 and data.containsKey('clauseContent')))">
a.clauseContent as clauseContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('summary') or colPickMode == 1 and data.containsKey('summary')))">
a.summary as summary,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('valid') or colPickMode == 1 and data.containsKey('valid')))">
a.valid as valid,
</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="DatumEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_datum
(materialName,basicsId,matterid,datumId,materialProperty,isMust,materialType,electronicgs,materialSource,paperNum,paperGg,jianmMs,sealWay,isjianm,isLack,ybUrl,materialSourceSm,remarkSub,remark,clauseContent,summary,valid,updateTime,updateUser,createTime,createUser)
VALUES
(#{materialName},#{basicsId},#{matterid},#{datumId},#{materialProperty},#{isMust},#{materialType},#{electronicgs},#{materialSource},#{paperNum},#{paperGg},#{jianmMs},#{sealWay},#{isjianm},#{isLack},#{ybUrl},#{materialSourceSm},#{remarkSub},#{remark},#{clauseContent},#{summary},#{valid},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_datum
(materialName,basicsId,matterid,datumId,materialProperty,isMust,materialType,electronicgs,materialSource,paperNum,paperGg,jianmMs,sealWay,isjianm,isLack,ybUrl,materialSourceSm,remarkSub,remark,clauseContent,summary,valid,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.materialName},#{item.basicsId},#{item.matterid},#{item.datumId},#{item.materialProperty},#{item.isMust},#{item.materialType},#{item.electronicgs},#{item.materialSource},#{item.paperNum},#{item.paperGg},#{item.jianmMs},#{item.sealWay},#{item.isjianm},#{item.isLack},#{item.ybUrl},#{item.materialSourceSm},#{item.remarkSub},#{item.remark},#{item.clauseContent},#{item.summary},#{item.valid},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_datum as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('materialName')) or (colPickMode==1 and !data.containsKey('materialName'))">
a.materialName=#{data.materialName},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</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('datumId')) or (colPickMode==1 and !data.containsKey('datumId'))">
a.datumId=#{data.datumId},
</if>
<if test="(colPickMode==0 and data.containsKey('datumIdIncrement')) or (colPickMode==1 and !data.containsKey('datumIdIncrement'))">
a.datumId=ifnull(a.datumId,0) + #{data.datumIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('materialProperty')) or (colPickMode==1 and !data.containsKey('materialProperty'))">
a.materialProperty=#{data.materialProperty},
</if>
<if test="(colPickMode==0 and data.containsKey('materialPropertyIncrement')) or (colPickMode==1 and !data.containsKey('materialPropertyIncrement'))">
a.materialProperty=ifnull(a.materialProperty,0) + #{data.materialPropertyIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('isMust')) or (colPickMode==1 and !data.containsKey('isMust'))">
a.isMust=#{data.isMust},
</if>
<if test="(colPickMode==0 and data.containsKey('isMustIncrement')) or (colPickMode==1 and !data.containsKey('isMustIncrement'))">
a.isMust=ifnull(a.isMust,0) + #{data.isMustIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('materialType')) or (colPickMode==1 and !data.containsKey('materialType'))">
a.materialType=#{data.materialType},
</if>
<if test="(colPickMode==0 and data.containsKey('materialTypeIncrement')) or (colPickMode==1 and !data.containsKey('materialTypeIncrement'))">
a.materialType=ifnull(a.materialType,0) + #{data.materialTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('electronicgs')) or (colPickMode==1 and !data.containsKey('electronicgs'))">
a.electronicgs=#{data.electronicgs},
</if>
<if test="(colPickMode==0 and data.containsKey('electronicgsIncrement')) or (colPickMode==1 and !data.containsKey('electronicgsIncrement'))">
a.electronicgs=ifnull(a.electronicgs,0) + #{data.electronicgsIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('materialSource')) or (colPickMode==1 and !data.containsKey('materialSource'))">
a.materialSource=#{data.materialSource},
</if>
<if test="(colPickMode==0 and data.containsKey('materialSourceIncrement')) or (colPickMode==1 and !data.containsKey('materialSourceIncrement'))">
a.materialSource=ifnull(a.materialSource,0) + #{data.materialSourceIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('paperNum')) or (colPickMode==1 and !data.containsKey('paperNum'))">
a.paperNum=#{data.paperNum},
</if>
<if test="(colPickMode==0 and data.containsKey('paperNumIncrement')) or (colPickMode==1 and !data.containsKey('paperNumIncrement'))">
a.paperNum=ifnull(a.paperNum,0) + #{data.paperNumIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('paperGg')) or (colPickMode==1 and !data.containsKey('paperGg'))">
a.paperGg=#{data.paperGg},
</if>
<if test="(colPickMode==0 and data.containsKey('paperGgIncrement')) or (colPickMode==1 and !data.containsKey('paperGgIncrement'))">
a.paperGg=ifnull(a.paperGg,0) + #{data.paperGgIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('jianmMs')) or (colPickMode==1 and !data.containsKey('jianmMs'))">
a.jianmMs=#{data.jianmMs},
</if>
<if test="(colPickMode==0 and data.containsKey('jianmMsIncrement')) or (colPickMode==1 and !data.containsKey('jianmMsIncrement'))">
a.jianmMs=ifnull(a.jianmMs,0) + #{data.jianmMsIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sealWay')) or (colPickMode==1 and !data.containsKey('sealWay'))">
a.sealWay=#{data.sealWay},
</if>
<if test="(colPickMode==0 and data.containsKey('sealWayIncrement')) or (colPickMode==1 and !data.containsKey('sealWayIncrement'))">
a.sealWay=ifnull(a.sealWay,0) + #{data.sealWayIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('isjianm')) or (colPickMode==1 and !data.containsKey('isjianm'))">
a.isjianm=#{data.isjianm},
</if>
<if test="(colPickMode==0 and data.containsKey('isjianmIncrement')) or (colPickMode==1 and !data.containsKey('isjianmIncrement'))">
a.isjianm=ifnull(a.isjianm,0) + #{data.isjianmIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('isLack')) or (colPickMode==1 and !data.containsKey('isLack'))">
a.isLack=#{data.isLack},
</if>
<if test="(colPickMode==0 and data.containsKey('isLackIncrement')) or (colPickMode==1 and !data.containsKey('isLackIncrement'))">
a.isLack=ifnull(a.isLack,0) + #{data.isLackIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('ybUrl')) or (colPickMode==1 and !data.containsKey('ybUrl'))">
a.ybUrl=#{data.ybUrl},
</if>
<if test="(colPickMode==0 and data.containsKey('materialSourceSm')) or (colPickMode==1 and !data.containsKey('materialSourceSm'))">
a.materialSourceSm=#{data.materialSourceSm},
</if>
<if test="(colPickMode==0 and data.containsKey('materialSourceSmIncrement')) or (colPickMode==1 and !data.containsKey('materialSourceSmIncrement'))">
a.materialSourceSm=ifnull(a.materialSourceSm,0) + #{data.materialSourceSmIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('remarkSub')) or (colPickMode==1 and !data.containsKey('remarkSub'))">
a.remarkSub=#{data.remarkSub},
</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('clauseContent')) or (colPickMode==1 and !data.containsKey('clauseContent'))">
a.clauseContent=#{data.clauseContent},
</if>
<if test="(colPickMode==0 and data.containsKey('summary')) or (colPickMode==1 and !data.containsKey('summary'))">
a.summary=#{data.summary},
</if>
<if test="(colPickMode==0 and data.containsKey('valid')) or (colPickMode==1 and !data.containsKey('valid'))">
a.valid=#{data.valid},
</if>
<if test="(colPickMode==0 and data.containsKey('validIncrement')) or (colPickMode==1 and !data.containsKey('validIncrement'))">
a.valid=ifnull(a.valid,0) + #{data.validIncrement},
</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_one_datum as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="materialName=(case" suffix="ELSE materialName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('materialName')) or (colPickMode==1 and !item.containsKey('materialName'))">
when a.id=#{item.id} then #{item.materialName}
</if>
</foreach>
</trim>
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</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="datumId=(case" suffix="ELSE datumId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('datumId')) or (colPickMode==1 and !item.containsKey('datumId'))">
when a.id=#{item.id} then #{item.datumId}
</when>
<when test="(colPickMode==0 and item.containsKey('datumIdIncrement')) or (colPickMode==1 and !item.containsKey('datumIdIncrement'))">
when a.id=#{item.id} then ifnull(a.datumId,0) + #{item.datumIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="materialProperty=(case" suffix="ELSE materialProperty end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('materialProperty')) or (colPickMode==1 and !item.containsKey('materialProperty'))">
when a.id=#{item.id} then #{item.materialProperty}
</when>
<when test="(colPickMode==0 and item.containsKey('materialPropertyIncrement')) or (colPickMode==1 and !item.containsKey('materialPropertyIncrement'))">
when a.id=#{item.id} then ifnull(a.materialProperty,0) + #{item.materialPropertyIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="isMust=(case" suffix="ELSE isMust end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isMust')) or (colPickMode==1 and !item.containsKey('isMust'))">
when a.id=#{item.id} then #{item.isMust}
</when>
<when test="(colPickMode==0 and item.containsKey('isMustIncrement')) or (colPickMode==1 and !item.containsKey('isMustIncrement'))">
when a.id=#{item.id} then ifnull(a.isMust,0) + #{item.isMustIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="materialType=(case" suffix="ELSE materialType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('materialType')) or (colPickMode==1 and !item.containsKey('materialType'))">
when a.id=#{item.id} then #{item.materialType}
</when>
<when test="(colPickMode==0 and item.containsKey('materialTypeIncrement')) or (colPickMode==1 and !item.containsKey('materialTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.materialType,0) + #{item.materialTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="electronicgs=(case" suffix="ELSE electronicgs end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('electronicgs')) or (colPickMode==1 and !item.containsKey('electronicgs'))">
when a.id=#{item.id} then #{item.electronicgs}
</when>
<when test="(colPickMode==0 and item.containsKey('electronicgsIncrement')) or (colPickMode==1 and !item.containsKey('electronicgsIncrement'))">
when a.id=#{item.id} then ifnull(a.electronicgs,0) + #{item.electronicgsIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="materialSource=(case" suffix="ELSE materialSource end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('materialSource')) or (colPickMode==1 and !item.containsKey('materialSource'))">
when a.id=#{item.id} then #{item.materialSource}
</when>
<when test="(colPickMode==0 and item.containsKey('materialSourceIncrement')) or (colPickMode==1 and !item.containsKey('materialSourceIncrement'))">
when a.id=#{item.id} then ifnull(a.materialSource,0) + #{item.materialSourceIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="paperNum=(case" suffix="ELSE paperNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('paperNum')) or (colPickMode==1 and !item.containsKey('paperNum'))">
when a.id=#{item.id} then #{item.paperNum}
</when>
<when test="(colPickMode==0 and item.containsKey('paperNumIncrement')) or (colPickMode==1 and !item.containsKey('paperNumIncrement'))">
when a.id=#{item.id} then ifnull(a.paperNum,0) + #{item.paperNumIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="paperGg=(case" suffix="ELSE paperGg end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('paperGg')) or (colPickMode==1 and !item.containsKey('paperGg'))">
when a.id=#{item.id} then #{item.paperGg}
</when>
<when test="(colPickMode==0 and item.containsKey('paperGgIncrement')) or (colPickMode==1 and !item.containsKey('paperGgIncrement'))">
when a.id=#{item.id} then ifnull(a.paperGg,0) + #{item.paperGgIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="jianmMs=(case" suffix="ELSE jianmMs end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('jianmMs')) or (colPickMode==1 and !item.containsKey('jianmMs'))">
when a.id=#{item.id} then #{item.jianmMs}
</when>
<when test="(colPickMode==0 and item.containsKey('jianmMsIncrement')) or (colPickMode==1 and !item.containsKey('jianmMsIncrement'))">
when a.id=#{item.id} then ifnull(a.jianmMs,0) + #{item.jianmMsIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sealWay=(case" suffix="ELSE sealWay end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sealWay')) or (colPickMode==1 and !item.containsKey('sealWay'))">
when a.id=#{item.id} then #{item.sealWay}
</when>
<when test="(colPickMode==0 and item.containsKey('sealWayIncrement')) or (colPickMode==1 and !item.containsKey('sealWayIncrement'))">
when a.id=#{item.id} then ifnull(a.sealWay,0) + #{item.sealWayIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="isjianm=(case" suffix="ELSE isjianm end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isjianm')) or (colPickMode==1 and !item.containsKey('isjianm'))">
when a.id=#{item.id} then #{item.isjianm}
</when>
<when test="(colPickMode==0 and item.containsKey('isjianmIncrement')) or (colPickMode==1 and !item.containsKey('isjianmIncrement'))">
when a.id=#{item.id} then ifnull(a.isjianm,0) + #{item.isjianmIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="isLack=(case" suffix="ELSE isLack end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('isLack')) or (colPickMode==1 and !item.containsKey('isLack'))">
when a.id=#{item.id} then #{item.isLack}
</when>
<when test="(colPickMode==0 and item.containsKey('isLackIncrement')) or (colPickMode==1 and !item.containsKey('isLackIncrement'))">
when a.id=#{item.id} then ifnull(a.isLack,0) + #{item.isLackIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="ybUrl=(case" suffix="ELSE ybUrl end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('ybUrl')) or (colPickMode==1 and !item.containsKey('ybUrl'))">
when a.id=#{item.id} then #{item.ybUrl}
</if>
</foreach>
</trim>
<trim prefix="materialSourceSm=(case" suffix="ELSE materialSourceSm end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('materialSourceSm')) or (colPickMode==1 and !item.containsKey('materialSourceSm'))">
when a.id=#{item.id} then #{item.materialSourceSm}
</when>
<when test="(colPickMode==0 and item.containsKey('materialSourceSmIncrement')) or (colPickMode==1 and !item.containsKey('materialSourceSmIncrement'))">
when a.id=#{item.id} then ifnull(a.materialSourceSm,0) + #{item.materialSourceSmIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="remarkSub=(case" suffix="ELSE remarkSub end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('remarkSub')) or (colPickMode==1 and !item.containsKey('remarkSub'))">
when a.id=#{item.id} then #{item.remarkSub}
</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="clauseContent=(case" suffix="ELSE clauseContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('clauseContent')) or (colPickMode==1 and !item.containsKey('clauseContent'))">
when a.id=#{item.id} then #{item.clauseContent}
</if>
</foreach>
</trim>
<trim prefix="summary=(case" suffix="ELSE summary end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('summary')) or (colPickMode==1 and !item.containsKey('summary'))">
when a.id=#{item.id} then #{item.summary}
</if>
</foreach>
</trim>
<trim prefix="valid=(case" suffix="ELSE valid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('valid')) or (colPickMode==1 and !item.containsKey('valid'))">
when a.id=#{item.id} then #{item.valid}
</when>
<when test="(colPickMode==0 and item.containsKey('validIncrement')) or (colPickMode==1 and !item.containsKey('validIncrement'))">
when a.id=#{item.id} then ifnull(a.valid,0) + #{item.validIncrement}
</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="DatumEntity-Map">
select <include refid="_columns"/>
from mortals_one_datum as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_datum as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_datum 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_one_datum as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="DatumEntity-Map">
select <include refid="_columns"/>
from mortals_one_datum 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_one_datum 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('materialName')">
<if test="conditionParamRef.materialName != null and conditionParamRef.materialName != ''">
${_conditionType_} a.materialName like #{${_conditionParam_}.materialName}
</if>
<if test="conditionParamRef.materialName == null">
${_conditionType_} a.materialName is null
</if>
</if>
<if test="conditionParamRef.containsKey('materialNameList')">
${_conditionType_} a.materialName in
<foreach collection="conditionParamRef.materialNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</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('datumId')">
<if test="conditionParamRef.datumId != null ">
${_conditionType_} a.datumId = #{${_conditionParam_}.datumId}
</if>
<if test="conditionParamRef.datumId == null">
${_conditionType_} a.datumId is null
</if>
</if>
<if test="conditionParamRef.containsKey('datumIdList')">
${_conditionType_} a.datumId in
<foreach collection="conditionParamRef.datumIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('datumIdStart') and conditionParamRef.datumIdStart != null">
${_conditionType_} a.datumId <![CDATA[ >= ]]> #{${_conditionParam_}.datumIdStart}
</if>
<if test="conditionParamRef.containsKey('datumIdEnd') and conditionParamRef.datumIdEnd != null">
${_conditionType_} a.datumId <![CDATA[ <= ]]> #{${_conditionParam_}.datumIdEnd}
</if>
<if test="conditionParamRef.containsKey('materialProperty')">
<if test="conditionParamRef.materialProperty != null ">
${_conditionType_} a.materialProperty = #{${_conditionParam_}.materialProperty}
</if>
<if test="conditionParamRef.materialProperty == null">
${_conditionType_} a.materialProperty is null
</if>
</if>
<if test="conditionParamRef.containsKey('materialPropertyList')">
${_conditionType_} a.materialProperty in
<foreach collection="conditionParamRef.materialPropertyList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('materialPropertyStart') and conditionParamRef.materialPropertyStart != null">
${_conditionType_} a.materialProperty <![CDATA[ >= ]]> #{${_conditionParam_}.materialPropertyStart}
</if>
<if test="conditionParamRef.containsKey('materialPropertyEnd') and conditionParamRef.materialPropertyEnd != null">
${_conditionType_} a.materialProperty <![CDATA[ <= ]]> #{${_conditionParam_}.materialPropertyEnd}
</if>
<if test="conditionParamRef.containsKey('isMust')">
<if test="conditionParamRef.isMust != null ">
${_conditionType_} a.isMust = #{${_conditionParam_}.isMust}
</if>
<if test="conditionParamRef.isMust == null">
${_conditionType_} a.isMust is null
</if>
</if>
<if test="conditionParamRef.containsKey('isMustList')">
${_conditionType_} a.isMust in
<foreach collection="conditionParamRef.isMustList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isMustStart') and conditionParamRef.isMustStart != null">
${_conditionType_} a.isMust <![CDATA[ >= ]]> #{${_conditionParam_}.isMustStart}
</if>
<if test="conditionParamRef.containsKey('isMustEnd') and conditionParamRef.isMustEnd != null">
${_conditionType_} a.isMust <![CDATA[ <= ]]> #{${_conditionParam_}.isMustEnd}
</if>
<if test="conditionParamRef.containsKey('materialType')">
<if test="conditionParamRef.materialType != null ">
${_conditionType_} a.materialType = #{${_conditionParam_}.materialType}
</if>
<if test="conditionParamRef.materialType == null">
${_conditionType_} a.materialType is null
</if>
</if>
<if test="conditionParamRef.containsKey('materialTypeList')">
${_conditionType_} a.materialType in
<foreach collection="conditionParamRef.materialTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('materialTypeStart') and conditionParamRef.materialTypeStart != null">
${_conditionType_} a.materialType <![CDATA[ >= ]]> #{${_conditionParam_}.materialTypeStart}
</if>
<if test="conditionParamRef.containsKey('materialTypeEnd') and conditionParamRef.materialTypeEnd != null">
${_conditionType_} a.materialType <![CDATA[ <= ]]> #{${_conditionParam_}.materialTypeEnd}
</if>
<if test="conditionParamRef.containsKey('electronicgs')">
<if test="conditionParamRef.electronicgs != null ">
${_conditionType_} a.electronicgs = #{${_conditionParam_}.electronicgs}
</if>
<if test="conditionParamRef.electronicgs == null">
${_conditionType_} a.electronicgs is null
</if>
</if>
<if test="conditionParamRef.containsKey('electronicgsList')">
${_conditionType_} a.electronicgs in
<foreach collection="conditionParamRef.electronicgsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('electronicgsStart') and conditionParamRef.electronicgsStart != null">
${_conditionType_} a.electronicgs <![CDATA[ >= ]]> #{${_conditionParam_}.electronicgsStart}
</if>
<if test="conditionParamRef.containsKey('electronicgsEnd') and conditionParamRef.electronicgsEnd != null">
${_conditionType_} a.electronicgs <![CDATA[ <= ]]> #{${_conditionParam_}.electronicgsEnd}
</if>
<if test="conditionParamRef.containsKey('materialSource')">
<if test="conditionParamRef.materialSource != null ">
${_conditionType_} a.materialSource = #{${_conditionParam_}.materialSource}
</if>
<if test="conditionParamRef.materialSource == null">
${_conditionType_} a.materialSource is null
</if>
</if>
<if test="conditionParamRef.containsKey('materialSourceList')">
${_conditionType_} a.materialSource in
<foreach collection="conditionParamRef.materialSourceList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('materialSourceStart') and conditionParamRef.materialSourceStart != null">
${_conditionType_} a.materialSource <![CDATA[ >= ]]> #{${_conditionParam_}.materialSourceStart}
</if>
<if test="conditionParamRef.containsKey('materialSourceEnd') and conditionParamRef.materialSourceEnd != null">
${_conditionType_} a.materialSource <![CDATA[ <= ]]> #{${_conditionParam_}.materialSourceEnd}
</if>
<if test="conditionParamRef.containsKey('paperNum')">
<if test="conditionParamRef.paperNum != null ">
${_conditionType_} a.paperNum = #{${_conditionParam_}.paperNum}
</if>
<if test="conditionParamRef.paperNum == null">
${_conditionType_} a.paperNum is null
</if>
</if>
<if test="conditionParamRef.containsKey('paperNumList')">
${_conditionType_} a.paperNum in
<foreach collection="conditionParamRef.paperNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('paperNumStart') and conditionParamRef.paperNumStart != null">
${_conditionType_} a.paperNum <![CDATA[ >= ]]> #{${_conditionParam_}.paperNumStart}
</if>
<if test="conditionParamRef.containsKey('paperNumEnd') and conditionParamRef.paperNumEnd != null">
${_conditionType_} a.paperNum <![CDATA[ <= ]]> #{${_conditionParam_}.paperNumEnd}
</if>
<if test="conditionParamRef.containsKey('paperGg')">
<if test="conditionParamRef.paperGg != null ">
${_conditionType_} a.paperGg = #{${_conditionParam_}.paperGg}
</if>
<if test="conditionParamRef.paperGg == null">
${_conditionType_} a.paperGg is null
</if>
</if>
<if test="conditionParamRef.containsKey('paperGgList')">
${_conditionType_} a.paperGg in
<foreach collection="conditionParamRef.paperGgList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('paperGgStart') and conditionParamRef.paperGgStart != null">
${_conditionType_} a.paperGg <![CDATA[ >= ]]> #{${_conditionParam_}.paperGgStart}
</if>
<if test="conditionParamRef.containsKey('paperGgEnd') and conditionParamRef.paperGgEnd != null">
${_conditionType_} a.paperGg <![CDATA[ <= ]]> #{${_conditionParam_}.paperGgEnd}
</if>
<if test="conditionParamRef.containsKey('jianmMs')">
<if test="conditionParamRef.jianmMs != null ">
${_conditionType_} a.jianmMs = #{${_conditionParam_}.jianmMs}
</if>
<if test="conditionParamRef.jianmMs == null">
${_conditionType_} a.jianmMs is null
</if>
</if>
<if test="conditionParamRef.containsKey('jianmMsList')">
${_conditionType_} a.jianmMs in
<foreach collection="conditionParamRef.jianmMsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('jianmMsStart') and conditionParamRef.jianmMsStart != null">
${_conditionType_} a.jianmMs <![CDATA[ >= ]]> #{${_conditionParam_}.jianmMsStart}
</if>
<if test="conditionParamRef.containsKey('jianmMsEnd') and conditionParamRef.jianmMsEnd != null">
${_conditionType_} a.jianmMs <![CDATA[ <= ]]> #{${_conditionParam_}.jianmMsEnd}
</if>
<if test="conditionParamRef.containsKey('sealWay')">
<if test="conditionParamRef.sealWay != null ">
${_conditionType_} a.sealWay = #{${_conditionParam_}.sealWay}
</if>
<if test="conditionParamRef.sealWay == null">
${_conditionType_} a.sealWay is null
</if>
</if>
<if test="conditionParamRef.containsKey('sealWayList')">
${_conditionType_} a.sealWay in
<foreach collection="conditionParamRef.sealWayList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sealWayStart') and conditionParamRef.sealWayStart != null">
${_conditionType_} a.sealWay <![CDATA[ >= ]]> #{${_conditionParam_}.sealWayStart}
</if>
<if test="conditionParamRef.containsKey('sealWayEnd') and conditionParamRef.sealWayEnd != null">
${_conditionType_} a.sealWay <![CDATA[ <= ]]> #{${_conditionParam_}.sealWayEnd}
</if>
<if test="conditionParamRef.containsKey('isjianm')">
<if test="conditionParamRef.isjianm != null ">
${_conditionType_} a.isjianm = #{${_conditionParam_}.isjianm}
</if>
<if test="conditionParamRef.isjianm == null">
${_conditionType_} a.isjianm is null
</if>
</if>
<if test="conditionParamRef.containsKey('isjianmList')">
${_conditionType_} a.isjianm in
<foreach collection="conditionParamRef.isjianmList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isjianmStart') and conditionParamRef.isjianmStart != null">
${_conditionType_} a.isjianm <![CDATA[ >= ]]> #{${_conditionParam_}.isjianmStart}
</if>
<if test="conditionParamRef.containsKey('isjianmEnd') and conditionParamRef.isjianmEnd != null">
${_conditionType_} a.isjianm <![CDATA[ <= ]]> #{${_conditionParam_}.isjianmEnd}
</if>
<if test="conditionParamRef.containsKey('isLack')">
<if test="conditionParamRef.isLack != null ">
${_conditionType_} a.isLack = #{${_conditionParam_}.isLack}
</if>
<if test="conditionParamRef.isLack == null">
${_conditionType_} a.isLack is null
</if>
</if>
<if test="conditionParamRef.containsKey('isLackList')">
${_conditionType_} a.isLack in
<foreach collection="conditionParamRef.isLackList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isLackStart') and conditionParamRef.isLackStart != null">
${_conditionType_} a.isLack <![CDATA[ >= ]]> #{${_conditionParam_}.isLackStart}
</if>
<if test="conditionParamRef.containsKey('isLackEnd') and conditionParamRef.isLackEnd != null">
${_conditionType_} a.isLack <![CDATA[ <= ]]> #{${_conditionParam_}.isLackEnd}
</if>
<if test="conditionParamRef.containsKey('ybUrl')">
<if test="conditionParamRef.ybUrl != null and conditionParamRef.ybUrl != ''">
${_conditionType_} a.ybUrl like #{${_conditionParam_}.ybUrl}
</if>
<if test="conditionParamRef.ybUrl == null">
${_conditionType_} a.ybUrl is null
</if>
</if>
<if test="conditionParamRef.containsKey('ybUrlList')">
${_conditionType_} a.ybUrl in
<foreach collection="conditionParamRef.ybUrlList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('materialSourceSm')">
<if test="conditionParamRef.materialSourceSm != null ">
${_conditionType_} a.materialSourceSm = #{${_conditionParam_}.materialSourceSm}
</if>
<if test="conditionParamRef.materialSourceSm == null">
${_conditionType_} a.materialSourceSm is null
</if>
</if>
<if test="conditionParamRef.containsKey('materialSourceSmList')">
${_conditionType_} a.materialSourceSm in
<foreach collection="conditionParamRef.materialSourceSmList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('materialSourceSmStart') and conditionParamRef.materialSourceSmStart != null">
${_conditionType_} a.materialSourceSm <![CDATA[ >= ]]> #{${_conditionParam_}.materialSourceSmStart}
</if>
<if test="conditionParamRef.containsKey('materialSourceSmEnd') and conditionParamRef.materialSourceSmEnd != null">
${_conditionType_} a.materialSourceSm <![CDATA[ <= ]]> #{${_conditionParam_}.materialSourceSmEnd}
</if>
<if test="conditionParamRef.containsKey('remarkSub')">
<if test="conditionParamRef.remarkSub != null and conditionParamRef.remarkSub != ''">
${_conditionType_} a.remarkSub like #{${_conditionParam_}.remarkSub}
</if>
<if test="conditionParamRef.remarkSub == null">
${_conditionType_} a.remarkSub is null
</if>
</if>
<if test="conditionParamRef.containsKey('remarkSubList')">
${_conditionType_} a.remarkSub in
<foreach collection="conditionParamRef.remarkSubList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('clauseContent')">
<if test="conditionParamRef.clauseContent != null and conditionParamRef.clauseContent != ''">
${_conditionType_} a.clauseContent like #{${_conditionParam_}.clauseContent}
</if>
<if test="conditionParamRef.clauseContent == null">
${_conditionType_} a.clauseContent is null
</if>
</if>
<if test="conditionParamRef.containsKey('clauseContentList')">
${_conditionType_} a.clauseContent in
<foreach collection="conditionParamRef.clauseContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('summary')">
<if test="conditionParamRef.summary != null and conditionParamRef.summary != ''">
${_conditionType_} a.summary like #{${_conditionParam_}.summary}
</if>
<if test="conditionParamRef.summary == null">
${_conditionType_} a.summary is null
</if>
</if>
<if test="conditionParamRef.containsKey('summaryList')">
${_conditionType_} a.summary in
<foreach collection="conditionParamRef.summaryList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('valid')">
<if test="conditionParamRef.valid != null ">
${_conditionType_} a.valid = #{${_conditionParam_}.valid}
</if>
<if test="conditionParamRef.valid == null">
${_conditionType_} a.valid is null
</if>
</if>
<if test="conditionParamRef.containsKey('validList')">
${_conditionType_} a.valid in
<foreach collection="conditionParamRef.validList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('validStart') and conditionParamRef.validStart != null">
${_conditionType_} a.valid <![CDATA[ >= ]]> #{${_conditionParam_}.validStart}
</if>
<if test="conditionParamRef.containsKey('validEnd') and conditionParamRef.validEnd != null">
${_conditionType_} a.valid <![CDATA[ <= ]]> #{${_conditionParam_}.validEnd}
</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('materialName')">
a.materialName
<if test='orderCol.materialName != null and "DESC".equalsIgnoreCase(orderCol.materialName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>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('datumId')">
a.datumId
<if test='orderCol.datumId != null and "DESC".equalsIgnoreCase(orderCol.datumId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('materialProperty')">
a.materialProperty
<if test='orderCol.materialProperty != null and "DESC".equalsIgnoreCase(orderCol.materialProperty)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isMust')">
a.isMust
<if test='orderCol.isMust != null and "DESC".equalsIgnoreCase(orderCol.isMust)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('materialType')">
a.materialType
<if test='orderCol.materialType != null and "DESC".equalsIgnoreCase(orderCol.materialType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('electronicgs')">
a.electronicgs
<if test='orderCol.electronicgs != null and "DESC".equalsIgnoreCase(orderCol.electronicgs)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('materialSource')">
a.materialSource
<if test='orderCol.materialSource != null and "DESC".equalsIgnoreCase(orderCol.materialSource)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('paperNum')">
a.paperNum
<if test='orderCol.paperNum != null and "DESC".equalsIgnoreCase(orderCol.paperNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('paperGg')">
a.paperGg
<if test='orderCol.paperGg != null and "DESC".equalsIgnoreCase(orderCol.paperGg)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('jianmMs')">
a.jianmMs
<if test='orderCol.jianmMs != null and "DESC".equalsIgnoreCase(orderCol.jianmMs)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sealWay')">
a.sealWay
<if test='orderCol.sealWay != null and "DESC".equalsIgnoreCase(orderCol.sealWay)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isjianm')">
a.isjianm
<if test='orderCol.isjianm != null and "DESC".equalsIgnoreCase(orderCol.isjianm)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('isLack')">
a.isLack
<if test='orderCol.isLack != null and "DESC".equalsIgnoreCase(orderCol.isLack)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('ybUrl')">
a.ybUrl
<if test='orderCol.ybUrl != null and "DESC".equalsIgnoreCase(orderCol.ybUrl)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('materialSourceSm')">
a.materialSourceSm
<if test='orderCol.materialSourceSm != null and "DESC".equalsIgnoreCase(orderCol.materialSourceSm)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('remarkSub')">
a.remarkSub
<if test='orderCol.remarkSub != null and "DESC".equalsIgnoreCase(orderCol.remarkSub)'>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('clauseContent')">
a.clauseContent
<if test='orderCol.clauseContent != null and "DESC".equalsIgnoreCase(orderCol.clauseContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('summary')">
a.summary
<if test='orderCol.summary != null and "DESC".equalsIgnoreCase(orderCol.summary)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('valid')">
a.valid
<if test='orderCol.valid != null and "DESC".equalsIgnoreCase(orderCol.valid)'>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
<?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.datum.dao.ibatis.DatumFileDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="DatumFileEntity" id="DatumFileEntity-Map">
<result property="id" column="id" />
<result property="tid" column="tid" />
<result property="datumid" column="datumid" />
<result property="fdatumid" column="fdatumid" />
<result property="file" column="file" />
<result property="uploadtime" column="uploadtime" />
<result property="type" column="type" />
<result property="examine" column="examine" />
<result property="summary" column="summary" />
<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('tid') or colPickMode == 1 and data.containsKey('tid')))">
a.tid as tid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('datumid') or colPickMode == 1 and data.containsKey('datumid')))">
a.datumid as datumid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fdatumid') or colPickMode == 1 and data.containsKey('fdatumid')))">
a.fdatumid as fdatumid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('file') or colPickMode == 1 and data.containsKey('file')))">
a.file as file,
</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('examine') or colPickMode == 1 and data.containsKey('examine')))">
a.examine as examine,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('summary') or colPickMode == 1 and data.containsKey('summary')))">
a.summary as summary,
</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="DatumFileEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_datum_file
(tid,datumid,fdatumid,file,uploadtime,type,examine,summary,updateTime,updateUser,createTime,createUser)
VALUES
(#{tid},#{datumid},#{fdatumid},#{file},#{uploadtime},#{type},#{examine},#{summary},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_datum_file
(tid,datumid,fdatumid,file,uploadtime,type,examine,summary,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.tid},#{item.datumid},#{item.fdatumid},#{item.file},#{item.uploadtime},#{item.type},#{item.examine},#{item.summary},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_datum_file as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('tid')) or (colPickMode==1 and !data.containsKey('tid'))">
a.tid=#{data.tid},
</if>
<if test="(colPickMode==0 and data.containsKey('tidIncrement')) or (colPickMode==1 and !data.containsKey('tidIncrement'))">
a.tid=ifnull(a.tid,0) + #{data.tidIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('datumid')) or (colPickMode==1 and !data.containsKey('datumid'))">
a.datumid=#{data.datumid},
</if>
<if test="(colPickMode==0 and data.containsKey('datumidIncrement')) or (colPickMode==1 and !data.containsKey('datumidIncrement'))">
a.datumid=ifnull(a.datumid,0) + #{data.datumidIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('fdatumid')) or (colPickMode==1 and !data.containsKey('fdatumid'))">
a.fdatumid=#{data.fdatumid},
</if>
<if test="(colPickMode==0 and data.containsKey('fdatumidIncrement')) or (colPickMode==1 and !data.containsKey('fdatumidIncrement'))">
a.fdatumid=ifnull(a.fdatumid,0) + #{data.fdatumidIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('file')) or (colPickMode==1 and !data.containsKey('file'))">
a.file=#{data.file},
</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('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('examine')) or (colPickMode==1 and !data.containsKey('examine'))">
a.examine=#{data.examine},
</if>
<if test="(colPickMode==0 and data.containsKey('examineIncrement')) or (colPickMode==1 and !data.containsKey('examineIncrement'))">
a.examine=ifnull(a.examine,0) + #{data.examineIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('summary')) or (colPickMode==1 and !data.containsKey('summary'))">
a.summary=#{data.summary},
</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_one_datum_file as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="tid=(case" suffix="ELSE tid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('tid')) or (colPickMode==1 and !item.containsKey('tid'))">
when a.id=#{item.id} then #{item.tid}
</when>
<when test="(colPickMode==0 and item.containsKey('tidIncrement')) or (colPickMode==1 and !item.containsKey('tidIncrement'))">
when a.id=#{item.id} then ifnull(a.tid,0) + #{item.tidIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="datumid=(case" suffix="ELSE datumid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('datumid')) or (colPickMode==1 and !item.containsKey('datumid'))">
when a.id=#{item.id} then #{item.datumid}
</when>
<when test="(colPickMode==0 and item.containsKey('datumidIncrement')) or (colPickMode==1 and !item.containsKey('datumidIncrement'))">
when a.id=#{item.id} then ifnull(a.datumid,0) + #{item.datumidIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="fdatumid=(case" suffix="ELSE fdatumid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('fdatumid')) or (colPickMode==1 and !item.containsKey('fdatumid'))">
when a.id=#{item.id} then #{item.fdatumid}
</when>
<when test="(colPickMode==0 and item.containsKey('fdatumidIncrement')) or (colPickMode==1 and !item.containsKey('fdatumidIncrement'))">
when a.id=#{item.id} then ifnull(a.fdatumid,0) + #{item.fdatumidIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="file=(case" suffix="ELSE file end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('file')) or (colPickMode==1 and !item.containsKey('file'))">
when a.id=#{item.id} then #{item.file}
</if>
</foreach>
</trim>
<trim prefix="uploadtime=(case" suffix="ELSE uploadtime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('uploadtime')) or (colPickMode==1 and !item.containsKey('uploadtime'))">
when a.id=#{item.id} then #{item.uploadtime}
</if>
</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="examine=(case" suffix="ELSE examine end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('examine')) or (colPickMode==1 and !item.containsKey('examine'))">
when a.id=#{item.id} then #{item.examine}
</when>
<when test="(colPickMode==0 and item.containsKey('examineIncrement')) or (colPickMode==1 and !item.containsKey('examineIncrement'))">
when a.id=#{item.id} then ifnull(a.examine,0) + #{item.examineIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="summary=(case" suffix="ELSE summary end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('summary')) or (colPickMode==1 and !item.containsKey('summary'))">
when a.id=#{item.id} then #{item.summary}
</if>
</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="DatumFileEntity-Map">
select <include refid="_columns"/>
from mortals_one_datum_file as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_datum_file as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_datum_file 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_one_datum_file as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="DatumFileEntity-Map">
select <include refid="_columns"/>
from mortals_one_datum_file 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_one_datum_file 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('tid')">
<if test="conditionParamRef.tid != null ">
${_conditionType_} a.tid = #{${_conditionParam_}.tid}
</if>
<if test="conditionParamRef.tid == null">
${_conditionType_} a.tid is null
</if>
</if>
<if test="conditionParamRef.containsKey('tidList')">
${_conditionType_} a.tid in
<foreach collection="conditionParamRef.tidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('tidStart') and conditionParamRef.tidStart != null">
${_conditionType_} a.tid <![CDATA[ >= ]]> #{${_conditionParam_}.tidStart}
</if>
<if test="conditionParamRef.containsKey('tidEnd') and conditionParamRef.tidEnd != null">
${_conditionType_} a.tid <![CDATA[ <= ]]> #{${_conditionParam_}.tidEnd}
</if>
<if test="conditionParamRef.containsKey('datumid')">
<if test="conditionParamRef.datumid != null ">
${_conditionType_} a.datumid = #{${_conditionParam_}.datumid}
</if>
<if test="conditionParamRef.datumid == null">
${_conditionType_} a.datumid is null
</if>
</if>
<if test="conditionParamRef.containsKey('datumidList')">
${_conditionType_} a.datumid in
<foreach collection="conditionParamRef.datumidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('datumidStart') and conditionParamRef.datumidStart != null">
${_conditionType_} a.datumid <![CDATA[ >= ]]> #{${_conditionParam_}.datumidStart}
</if>
<if test="conditionParamRef.containsKey('datumidEnd') and conditionParamRef.datumidEnd != null">
${_conditionType_} a.datumid <![CDATA[ <= ]]> #{${_conditionParam_}.datumidEnd}
</if>
<if test="conditionParamRef.containsKey('fdatumid')">
<if test="conditionParamRef.fdatumid != null ">
${_conditionType_} a.fdatumid = #{${_conditionParam_}.fdatumid}
</if>
<if test="conditionParamRef.fdatumid == null">
${_conditionType_} a.fdatumid is null
</if>
</if>
<if test="conditionParamRef.containsKey('fdatumidList')">
${_conditionType_} a.fdatumid in
<foreach collection="conditionParamRef.fdatumidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fdatumidStart') and conditionParamRef.fdatumidStart != null">
${_conditionType_} a.fdatumid <![CDATA[ >= ]]> #{${_conditionParam_}.fdatumidStart}
</if>
<if test="conditionParamRef.containsKey('fdatumidEnd') and conditionParamRef.fdatumidEnd != null">
${_conditionType_} a.fdatumid <![CDATA[ <= ]]> #{${_conditionParam_}.fdatumidEnd}
</if>
<if test="conditionParamRef.containsKey('file')">
<if test="conditionParamRef.file != null and conditionParamRef.file != ''">
${_conditionType_} a.file like #{${_conditionParam_}.file}
</if>
<if test="conditionParamRef.file == null">
${_conditionType_} a.file is null
</if>
</if>
<if test="conditionParamRef.containsKey('fileList')">
${_conditionType_} a.file in
<foreach collection="conditionParamRef.fileList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('uploadtimeStart') and conditionParamRef.uploadtimeStart != null and conditionParamRef.uploadtimeStart!=''">
${_conditionType_} a.uploadtime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.uploadtimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('uploadtimeEnd') and conditionParamRef.uploadtimeEnd != null and conditionParamRef.uploadtimeEnd!=''">
${_conditionType_} a.uploadtime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.uploadtimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</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('examine')">
<if test="conditionParamRef.examine != null ">
${_conditionType_} a.examine = #{${_conditionParam_}.examine}
</if>
<if test="conditionParamRef.examine == null">
${_conditionType_} a.examine is null
</if>
</if>
<if test="conditionParamRef.containsKey('examineList')">
${_conditionType_} a.examine in
<foreach collection="conditionParamRef.examineList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('examineStart') and conditionParamRef.examineStart != null">
${_conditionType_} a.examine <![CDATA[ >= ]]> #{${_conditionParam_}.examineStart}
</if>
<if test="conditionParamRef.containsKey('examineEnd') and conditionParamRef.examineEnd != null">
${_conditionType_} a.examine <![CDATA[ <= ]]> #{${_conditionParam_}.examineEnd}
</if>
<if test="conditionParamRef.containsKey('summary')">
<if test="conditionParamRef.summary != null and conditionParamRef.summary != ''">
${_conditionType_} a.summary like #{${_conditionParam_}.summary}
</if>
<if test="conditionParamRef.summary == null">
${_conditionType_} a.summary is null
</if>
</if>
<if test="conditionParamRef.containsKey('summaryList')">
${_conditionType_} a.summary in
<foreach collection="conditionParamRef.summaryList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</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('tid')">
a.tid
<if test='orderCol.tid != null and "DESC".equalsIgnoreCase(orderCol.tid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('datumid')">
a.datumid
<if test='orderCol.datumid != null and "DESC".equalsIgnoreCase(orderCol.datumid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('fdatumid')">
a.fdatumid
<if test='orderCol.fdatumid != null and "DESC".equalsIgnoreCase(orderCol.fdatumid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('file')">
a.file
<if test='orderCol.file != null and "DESC".equalsIgnoreCase(orderCol.file)'>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('examine')">
a.examine
<if test='orderCol.examine != null and "DESC".equalsIgnoreCase(orderCol.examine)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('summary')">
a.summary
<if test='orderCol.summary != null and "DESC".equalsIgnoreCase(orderCol.summary)'>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
<?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.flowlimit.dao.ibatis.FlowlimitDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="FlowlimitEntity" id="FlowlimitEntity-Map">
<result property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="basicsId" column="basicsId" />
<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('title') or colPickMode == 1 and data.containsKey('title')))">
a.title as title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content as content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('basicsId') or colPickMode == 1 and data.containsKey('basicsId')))">
a.basicsId as basicsId,
</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="FlowlimitEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_one_flowlimit
(title,content,basicsId,updateTime,updateUser,createTime,createUser)
VALUES
(#{title},#{content},#{basicsId},#{updateTime},#{updateUser},#{createTime},#{createUser})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_one_flowlimit
(title,content,basicsId,updateTime,updateUser,createTime,createUser)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.title},#{item.content},#{item.basicsId},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_one_flowlimit as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsId')) or (colPickMode==1 and !data.containsKey('basicsId'))">
a.basicsId=#{data.basicsId},
</if>
<if test="(colPickMode==0 and data.containsKey('basicsIdIncrement')) or (colPickMode==1 and !data.containsKey('basicsIdIncrement'))">
a.basicsId=ifnull(a.basicsId,0) + #{data.basicsIdIncrement},
</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_one_flowlimit as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="basicsId=(case" suffix="ELSE basicsId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('basicsId')) or (colPickMode==1 and !item.containsKey('basicsId'))">
when a.id=#{item.id} then #{item.basicsId}
</when>
<when test="(colPickMode==0 and item.containsKey('basicsIdIncrement')) or (colPickMode==1 and !item.containsKey('basicsIdIncrement'))">
when a.id=#{item.id} then ifnull(a.basicsId,0) + #{item.basicsIdIncrement}
</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="FlowlimitEntity-Map">
select <include refid="_columns"/>
from mortals_one_flowlimit as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_one_flowlimit as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_one_flowlimit 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_one_flowlimit as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="FlowlimitEntity-Map">
select <include refid="_columns"/>
from mortals_one_flowlimit 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_one_flowlimit 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('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsId')">
<if test="conditionParamRef.basicsId != null ">
${_conditionType_} a.basicsId = #{${_conditionParam_}.basicsId}
</if>
<if test="conditionParamRef.basicsId == null">
${_conditionType_} a.basicsId is null
</if>
</if>
<if test="conditionParamRef.containsKey('basicsIdList')">
${_conditionType_} a.basicsId in
<foreach collection="conditionParamRef.basicsIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('basicsIdStart') and conditionParamRef.basicsIdStart != null">
${_conditionType_} a.basicsId <![CDATA[ >= ]]> #{${_conditionParam_}.basicsIdStart}
</if>
<if test="conditionParamRef.containsKey('basicsIdEnd') and conditionParamRef.basicsIdEnd != null">
${_conditionType_} a.basicsId <![CDATA[ <= ]]> #{${_conditionParam_}.basicsIdEnd}
</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('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('basicsId')">
a.basicsId
<if test='orderCol.basicsId != null and "DESC".equalsIgnoreCase(orderCol.basicsId)'>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
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