Commit 5f8623d5 authored by 赵啸非's avatar 赵啸非

添加水印图片

parent e4a5e8a6
...@@ -81,4 +81,9 @@ ALTER TABLE mortals_xhx_certificate_catalog ...@@ -81,4 +81,9 @@ ALTER TABLE mortals_xhx_certificate_catalog
ALTER TABLE mortals_xhx_certificate_child ALTER TABLE mortals_xhx_certificate_child
ADD COLUMN `catalogName` varchar(64) DEFAULT NULL COMMENT '目录名称', ADD COLUMN `catalogName` varchar(64) DEFAULT NULL COMMENT '目录名称',
ADD COLUMN `documentName` varchar(64) DEFAULT NULL COMMENT '子证名称' ADD COLUMN `documentName` varchar(64) DEFAULT NULL COMMENT '子证名称'
AFTER catalogId ; AFTER catalogId ;
\ No newline at end of file
ALTER TABLE `mortals_xhx_apply_log`
ADD COLUMN `watermarkUrl` varchar(255) DEFAULT '' COMMENT '水印图片地址'
AFTER annexUrl ;
\ No newline at end of file
...@@ -56,7 +56,7 @@ public class UploadController extends BaseController { ...@@ -56,7 +56,7 @@ public class UploadController extends BaseController {
@RequestMapping(value = "commonupload") @RequestMapping(value = "commonupload")
@UnAuth @UnAuth
public String doFileUpload(MultipartFile file, @RequestParam(value = "prePath",defaultValue = "file/fileupload") String prePath) { public String doFileUpload(MultipartFile file, @RequestParam(value = "prePath",defaultValue = "/file/fileupload") String prePath) {
Map<String, Object> model = new HashMap<>(); Map<String, Object> model = new HashMap<>();
String jsonStr = ""; String jsonStr = "";
try { try {
......
...@@ -29,6 +29,7 @@ public final class Constant { ...@@ -29,6 +29,7 @@ public final class Constant {
public final static String Param_jianmMs = "jianmMs"; public final static String Param_jianmMs = "jianmMs";
public final static String Param_sealWay = "sealWay"; public final static String Param_sealWay = "sealWay";
public final static String Param_typeOptions = "typeOptions"; public final static String Param_typeOptions = "typeOptions";
public final static String Param_waterMark = "waterMark";
/** 登录用户类型为客户 */ /** 登录用户类型为客户 */
public final static int CUSTOMER_USER = 99; public final static int CUSTOMER_USER = 99;
......
package com.mortals.xhx.common.utils;
import com.mortals.xhx.module.record.web.ApplyLogController;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class WatermarkImgUtils {
/**
* @description
* @param sourceImgPath 源图片路径
* @param tarImgPath 保存的图片路径
* @param waterMarkContent 水印内容
* @param fileExt 图片格式
* @return void
*/
public static void addWatermark(String sourceImgPath, String tarImgPath, String waterMarkContent,String fileExt){
Font font = new Font("宋体", Font.BOLD, 36);//水印字体,大小
Color markContentColor = Color.red;//水印颜色
Integer degree = 45;//设置水印文字的旋转角度
float alpha = 0.5f;//设置水印透明度
OutputStream outImgStream = null;
try {
File srcImgFile = new File(sourceImgPath);//得到文件
Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片
int srcImgWidth = srcImg.getWidth(null);//获取图片的宽
int srcImgHeight = srcImg.getHeight(null);//获取图片的高
// 加水印
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufImg.createGraphics();//得到画笔
g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
g.setColor(markContentColor); //设置水印颜色
g.setFont(font); //设置字体
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));//设置水印文字透明度
if (null != degree) {
g.rotate(Math.toRadians(degree));//设置水印旋转
}
JLabel label = new JLabel(waterMarkContent);
FontMetrics metrics = label.getFontMetrics(font);
int width = metrics.stringWidth(label.getText());//文字水印的宽
int rowsNumber = srcImgHeight/width;// 图片的高 除以 文字水印的宽 ——> 打印的行数(以文字水印的宽为间隔)
int columnsNumber = srcImgWidth/width;//图片的宽 除以 文字水印的宽 ——> 每行打印的列数(以文字水印的宽为间隔)
//防止图片太小而文字水印太长,所以至少打印一次
if(rowsNumber < 1){
rowsNumber = 1;
}
if(columnsNumber < 1){
columnsNumber = 1;
}
for(int j=0;j<rowsNumber;j++){
for(int i=0;i<columnsNumber;i++){
g.drawString(waterMarkContent, i*width + j*width, -i*width + j*width);//画出水印,并设置水印位置
}
}
g.dispose();// 释放资源
// 输出图片
outImgStream = new FileOutputStream(tarImgPath);
ImageIO.write(bufImg, fileExt, outImgStream);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally{
try {
if(outImgStream != null){
outImgStream.flush();
outImgStream.close();
}
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
}
}
}
public static void main(String[] args) {
WatermarkImgUtils.addWatermark("E:\\pic\\back.jpg", "E:\\pic\\back_water1.jpg", "你好,世界!", "jpg");
}
}
...@@ -90,7 +90,7 @@ public class CertificateIndustryController extends BaseCRUDJsonBodyMappingContro ...@@ -90,7 +90,7 @@ public class CertificateIndustryController extends BaseCRUDJsonBodyMappingContro
return ret; return ret;
} }
private static List<CertificateIndustryEntity> getChildren(CertificateIndustryEntity root, List<CertificateIndustryEntity> all) { private List<CertificateIndustryEntity> getChildren(CertificateIndustryEntity root, List<CertificateIndustryEntity> all) {
List<CertificateIndustryEntity> children = all.stream().filter(t -> { List<CertificateIndustryEntity> children = all.stream().filter(t -> {
return Objects.equals(t.getParentId(), root.getId()); return Objects.equals(t.getParentId(), root.getId());
}).map( }).map(
......
...@@ -14,7 +14,7 @@ import lombok.Data; ...@@ -14,7 +14,7 @@ import lombok.Data;
* 证照申请实体对象 * 证照申请实体对象
* *
* @author zxfei * @author zxfei
* @date 2024-07-31 * @date 2024-08-08
*/ */
@Data @Data
public class ApplyLogEntity extends ApplyLogVo { public class ApplyLogEntity extends ApplyLogVo {
...@@ -160,6 +160,10 @@ public class ApplyLogEntity extends ApplyLogVo { ...@@ -160,6 +160,10 @@ public class ApplyLogEntity extends ApplyLogVo {
* 附件地址 * 附件地址
*/ */
private String annexUrl; private String annexUrl;
/**
* 水印图片地址
*/
private String watermarkUrl;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -212,5 +216,6 @@ public class ApplyLogEntity extends ApplyLogVo { ...@@ -212,5 +216,6 @@ public class ApplyLogEntity extends ApplyLogVo {
this.authority = ""; this.authority = "";
this.annexName = ""; this.annexName = "";
this.annexUrl = ""; this.annexUrl = "";
this.watermarkUrl = "";
} }
} }
\ No newline at end of file
...@@ -7,7 +7,7 @@ import com.mortals.xhx.module.record.model.ApplyLogEntity; ...@@ -7,7 +7,7 @@ import com.mortals.xhx.module.record.model.ApplyLogEntity;
* 证照申请查询对象 * 证照申请查询对象
* *
* @author zxfei * @author zxfei
* @date 2024-07-31 * @date 2024-08-08
*/ */
public class ApplyLogQuery extends ApplyLogEntity { public class ApplyLogQuery extends ApplyLogEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
...@@ -325,6 +325,11 @@ public class ApplyLogQuery extends ApplyLogEntity { ...@@ -325,6 +325,11 @@ public class ApplyLogQuery extends ApplyLogEntity {
/** 附件地址排除列表 */ /** 附件地址排除列表 */
private List <String> annexUrlNotList; private List <String> annexUrlNotList;
/** 水印图片地址 */
private List<String> watermarkUrlList;
/** 水印图片地址排除列表 */
private List <String> watermarkUrlNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<ApplyLogQuery> orConditionList; private List<ApplyLogQuery> orConditionList;
...@@ -2152,6 +2157,38 @@ public class ApplyLogQuery extends ApplyLogEntity { ...@@ -2152,6 +2157,38 @@ public class ApplyLogQuery extends ApplyLogEntity {
this.annexUrlNotList = annexUrlNotList; this.annexUrlNotList = annexUrlNotList;
} }
/**
* 获取 水印图片地址
* @return watermarkUrlList
*/
public List<String> getWatermarkUrlList(){
return this.watermarkUrlList;
}
/**
* 设置 水印图片地址
* @param watermarkUrlList
*/
public void setWatermarkUrlList(List<String> watermarkUrlList){
this.watermarkUrlList = watermarkUrlList;
}
/**
* 获取 水印图片地址
* @return watermarkUrlNotList
*/
public List<String> getWatermarkUrlNotList(){
return this.watermarkUrlNotList;
}
/**
* 设置 水印图片地址
* @param watermarkUrlNotList
*/
public void setWatermarkUrlNotList(List<String> watermarkUrlNotList){
this.watermarkUrlNotList = watermarkUrlNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -3207,6 +3244,25 @@ public class ApplyLogQuery extends ApplyLogEntity { ...@@ -3207,6 +3244,25 @@ public class ApplyLogQuery extends ApplyLogEntity {
return this; return this;
} }
/**
* 设置 水印图片地址
* @param watermarkUrl
*/
public ApplyLogQuery watermarkUrl(String watermarkUrl){
setWatermarkUrl(watermarkUrl);
return this;
}
/**
* 设置 水印图片地址
* @param watermarkUrlList
*/
public ApplyLogQuery watermarkUrlList(List<String> watermarkUrlList){
this.watermarkUrlList = watermarkUrlList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
...@@ -16,12 +16,14 @@ import com.deepoove.poi.plugin.table.MultipleRowTableRenderPolicy; ...@@ -16,12 +16,14 @@ import com.deepoove.poi.plugin.table.MultipleRowTableRenderPolicy;
import com.deepoove.poi.util.RegexUtils; import com.deepoove.poi.util.RegexUtils;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.util.DateUtils; import com.mortals.framework.util.DateUtils;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.base.system.user.model.UserEntity; import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.service.UserService; import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.*; import com.mortals.xhx.common.code.*;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.*; import com.mortals.xhx.common.utils.*;
import com.mortals.xhx.module.certificate.model.*; import com.mortals.xhx.module.certificate.model.*;
import com.mortals.xhx.module.certificate.model.vo.CertificateDocumentPdu; import com.mortals.xhx.module.certificate.model.vo.CertificateDocumentPdu;
...@@ -144,9 +146,9 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap ...@@ -144,9 +146,9 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap
.collect(Collectors.groupingBy(ChildLicenseEntity::getApplyId)); .collect(Collectors.groupingBy(ChildLicenseEntity::getApplyId));
for (ApplyLogEntity entity : list) { for (ApplyLogEntity entity : list) {
List<ChildLicenseEntity> childLicenseList = childLicenseListMap.get(entity.getId()); List<ChildLicenseEntity> childLicenseList = childLicenseListMap.getOrDefault(entity.getId(), new ArrayList<>());
Predicate<ChildLicenseEntity> enablePredicate =item->item.getChildStatus() == StatusEnum.ENABLE.getValue(); Predicate<ChildLicenseEntity> enablePredicate = item -> item.getChildStatus() == StatusEnum.ENABLE.getValue();
Predicate<ChildLicenseEntity> processPredicate =item->item.getChildStatus() == StatusEnum.ENABLE.getValue()&&item.getProcessStatus() == ProcessStatusEnum.已处理.getValue(); Predicate<ChildLicenseEntity> processPredicate = item -> item.getChildStatus() == StatusEnum.ENABLE.getValue() && item.getProcessStatus() == ProcessStatusEnum.已处理.getValue();
long childSum = childLicenseList.parallelStream().filter(enablePredicate).count(); long childSum = childLicenseList.parallelStream().filter(enablePredicate).count();
long pCount = childLicenseList.parallelStream().filter(processPredicate).count(); long pCount = childLicenseList.parallelStream().filter(processPredicate).count();
List<CertificateDocumentPdu> documentEntityList = childLicenseList.stream().map(item -> { List<CertificateDocumentPdu> documentEntityList = childLicenseList.stream().map(item -> {
...@@ -156,28 +158,8 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap ...@@ -156,28 +158,8 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap
pdu.setDocumentName(item.getDocumentName()); pdu.setDocumentName(item.getDocumentName());
return pdu; return pdu;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
/* int childSum = 0;
int pCount = 0;
List<CertificateDocumentPdu> documentEntityList = new ArrayList<>();
for (ChildLicenseEntity item : childLicenseList) {
CertificateDocumentEntity documentEntity = new CertificateDocumentEntity();
BeanUtils.copyProperties(item, documentEntity);
documentEntity.setId(item.getDocumentId());
documentEntity.setStatus(StatusEnum.DISABLE.getValue());
if (item.getChildStatus() == StatusEnum.ENABLE.getValue()) {
documentEntity.setStatus(StatusEnum.ENABLE.getValue());
childSum++;
if (item.getProcessStatus() == ProcessStatusEnum.已处理.getValue().intValue()) {
pCount++;
}
}
CertificateDocumentPdu pdu = new CertificateDocumentPdu();
BeanUtils.copyProperties(documentEntity, pdu);
documentEntityList.add(pdu);
}*/
entity.setProcessStatus(pCount + "/" + childSum); entity.setProcessStatus(pCount + "/" + childSum);
entity.setChildCertificate(documentEntityList); entity.setChildCertificate(documentEntityList);
} }
} }
...@@ -425,6 +407,24 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap ...@@ -425,6 +407,24 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap
recordDao.insert(recordEntity); recordDao.insert(recordEntity);
applyLogEntity.setRecordId(recordEntity.getId()); applyLogEntity.setRecordId(recordEntity.getId());
} }
//生成水印图片
String WarterMark = GlobalSysInfo.getParamValue(Constant.Param_waterMark, "");
if (!ObjectUtils.isEmpty(WarterMark)) {
//生成水印图片
String annexUrl = applyLogEntity.getAnnexUrl();
String annexUrlAllPath = uploadService.getFilePath(annexUrl);
String targetPath = "/file/fileupload/" + new Date().getTime() + "_watermark.jpg";
String targetAllPath = uploadService.getFilePath(targetPath);
if (FileUtil.exist(annexUrlAllPath)) {
WatermarkImgUtils.addWatermark(annexUrlAllPath,
targetAllPath,
WarterMark, "jpg");
}
applyLogEntity.setWatermarkUrl(targetPath);
}
dao.insert(applyLogEntity); dao.insert(applyLogEntity);
if (is_record) { if (is_record) {
ApplyLogEntity updata = new ApplyLogEntity(); ApplyLogEntity updata = new ApplyLogEntity();
...@@ -439,6 +439,8 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap ...@@ -439,6 +439,8 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap
//插入子证联报 //插入子证联报
childLicenseService.createChildLicense(applyLogEntity, oldId, context); childLicenseService.createChildLicense(applyLogEntity, oldId, context);
printWaitQueueService.creatWaitQueueByApply(applyLogEntity, GenerateStatus.ORIGINAL.getValue(), context); printWaitQueueService.creatWaitQueueByApply(applyLogEntity, GenerateStatus.ORIGINAL.getValue(), context);
} }
private String preview(DocTemplateVO docTemplate, Context context, boolean hasPDF) { private String preview(DocTemplateVO docTemplate, Context context, boolean hasPDF) {
......
package com.mortals.xhx.module.record.web; package com.mortals.xhx.module.record.web;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.IBaseEnum; import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
...@@ -27,15 +29,25 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -27,15 +29,25 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.record.model.ApplyLogEntity; import com.mortals.xhx.module.record.model.ApplyLogEntity;
import com.mortals.xhx.module.record.service.ApplyLogService; import com.mortals.xhx.module.record.service.ApplyLogService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*; import java.util.*;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -252,4 +264,20 @@ public class ApplyLogController extends BaseCRUDJsonBodyMappingController<ApplyL ...@@ -252,4 +264,20 @@ public class ApplyLogController extends BaseCRUDJsonBodyMappingController<ApplyL
return ret.toJSONString(); return ret.toJSONString();
} }
public static void main(String[] args) {
ImgUtil.pressText(//
FileUtil.file("E:\\pic\\back.jpg"), //
FileUtil.file("E:\\pic\\back_water.jpg"), //
"南方者@版权所有", Color.RED, //文字
new Font("宋体", Font.BOLD, 100), //字体
0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
0, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
0.5f//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
);
}
} }
\ No newline at end of file
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<result property="authority" column="authority" /> <result property="authority" column="authority" />
<result property="annexName" column="annexName" /> <result property="annexName" column="annexName" />
<result property="annexUrl" column="annexUrl" /> <result property="annexUrl" column="annexUrl" />
<result property="watermarkUrl" column="watermarkUrl" />
</resultMap> </resultMap>
<!-- 表所有列 --> <!-- 表所有列 -->
...@@ -170,23 +171,26 @@ ...@@ -170,23 +171,26 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('annexUrl') or colPickMode == 1 and data.containsKey('annexUrl')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('annexUrl') or colPickMode == 1 and data.containsKey('annexUrl')))">
a.annexUrl, a.annexUrl,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('watermarkUrl') or colPickMode == 1 and data.containsKey('watermarkUrl')))">
a.watermarkUrl,
</if>
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="ApplyLogEntity" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="ApplyLogEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_apply_log insert into mortals_xhx_apply_log
(siteId,recordId,catalogId,catalogCode,catalogName,certificateCode,certificateName,issueTime,pickerName,pickerIDCardNo,mobile,holderType,holderIdType,holderName,holderIDCardNo,enterpriseName,legalPerson,socialCode,validityStart,validityEnd,privateID,certificateUrl,previewUrl,formContent,formTemplate,generateStatus,operType,recordStatus,qRCode,createUserId,createTime,updateUserId,updateTime,industryName,businessPlace,licenseProject,authority,annexName,annexUrl) (siteId,recordId,catalogId,catalogCode,catalogName,certificateCode,certificateName,issueTime,pickerName,pickerIDCardNo,mobile,holderType,holderIdType,holderName,holderIDCardNo,enterpriseName,legalPerson,socialCode,validityStart,validityEnd,privateID,certificateUrl,previewUrl,formContent,formTemplate,generateStatus,operType,recordStatus,qRCode,createUserId,createTime,updateUserId,updateTime,industryName,businessPlace,licenseProject,authority,annexName,annexUrl,watermarkUrl)
VALUES VALUES
(#{siteId},#{recordId},#{catalogId},#{catalogCode},#{catalogName},#{certificateCode},#{certificateName},#{issueTime},#{pickerName},#{pickerIDCardNo},#{mobile},#{holderType},#{holderIdType},#{holderName},#{holderIDCardNo},#{enterpriseName},#{legalPerson},#{socialCode},#{validityStart},#{validityEnd},#{privateID},#{certificateUrl},#{previewUrl},#{formContent},#{formTemplate},#{generateStatus},#{operType},#{recordStatus},#{qRCode},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{industryName},#{businessPlace},#{licenseProject},#{authority},#{annexName},#{annexUrl}) (#{siteId},#{recordId},#{catalogId},#{catalogCode},#{catalogName},#{certificateCode},#{certificateName},#{issueTime},#{pickerName},#{pickerIDCardNo},#{mobile},#{holderType},#{holderIdType},#{holderName},#{holderIDCardNo},#{enterpriseName},#{legalPerson},#{socialCode},#{validityStart},#{validityEnd},#{privateID},#{certificateUrl},#{previewUrl},#{formContent},#{formTemplate},#{generateStatus},#{operType},#{recordStatus},#{qRCode},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{industryName},#{businessPlace},#{licenseProject},#{authority},#{annexName},#{annexUrl},#{watermarkUrl})
</insert> </insert>
<!-- 批量新增 --> <!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto"> <insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_apply_log insert into mortals_xhx_apply_log
(siteId,recordId,catalogId,catalogCode,catalogName,certificateCode,certificateName,issueTime,pickerName,pickerIDCardNo,mobile,holderType,holderIdType,holderName,holderIDCardNo,enterpriseName,legalPerson,socialCode,validityStart,validityEnd,privateID,certificateUrl,previewUrl,formContent,formTemplate,generateStatus,operType,recordStatus,qRCode,createUserId,createTime,updateUserId,updateTime,industryName,businessPlace,licenseProject,authority,annexName,annexUrl) (siteId,recordId,catalogId,catalogCode,catalogName,certificateCode,certificateName,issueTime,pickerName,pickerIDCardNo,mobile,holderType,holderIdType,holderName,holderIDCardNo,enterpriseName,legalPerson,socialCode,validityStart,validityEnd,privateID,certificateUrl,previewUrl,formContent,formTemplate,generateStatus,operType,recordStatus,qRCode,createUserId,createTime,updateUserId,updateTime,industryName,businessPlace,licenseProject,authority,annexName,annexUrl,watermarkUrl)
VALUES VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," > <foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.siteId},#{item.recordId},#{item.catalogId},#{item.catalogCode},#{item.catalogName},#{item.certificateCode},#{item.certificateName},#{item.issueTime},#{item.pickerName},#{item.pickerIDCardNo},#{item.mobile},#{item.holderType},#{item.holderIdType},#{item.holderName},#{item.holderIDCardNo},#{item.enterpriseName},#{item.legalPerson},#{item.socialCode},#{item.validityStart},#{item.validityEnd},#{item.privateID},#{item.certificateUrl},#{item.previewUrl},#{item.formContent},#{item.formTemplate},#{item.generateStatus},#{item.operType},#{item.recordStatus},#{item.qRCode},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.industryName},#{item.businessPlace},#{item.licenseProject},#{item.authority},#{item.annexName},#{item.annexUrl}) (#{item.siteId},#{item.recordId},#{item.catalogId},#{item.catalogCode},#{item.catalogName},#{item.certificateCode},#{item.certificateName},#{item.issueTime},#{item.pickerName},#{item.pickerIDCardNo},#{item.mobile},#{item.holderType},#{item.holderIdType},#{item.holderName},#{item.holderIDCardNo},#{item.enterpriseName},#{item.legalPerson},#{item.socialCode},#{item.validityStart},#{item.validityEnd},#{item.privateID},#{item.certificateUrl},#{item.previewUrl},#{item.formContent},#{item.formTemplate},#{item.generateStatus},#{item.operType},#{item.recordStatus},#{item.qRCode},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.industryName},#{item.businessPlace},#{item.licenseProject},#{item.authority},#{item.annexName},#{item.annexUrl},#{item.watermarkUrl})
</foreach> </foreach>
</insert> </insert>
...@@ -343,6 +347,9 @@ ...@@ -343,6 +347,9 @@
<if test="(colPickMode==0 and data.containsKey('annexUrl')) or (colPickMode==1 and !data.containsKey('annexUrl'))"> <if test="(colPickMode==0 and data.containsKey('annexUrl')) or (colPickMode==1 and !data.containsKey('annexUrl'))">
a.annexUrl=#{data.annexUrl}, a.annexUrl=#{data.annexUrl},
</if> </if>
<if test="(colPickMode==0 and data.containsKey('watermarkUrl')) or (colPickMode==1 and !data.containsKey('watermarkUrl'))">
a.watermarkUrl=#{data.watermarkUrl},
</if>
</trim> </trim>
<trim suffixOverrides="where" suffix=""> <trim suffixOverrides="where" suffix="">
where where
...@@ -678,6 +685,13 @@ ...@@ -678,6 +685,13 @@
</if> </if>
</foreach> </foreach>
</trim> </trim>
<trim prefix="watermarkUrl=(case" suffix="ELSE watermarkUrl end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('watermarkUrl')) or (colPickMode==1 and !item.containsKey('watermarkUrl'))">
when a.id=#{item.id} then #{item.watermarkUrl}
</if>
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
...@@ -1674,6 +1688,27 @@ ...@@ -1674,6 +1688,27 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="conditionParamRef.containsKey('watermarkUrl')">
<if test="conditionParamRef.watermarkUrl != null and conditionParamRef.watermarkUrl != ''">
${_conditionType_} a.watermarkUrl like #{${_conditionParam_}.watermarkUrl}
</if>
<if test="conditionParamRef.watermarkUrl == null">
${_conditionType_} a.watermarkUrl is null
</if>
</if>
<if test="conditionParamRef.containsKey('watermarkUrlList') and conditionParamRef.watermarkUrlList.size() > 0">
${_conditionType_} a.watermarkUrl in
<foreach collection="conditionParamRef.watermarkUrlList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('watermarkUrlNotList') and conditionParamRef.watermarkUrlNotList.size() > 0">
${_conditionType_} a.watermarkUrl not in
<foreach collection="conditionParamRef.watermarkUrlNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql> </sql>
<sql id="_orderCols_"> <sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()"> <if test="orderColList != null and !orderColList.isEmpty()">
...@@ -2041,6 +2076,11 @@ ...@@ -2041,6 +2076,11 @@
<if test='orderCol.annexUrl != null and "DESC".equalsIgnoreCase(orderCol.annexUrl)'>DESC</if> <if test='orderCol.annexUrl != null and "DESC".equalsIgnoreCase(orderCol.annexUrl)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('watermarkUrl')">
a.watermarkUrl
<if test='orderCol.watermarkUrl != null and "DESC".equalsIgnoreCase(orderCol.watermarkUrl)'>DESC</if>
,
</if>
</trim> </trim>
</if> </if>
......
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