Commit 2c159d8e authored by 廖旭伟's avatar 廖旭伟

测试bug修改以及小程序二维码功能

parent 5707431f
Pipeline #2974 canceled with stages
...@@ -106,4 +106,72 @@ CREATE TABLE mortals_xhx_app_config( ...@@ -106,4 +106,72 @@ CREATE TABLE mortals_xhx_app_config(
`createUserId` bigint(20) COMMENT '创建用户', `createUserId` bigint(20) COMMENT '创建用户',
`updateTime` datetime COMMENT '修改时间', `updateTime` datetime COMMENT '修改时间',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用';
\ No newline at end of file
-- ----------------------------
-- 2025-06-11
-- ----------------------------
ALTER TABLE `mortals_xhx_datum_info_field`
ADD COLUMN `openId` varchar(64) DEFAULT NULL COMMENT '微信openid',
ADD COLUMN `mobile` varchar(64) DEFAULT NULL COMMENT '手机号码',
ADD COLUMN `datumPrintId` bigint(20) DEFAULT NULL COMMENT '填单打印id',
ADD COLUMN `matterId` bigint(20) DEFAULT NULL COMMENT '事项id',
ADD COLUMN `matterName` varchar(1024) DEFAULT NULL COMMENT '事项名称',
ADD COLUMN `materialId` bigint(20) DEFAULT NULL COMMENT '材料id',
ADD COLUMN `materialName` varchar(1024) DEFAULT NULL COMMENT '材料名称';
CREATE TABLE `mortals_xhx_user_fill_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID,主键,自增长',
`openId` varchar(64) DEFAULT NULL COMMENT '微信openid',
`idCard` varchar(64) DEFAULT NULL COMMENT '身份证号码',
`mobile` varchar(64) DEFAULT NULL COMMENT '手机号码',
`matterId` bigint(20) DEFAULT NULL COMMENT '事项id',
`matterName` varchar(1024) DEFAULT NULL COMMENT '事项名称',
`materialId` bigint(20) DEFAULT NULL COMMENT '材料id',
`materialName` varchar(1024) DEFAULT NULL COMMENT '材料名称',
`preViewPath` varchar(256) DEFAULT NULL COMMENT '预览地址',
`formContent` mediumtext COMMENT '提交的表单',
`docPath` varchar(256) DEFAULT NULL COMMENT '合成doc后地址',
`formValue` text COMMENT '表单值',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) DEFAULT NULL COMMENT '创建人id',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUserId` bigint(20) DEFAULT NULL COMMENT '更新人id',
PRIMARY KEY (`id`),
KEY `id` (`id`) USING BTREE,
KEY `openId` (`openId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户填单记录';
CREATE TABLE `mortals_xhx_search_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID,主键,自增长',
`openId` varchar(64) DEFAULT NULL COMMENT '微信openid',
`idCard` varchar(64) DEFAULT NULL COMMENT '身份证号码',
`mobile` varchar(64) DEFAULT NULL COMMENT '手机号码',
`content` varchar(256) DEFAULT NULL COMMENT '搜索内容',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) DEFAULT NULL COMMENT '创建人id',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUserId` bigint(20) DEFAULT NULL COMMENT '更新人id',
PRIMARY KEY (`id`),
KEY `id` (`id`) USING BTREE,
KEY `openId` (`openId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COMMENT='用户搜索历史记录';
-- ----------------------------
-- 材料填单二维码表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_datum_fill_qrcode`;
CREATE TABLE `mortals_xhx_datum_fill_qrcode` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID,主键,自增长',
`datumId` bigint(20)DEFAULT NULL COMMENT '材料id',
`qrcode` varchar(256) DEFAULT NULL COMMENT '二维码存储地址',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) DEFAULT NULL COMMENT '创建人id',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUserId` bigint(20) DEFAULT NULL COMMENT '更新人id',
PRIMARY KEY (`id`),
KEY `id` (`id`) USING BTREE,
KEY `datumId` (`datumId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='材料填单二维码';
\ No newline at end of file
...@@ -4,6 +4,7 @@ import cn.hutool.http.HttpRequest; ...@@ -4,6 +4,7 @@ import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
......
package com.mortals.xhx.module.datum.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
import java.util.List;
/**
* 材料填单二维码Dao
* 材料填单二维码 DAO接口
*
* @author zxfei
* @date 2025-06-12
*/
public interface DatumFillQrcodeDao extends ICRUDDao<DatumFillQrcodeEntity,Long>{
}
package com.mortals.xhx.module.datum.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.datum.dao.DatumFillQrcodeDao;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 材料填单二维码DaoImpl DAO接口
*
* @author zxfei
* @date 2025-06-12
*/
@Repository("datumFillQrcodeDao")
public class DatumFillQrcodeDaoImpl extends BaseCRUDDaoMybatis<DatumFillQrcodeEntity,Long> implements DatumFillQrcodeDao {
}
package com.mortals.xhx.module.datum.model;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.datum.model.vo.DatumFillQrcodeVo;
import lombok.Data;
/**
* 材料填单二维码实体对象
*
* @author zxfei
* @date 2025-06-12
*/
@Data
public class DatumFillQrcodeEntity extends DatumFillQrcodeVo {
private static final long serialVersionUID = 1L;
/**
* 材料id
*/
private Long datumId;
/**
* 二维码存储地址
*/
private String qrcode;
/**
* 备注
*/
private String remark;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof DatumFillQrcodeEntity) {
DatumFillQrcodeEntity tmp = (DatumFillQrcodeEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.datumId = null;
this.qrcode = "";
this.remark = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.model;
import java.util.List;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
/**
* 材料填单二维码查询对象
*
* @author zxfei
* @date 2025-06-12
*/
public class DatumFillQrcodeQuery extends DatumFillQrcodeEntity {
/** 开始 主键ID,主键,自增长 */
private Long idStart;
/** 结束 主键ID,主键,自增长 */
private Long idEnd;
/** 增加 主键ID,主键,自增长 */
private Long idIncrement;
/** 主键ID,主键,自增长列表 */
private List <Long> idList;
/** 主键ID,主键,自增长排除列表 */
private List <Long> idNotList;
/** 开始 材料id */
private Long datumIdStart;
/** 结束 材料id */
private Long datumIdEnd;
/** 增加 材料id */
private Long datumIdIncrement;
/** 材料id列表 */
private List <Long> datumIdList;
/** 材料id排除列表 */
private List <Long> datumIdNotList;
/** 二维码存储地址 */
private List<String> qrcodeList;
/** 二维码存储地址排除列表 */
private List <String> qrcodeNotList;
/** 备注 */
private List<String> remarkList;
/** 备注排除列表 */
private List <String> remarkNotList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建人id */
private Long createUserIdStart;
/** 结束 创建人id */
private Long createUserIdEnd;
/** 增加 创建人id */
private Long createUserIdIncrement;
/** 创建人id列表 */
private List <Long> createUserIdList;
/** 创建人id排除列表 */
private List <Long> createUserIdNotList;
/** 开始 更新时间 */
private String updateTimeStart;
/** 结束 更新时间 */
private String updateTimeEnd;
/** 开始 更新人id */
private Long updateUserIdStart;
/** 结束 更新人id */
private Long updateUserIdEnd;
/** 增加 更新人id */
private Long updateUserIdIncrement;
/** 更新人id列表 */
private List <Long> updateUserIdList;
/** 更新人id排除列表 */
private List <Long> updateUserIdNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<DatumFillQrcodeQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<DatumFillQrcodeQuery> andConditionList;
public DatumFillQrcodeQuery(){}
/**
* 获取 开始 主键ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 主键ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 主键ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 主键ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 主键ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 主键ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 主键ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 主键ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 主键ID,主键,自增长
* @return idNotList
*/
public List<Long> getIdNotList(){
return this.idNotList;
}
/**
* 设置 主键ID,主键,自增长
* @param idNotList
*/
public void setIdNotList(List<Long> idNotList){
this.idNotList = idNotList;
}
/**
* 获取 开始 材料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
* @return datumIdNotList
*/
public List<Long> getDatumIdNotList(){
return this.datumIdNotList;
}
/**
* 设置 材料id
* @param datumIdNotList
*/
public void setDatumIdNotList(List<Long> datumIdNotList){
this.datumIdNotList = datumIdNotList;
}
/**
* 获取 二维码存储地址
* @return qrcodeList
*/
public List<String> getQrcodeList(){
return this.qrcodeList;
}
/**
* 设置 二维码存储地址
* @param qrcodeList
*/
public void setQrcodeList(List<String> qrcodeList){
this.qrcodeList = qrcodeList;
}
/**
* 获取 二维码存储地址
* @return qrcodeNotList
*/
public List<String> getQrcodeNotList(){
return this.qrcodeNotList;
}
/**
* 设置 二维码存储地址
* @param qrcodeNotList
*/
public void setQrcodeNotList(List<String> qrcodeNotList){
this.qrcodeNotList = qrcodeNotList;
}
/**
* 获取 备注
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 备注
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 备注
* @return remarkNotList
*/
public List<String> getRemarkNotList(){
return this.remarkNotList;
}
/**
* 设置 备注
* @param remarkNotList
*/
public void setRemarkNotList(List<String> remarkNotList){
this.remarkNotList = remarkNotList;
}
/**
* 获取 开始 创建时间
* @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;
}
/**
* 获取 开始 创建人id
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建人id
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建人id
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建人id
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建人id
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建人id
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建人id
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建人id
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建人id
* @return createUserIdNotList
*/
public List<Long> getCreateUserIdNotList(){
return this.createUserIdNotList;
}
/**
* 设置 创建人id
* @param createUserIdNotList
*/
public void setCreateUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
}
/**
* 获取 开始 更新时间
* @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;
}
/**
* 获取 开始 更新人id
* @return updateUserIdStart
*/
public Long getUpdateUserIdStart(){
return this.updateUserIdStart;
}
/**
* 设置 开始 更新人id
* @param updateUserIdStart
*/
public void setUpdateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
}
/**
* 获取 结束 更新人id
* @return $updateUserIdEnd
*/
public Long getUpdateUserIdEnd(){
return this.updateUserIdEnd;
}
/**
* 设置 结束 更新人id
* @param updateUserIdEnd
*/
public void setUpdateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
}
/**
* 获取 增加 更新人id
* @return updateUserIdIncrement
*/
public Long getUpdateUserIdIncrement(){
return this.updateUserIdIncrement;
}
/**
* 设置 增加 更新人id
* @param updateUserIdIncrement
*/
public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
}
/**
* 获取 更新人id
* @return updateUserIdList
*/
public List<Long> getUpdateUserIdList(){
return this.updateUserIdList;
}
/**
* 设置 更新人id
* @param updateUserIdList
*/
public void setUpdateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
}
/**
* 获取 更新人id
* @return updateUserIdNotList
*/
public List<Long> getUpdateUserIdNotList(){
return this.updateUserIdNotList;
}
/**
* 设置 更新人id
* @param updateUserIdNotList
*/
public void setUpdateUserIdNotList(List<Long> updateUserIdNotList){
this.updateUserIdNotList = updateUserIdNotList;
}
/**
* 设置 主键ID,主键,自增长
* @param id
*/
public DatumFillQrcodeQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 主键ID,主键,自增长
* @param idStart
*/
public DatumFillQrcodeQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 主键ID,主键,自增长
* @param idEnd
*/
public DatumFillQrcodeQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 主键ID,主键,自增长
* @param idIncrement
*/
public DatumFillQrcodeQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 主键ID,主键,自增长
* @param idList
*/
public DatumFillQrcodeQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 主键ID,主键,自增长
* @param idNotList
*/
public DatumFillQrcodeQuery idNotList(List<Long> idNotList){
this.idNotList = idNotList;
return this;
}
/**
* 设置 材料id
* @param datumId
*/
public DatumFillQrcodeQuery datumId(Long datumId){
setDatumId(datumId);
return this;
}
/**
* 设置 开始 材料id
* @param datumIdStart
*/
public DatumFillQrcodeQuery datumIdStart(Long datumIdStart){
this.datumIdStart = datumIdStart;
return this;
}
/**
* 设置 结束 材料id
* @param datumIdEnd
*/
public DatumFillQrcodeQuery datumIdEnd(Long datumIdEnd){
this.datumIdEnd = datumIdEnd;
return this;
}
/**
* 设置 增加 材料id
* @param datumIdIncrement
*/
public DatumFillQrcodeQuery datumIdIncrement(Long datumIdIncrement){
this.datumIdIncrement = datumIdIncrement;
return this;
}
/**
* 设置 材料id
* @param datumIdList
*/
public DatumFillQrcodeQuery datumIdList(List<Long> datumIdList){
this.datumIdList = datumIdList;
return this;
}
/**
* 设置 材料id
* @param datumIdNotList
*/
public DatumFillQrcodeQuery datumIdNotList(List<Long> datumIdNotList){
this.datumIdNotList = datumIdNotList;
return this;
}
/**
* 设置 二维码存储地址
* @param qrcode
*/
public DatumFillQrcodeQuery qrcode(String qrcode){
setQrcode(qrcode);
return this;
}
/**
* 设置 二维码存储地址
* @param qrcodeList
*/
public DatumFillQrcodeQuery qrcodeList(List<String> qrcodeList){
this.qrcodeList = qrcodeList;
return this;
}
/**
* 设置 备注
* @param remark
*/
public DatumFillQrcodeQuery remark(String remark){
setRemark(remark);
return this;
}
/**
* 设置 备注
* @param remarkList
*/
public DatumFillQrcodeQuery remarkList(List<String> remarkList){
this.remarkList = remarkList;
return this;
}
/**
* 设置 创建人id
* @param createUserId
*/
public DatumFillQrcodeQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建人id
* @param createUserIdStart
*/
public DatumFillQrcodeQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建人id
* @param createUserIdEnd
*/
public DatumFillQrcodeQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建人id
* @param createUserIdIncrement
*/
public DatumFillQrcodeQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建人id
* @param createUserIdList
*/
public DatumFillQrcodeQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建人id
* @param createUserIdNotList
*/
public DatumFillQrcodeQuery createUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
return this;
}
/**
* 设置 更新人id
* @param updateUserId
*/
public DatumFillQrcodeQuery updateUserId(Long updateUserId){
setUpdateUserId(updateUserId);
return this;
}
/**
* 设置 开始 更新人id
* @param updateUserIdStart
*/
public DatumFillQrcodeQuery updateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
return this;
}
/**
* 设置 结束 更新人id
* @param updateUserIdEnd
*/
public DatumFillQrcodeQuery updateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
return this;
}
/**
* 设置 增加 更新人id
* @param updateUserIdIncrement
*/
public DatumFillQrcodeQuery updateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
return this;
}
/**
* 设置 更新人id
* @param updateUserIdList
*/
public DatumFillQrcodeQuery updateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
return this;
}
/**
* 设置 更新人id
* @param updateUserIdNotList
*/
public DatumFillQrcodeQuery updateUserIdNotList(List<Long> updateUserIdNotList){
this.updateUserIdNotList = updateUserIdNotList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<DatumFillQrcodeQuery> 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<DatumFillQrcodeQuery> 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<DatumFillQrcodeQuery> 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<DatumFillQrcodeQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 材料填单二维码视图对象
*
* @author zxfei
* @date 2025-06-12
*/
@Data
public class DatumFillQrcodeVo extends BaseEntityLong {
/** 主键ID,主键,自增长列表 */
private List <Long> idList;
}
\ 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.DatumFillQrcodeEntity;
import com.mortals.xhx.module.datum.dao.DatumFillQrcodeDao;
/**
* DatumFillQrcodeService
*
* 材料填单二维码 service接口
*
* @author zxfei
* @date 2025-06-12
*/
public interface DatumFillQrcodeService extends ICRUDService<DatumFillQrcodeEntity,Long>{
DatumFillQrcodeDao getDao();
/**
* 生成小程序二维码
* @return
*/
void createQrcode();
}
\ No newline at end of file
package com.mortals.xhx.module.datum.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.common.utils.WXCreateQRCodeUtil;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.service.MatterDatumService;
import lombok.Getter;
import org.springframework.beans.BeanUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.function.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.datum.dao.DatumFillQrcodeDao;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
import com.mortals.xhx.module.datum.service.DatumFillQrcodeService;
import lombok.extern.slf4j.Slf4j;
/**
* DatumFillQrcodeService
* 材料填单二维码 service实现
*
* @author zxfei
* @date 2025-06-12
*/
@Service("datumFillQrcodeService")
@Slf4j
public class DatumFillQrcodeServiceImpl extends AbstractCRUDServiceImpl<DatumFillQrcodeDao, DatumFillQrcodeEntity, Long> implements DatumFillQrcodeService {
@Value("${upload.path}")
@Getter
private String filePath;
@Value("${wx.appId}")
@Getter
private String appId;
@Value("${wx.appSecret}")
@Getter
private String appSecret;
private static String PATH = "/page_td/cailiaoInfo/cailiaoInfo?id=";
@Autowired
private MatterDatumService matterDatumService;
@Override
public void createQrcode() {
List<DatumFillQrcodeEntity> saveList = new ArrayList<>();
List<MatterDatumEntity> allDatum = matterDatumService.getAllList();
String rootPath = this.filePath;
String prePath = "/file/preview/qrcode/";
String allPath = rootPath + prePath;
File pathDir = new File(allPath);
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String newName = RandomUtil.randomNumbers(12) + ".jpg";
String filePathAll = allPath + newName;
for(MatterDatumEntity item:allDatum){
String result = WXCreateQRCodeUtil.createWeiXinQRCode(PATH+item.getId(),appId,appSecret,filePathAll);
log.info("材料id:{},生成二维码地址:{}",item.getId(),result);
if(StringUtils.isNotEmpty(result)) {
DatumFillQrcodeEntity qrcodeEntity = new DatumFillQrcodeEntity();
qrcodeEntity.setDatumId(item.getId());
qrcodeEntity.setQrcode(prePath+newName);
qrcodeEntity.setCreateUserId(1L);
qrcodeEntity.setCreateTime(new Date());
saveList.add(qrcodeEntity);
}
}
this.save(saveList);
}
}
\ No newline at end of file
package com.mortals.xhx.module.datum.web;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.BaseEntity;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.SecurityImage;
import com.mortals.framework.utils.BeanUtil;
import com.mortals.framework.utils.ReflectUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.login.service.GifSecurityImage;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeQuery;
import lombok.Getter;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.datum.model.DatumFillQrcodeEntity;
import com.mortals.xhx.module.datum.service.DatumFillQrcodeService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
import com.mortals.xhx.common.code.*;
/**
*
* 材料填单二维码
*
* @author zxfei
* @date 2025-06-12
*/
@RestController
@RequestMapping("datum/fill/qrcode")
public class DatumFillQrcodeController extends BaseCRUDJsonBodyMappingController<DatumFillQrcodeService,DatumFillQrcodeEntity,Long> {
@Autowired
private ParamService paramService;
@Value("${upload.path}")
@Getter
private String filePath;
public DatumFillQrcodeController(){
super.setModuleDesc( "材料填单二维码");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@PostMapping({"create"})
@UnAuth
public String create() {
int code = 1;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
service.createQrcode();
}
});
thread.start();
JSONObject ret = new JSONObject();
ret.put("code", code);
ret.put("msg", "开始生成小程序二维码");
return ret.toJSONString();
}
@GetMapping("qrcode")
@UnAuth
public void qrcode(HttpServletRequest request, HttpServletResponse response) throws IOException {
String datumIdstr = request.getParameter("datumId");
Long datumId = DataUtil.converStr2Long(datumIdstr,0L);
DatumFillQrcodeQuery query = new DatumFillQrcodeQuery();
query.setDatumId(datumId);
query.setOrderColList(Arrays.asList(new OrderCol("createTime",OrderCol.DESCENDING)));
DatumFillQrcodeEntity entity = service.selectOne(query);
if(entity!=null){
byte[] data = Files.readAllBytes(Paths.get(entity.getQrcode()));
doResponseImage(response, data);
}
}
protected void doResponseImage(HttpServletResponse response, byte[] content) {
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/gif");
IOUtils.write(content, response.getOutputStream());
} catch (Exception e) {
log.error("小程序二维码图片传输异常-->" + e.getMessage());
}
}
}
\ No newline at end of file
...@@ -97,6 +97,7 @@ public class UserFillHistoryServiceImpl extends AbstractCRUDServiceImpl<UserFill ...@@ -97,6 +97,7 @@ public class UserFillHistoryServiceImpl extends AbstractCRUDServiceImpl<UserFill
fieldMap.get(key).setFieldValue(value); fieldMap.get(key).setFieldValue(value);
fieldMap.get(key).setUpdateUserId(1L); fieldMap.get(key).setUpdateUserId(1L);
fieldMap.get(key).setUpdateTime(new Date()); fieldMap.get(key).setUpdateTime(new Date());
fieldMap.get(key).setRemark(jsonObject.toJSONString());
updateList.add(fieldMap.get(key)); updateList.add(fieldMap.get(key));
}else { }else {
DatumInfoFieldEntity newEntity = new DatumInfoFieldEntity(); DatumInfoFieldEntity newEntity = new DatumInfoFieldEntity();
...@@ -110,6 +111,7 @@ public class UserFillHistoryServiceImpl extends AbstractCRUDServiceImpl<UserFill ...@@ -110,6 +111,7 @@ public class UserFillHistoryServiceImpl extends AbstractCRUDServiceImpl<UserFill
//newEntity.setFieldOrderNo(jsonObject.getString("label")); //newEntity.setFieldOrderNo(jsonObject.getString("label"));
newEntity.setFieldType(jsonObject.getString("compType")); newEntity.setFieldType(jsonObject.getString("compType"));
newEntity.setFieldTypeValue(jsonObject.getString("label")); newEntity.setFieldTypeValue(jsonObject.getString("label"));
newEntity.setRemark(jsonObject.toJSONString());
addList.add(newEntity); addList.add(newEntity);
} }
} }
......
<?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.DatumFillQrcodeDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="DatumFillQrcodeEntity" id="DatumFillQrcodeEntity-Map">
<id property="id" column="id" />
<result property="datumId" column="datumId" />
<result property="qrcode" column="qrcode" />
<result property="remark" column="remark" />
<result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" />
<result property="updateTime" column="updateTime" />
<result property="updateUserId" column="updateUserId" />
</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,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('datumId') or colPickMode == 1 and data.containsKey('datumId')))">
a.datumId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('qrcode') or colPickMode == 1 and data.containsKey('qrcode')))">
a.qrcode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))">
a.remark,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
a.updateUserId,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="DatumFillQrcodeEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_datum_fill_qrcode
(datumId,qrcode,remark,createTime,createUserId,updateTime,updateUserId)
VALUES
(#{datumId},#{qrcode},#{remark},#{createTime},#{createUserId},#{updateTime},#{updateUserId})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_datum_fill_qrcode
(datumId,qrcode,remark,createTime,createUserId,updateTime,updateUserId)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.datumId},#{item.qrcode},#{item.remark},#{item.createTime},#{item.createUserId},#{item.updateTime},#{item.updateUserId})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_datum_fill_qrcode as a
set
<trim suffixOverrides="," suffix="">
<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('qrcode')) or (colPickMode==1 and !data.containsKey('qrcode'))">
a.qrcode=#{data.qrcode},
</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('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
</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('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
a.updateUserId=#{data.updateUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_xhx_datum_fill_qrcode as a
<trim prefix="set" suffixOverrides=",">
<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="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="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="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="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</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="updateUserId=(case" suffix="ELSE updateUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
when a.id=#{item.id} then #{item.updateUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
</when>
</choose>
</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="DatumFillQrcodeEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_datum_fill_qrcode as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete from mortals_xhx_datum_fill_qrcode where id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_datum_fill_qrcode where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from mortals_xhx_datum_fill_qrcode where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据对象列表删除一批,针对单一主健有效 -->
<delete id="deleteByEntityList">
delete from mortals_xhx_datum_fill_qrcode where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_datum_fill_qrcode as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="DatumFillQrcodeEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_datum_fill_qrcode as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_xhx_datum_fill_qrcode 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()">
or
<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="permissionSql != null and permissionSql != ''">
${permissionSql}
</if>
<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') and conditionParamRef.idList.size() > 0">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
${_conditionType_} a.id not in
<foreach collection="conditionParamRef.idNotList" 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('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') and conditionParamRef.datumIdList.size() > 0">
${_conditionType_} a.datumId in
<foreach collection="conditionParamRef.datumIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('datumIdNotList') and conditionParamRef.datumIdNotList.size() > 0">
${_conditionType_} a.datumId not in
<foreach collection="conditionParamRef.datumIdNotList" 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('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') and conditionParamRef.qrcodeList.size() > 0">
${_conditionType_} a.qrcode in
<foreach collection="conditionParamRef.qrcodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('qrcodeNotList') and conditionParamRef.qrcodeNotList.size() > 0">
${_conditionType_} a.qrcode not in
<foreach collection="conditionParamRef.qrcodeNotList" 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') and conditionParamRef.remarkList.size() > 0">
${_conditionType_} a.remark in
<foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('remarkNotList') and conditionParamRef.remarkNotList.size() > 0">
${_conditionType_} a.remark not in
<foreach collection="conditionParamRef.remarkNotList" 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('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} a.createUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
${_conditionType_} a.createUserId not in
<foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</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('updateUserId')">
<if test="conditionParamRef.updateUserId != null ">
${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
</if>
<if test="conditionParamRef.updateUserId == null">
${_conditionType_} a.updateUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
${_conditionType_} a.updateUserId in
<foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
${_conditionType_} a.updateUserId not in
<foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
</if>
<if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
field(a.id,
<foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('datumIdList') and conditionParamRef.datumIdList.size() > 0">
field(a.datumId,
<foreach collection="conditionParamRef.datumIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
field(a.createUserId,
<foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
field(a.updateUserId,
<foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
a.${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
field(a.id,
<foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('datumIdList') and conditionParamRef.datumIdList.size() > 0">
field(a.datumId,
<foreach collection="conditionParamRef.datumIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
field(a.createUserId,
<foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
field(a.updateUserId,
<foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<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('datumId')">
a.datumId
<if test='orderCol.datumId != null and "DESC".equalsIgnoreCase(orderCol.datumId)'>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('remark')">
a.remark
<if test='orderCol.remark != null and "DESC".equalsIgnoreCase(orderCol.remark)'>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('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>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('updateUserId')">
a.updateUserId
<if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>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