diff --git a/.gitignore b/.gitignore index 1565f44e..b252f4db 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,6 @@ $RECYCLE.BIN/ /base-buildpackage/target/ /base-common/target/ /base-core/target/ +/base-webapp/target/classes/com/hzya/frame/ +/fw-weixin/target/ +/E:/yongansystem/log/2024-10-15/ diff --git a/base-buildpackage/pom.xml b/base-buildpackage/pom.xml index 41435a19..b91e52ac 100644 --- a/base-buildpackage/pom.xml +++ b/base-buildpackage/pom.xml @@ -38,6 +38,18 @@ <profile.active>llg</profile.active> </properties> </profile> + <profile> + <id>xel</id> <!--xel--> + <properties> + <profile.active>xel</profile.active> + </properties> + </profile> + <profile> + <id>jianhui</id><!-- 建辉环境打包用这个--> + <properties> + <profile.active>jianhui</profile.active> + </properties> + </profile> </profiles> <build> diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/BackUpDatabase/plugin/BackUpDatabaseInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/BackUpDatabase/plugin/BackUpDatabaseInitializer.java new file mode 100644 index 00000000..7a98112a --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/BackUpDatabase/plugin/BackUpDatabaseInitializer.java @@ -0,0 +1,386 @@ +package com.hzya.frame.plugin.BackUpDatabase.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; + +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.SftpATTRS; +import com.jcraft.jsch.SftpException; +import org.apache.commons.net.ftp.FTPClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.nio.file.Files; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Properties; + + +/** + * 主数据模版(MdmModule)表服务接口 + * + * @author makejava + * @since 2024-06-18 10:33:32 + */ +public class BackUpDatabaseInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(BackUpDatabaseInitializer.class); + + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + @Override + public String getPluginId() { + return "BackUpDatabasePlugin"; + } + + @Override + public String getPluginName() { + return "数据库备份下发"; + } + + @Override + public String getPluginLabel() { + return "BackUpDatabasePlugin"; + } + + @Override + public String getPluginType() { + return "1"; + } + + @Value("${database.filePase:}") + private String filePase;//文件保存路径 + + @Value("${database.fileName:data.sql}") + private String fileName;//文件保存名称 + + @Value("${database.databaseName:}") + private String databaseName;//库名 + + @Value("${database.host:}") + private String host;//地址 + + @Value("${database.port:}") + private String port;//端口 + + @Value("${database.username:}") + private String username;//用户名 + + @Value("${database.password:}") + private String password;//密码 + + + @Value("${sftp.host:}") + private String sftpHost; + + @Value("${sftp.port:}") + private Integer sftpPort; + + @Value("${sftp.username:}") + private String sftpUsername; + + @Value("${sftp.password:}") + private String sftpPassword; + + @Value("${sftp.filePase:}") + private String sftpFilePase; + + + private ChannelSftp sftp = null; + private Session sshSession = null; + + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) { + try { + if(filePase == null || "".equals(filePase) + || databaseName == null || "".equals(databaseName) + || fileName == null || "".equals(fileName) + || host == null || "".equals(host) + || port == null || "".equals(port) + || username == null || "".equals(username) + || password == null || "".equals(password) + ){ + return BaseResult.getSuccessMessageEntity("系统参数未配置不执行,数据库备份"); + } + //查找是否存在当天数据库 + //格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String data = sdf.format(new Date()); + //当天路径 + String nowDatabasePase = filePase + File.separator + data; + //不判断文件是否存在,直接执行 + if(!backFile(nowDatabasePase)){ + return BaseResult.getFailureMessageEntity("备份失败"); + } + //判断是否有sftp配置,有的备份,没有的不备份 + if(sftpHost != null && !"".equals(sftpHost) + && sftpPort != null && !"".equals(sftpPort) + && sftpUsername != null && !"".equals(sftpUsername) + && sftpPassword != null && !"".equals(sftpPassword) + && sftpFilePase != null && !"".equals(sftpFilePase) + ){ + String sftpnowDatabasePase = sftpFilePase + File.separator + data; + if(!sendFile(nowDatabasePase,sftpnowDatabasePase)){ + return BaseResult.getFailureMessageEntity("备份失败"); + } + } + logger.info("执行成功"); + return BaseResult.getSuccessMessageEntity("执行成功"); + } catch (Exception e) { + logger.error("执行失败{}", e.getMessage()); + return BaseResult.getFailureMessageEntity("备份失败"); + } + } + + private boolean backFile(String nowDatabasePase) { + try { + // 构建 mysqldump 命令 + ProcessBuilder processBuilder = new ProcessBuilder( + "mysqldump", + "--ssl-mode=DISABLED", + "-h", host, + "-u", username, + "-p" + password, + "-P" + port, + databaseName); + // 启动进程并获取输入流 + Process process = processBuilder.start(); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + File f = creatFile(nowDatabasePase,fileName); + // 将备份内容写入文件 + FileWriter writer = new FileWriter(f); + String line; + while ((line = reader.readLine())!= null) { + writer.write(line + "\n"); + } + // 关闭资源 + reader.close(); + writer.close(); + process.waitFor(); + logger.info("文件备份成功路径:"+nowDatabasePase+ File.separator +fileName); + return true; + } catch (IOException | InterruptedException e) { + logger.info("文件备份失败:"+e.getMessage()); + return false; + } + } + /** + * @Author lvleigang + * @Description 创建目录及文件 + * @Date 8:59 上午 2024/10/22 + * @param filePath + * @param fileName + * @return java.io.File + **/ + public File creatFile(String filePath, String fileName) { + File folder = new File(filePath); + //文件夹路径不存在 + if (!folder.exists()) { + boolean mkdirs = folder.mkdirs(); + } + // 如果文件不存在就创建 + File file = new File(filePath + File.separator + fileName); + if (!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e) { + logger.error("创建备份文件失败:"+e.getMessage()); + } + } + return file; + } + + private boolean sendFile(String localFilePath,String remoteFileName) { + try { + connect(); + uploadFile(remoteFileName,fileName,localFilePath,fileName); + disconnect(); + return true; + } catch (Exception e) { + logger.error("sftp文件上传失败:"+e.getMessage()); + return false; + } + } + + public void connect() { + try { + JSch jsch = new JSch(); + jsch.getSession(sftpUsername, sftpHost, sftpPort); + sshSession = jsch.getSession(sftpUsername, sftpHost, sftpPort); + if (logger.isInfoEnabled()) { + logger.info("Session created."); + } + sshSession.setPassword(sftpPassword); + Properties sshConfig = new Properties(); + sshConfig.put("StrictHostKeyChecking", "no"); + sshSession.setConfig(sshConfig); + sshSession.connect(); + if (logger.isInfoEnabled()) { + logger.info("Session connected."); + } + Channel channel = sshSession.openChannel("sftp"); + channel.connect(); + if (logger.isInfoEnabled()) { + logger.info("Opening Channel."); + } + sftp = (ChannelSftp) channel; + if (logger.isInfoEnabled()) { + logger.info("Connected to " + host + "."); + } + } catch (Exception e) { + } + } + + /** + * 关闭连接 + */ + public void disconnect() { + if (this.sftp != null) { + if (this.sftp.isConnected()) { + this.sftp.disconnect(); + if (logger.isInfoEnabled()) { + logger.info("sftp is closed already"); + } + } + } + if (this.sshSession != null) { + if (this.sshSession.isConnected()) { + this.sshSession.disconnect(); + if (logger.isInfoEnabled()) { + logger.info("sshSession is closed already"); + } + } + } + } + + /** + * 上传单个文件 + * + * @param remotePath:远程保存目录 + * @param remoteFileName:保存文件名 + * @param localPath:本地上传目录(以路径符号结束) + * @param localFileName:上传的文件名 + * @return + */ + public boolean uploadFile(String remotePath, String remoteFileName, String localPath, String localFileName) { + FileInputStream in = null; + try { + createDir(remotePath); + File file = new File(localPath + File.separator + localFileName); + in = new FileInputStream(file); + sftp.put(in, remoteFileName, 65536); + return true; + } catch (FileNotFoundException e) { + } catch (SftpException e) { + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + } + } + } + return false; + } + + /** + * 创建目录 + * + * @param createpath + * @return + */ + public boolean createDir(String createpath) { + try { + if (isDirExist(createpath)) { + this.sftp.cd(createpath); + return true; + } + String pathArry[] = createpath.split("/"); + StringBuffer filePath = new StringBuffer("/"); + for (String path : pathArry) { + if (path.equals("")) { + continue; + } + filePath.append(path + "/"); + if (isDirExist(filePath.toString())) { + sftp.cd(filePath.toString()); + } else { + // 建立目录 + sftp.mkdir(filePath.toString()); + // 进入并设置为当前目录 + sftp.cd(filePath.toString()); + } + + } + this.sftp.cd(createpath); + return true; + } catch (SftpException e) { + } + return false; + } + + /** + * 判断目录是否存在 + * + * @param directory + * @return + */ + public boolean isDirExist(String directory) { + boolean isDirExistFlag = false; + try { + SftpATTRS sftpATTRS = sftp.lstat(directory); + isDirExistFlag = true; + return sftpATTRS.isDir(); + } catch (Exception e) { + if (e.getMessage().toLowerCase().equals("no such file")) { + isDirExistFlag = false; + } + } + return isDirExistFlag; + } + + + + /** + * 如果目录不存在就创建目录 + * + * @param path + */ + public void mkdirs(String path) { + File f = new File(path); + + String fs = f.getParent(); + + f = new File(fs); + + if (!f.exists()) { + f.mkdirs(); + } + } + + + + + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/mdmDistribute/plugin/MdmModulePluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/mdmDistribute/plugin/MdmModulePluginInitializer.java index ebff9dc2..beb4c48e 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/mdmDistribute/plugin/MdmModulePluginInitializer.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/mdmDistribute/plugin/MdmModulePluginInitializer.java @@ -452,6 +452,7 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { } } } catch (Exception e) { + logger.info("执行异常错误原因:"+e); logger.error("新增返回脚本解析保存三方id错误"+jsonResultEntity.getAttribute()); taskDetailEntity.setResult("新增返回脚本解析保存三方id错误"); taskLivingDetailsService.updateLogFailToSuccess(taskDetailEntity); @@ -543,7 +544,7 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { map1.put("tableName",mainDb); map1.put("dataStatus", "N"); map1.put("deleteStatus", "0"); - map1.put("size", 10); + map1.put("size", 50); objects = mdmModuleDao.queryMdmSTs(map1); objects = toLowerCaseKeys(objects); @@ -738,7 +739,7 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { map1.put("tableName",mainDb); //map1.put("dataStatus", "F"); map1.put("updateStatus", "0"); - map1.put("size", 10); + map1.put("size", 50); objects = mdmModuleDao.queryMdmSTs(map1); objects = toLowerCaseKeys(objects); @@ -926,7 +927,7 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { map1.put("tableName",mainDb); //map1.put("dataStatus", "Y"); map1.put("addStatus", "0"); - map1.put("size", 100); + map1.put("size", 50); objects = mdmModuleDao.queryMdmSTs(map1); objects = toLowerCaseKeys(objects); @@ -991,6 +992,7 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { mdmModuleSendLogEntity.setTableName(mainDb+"_send_log"); mdmModuleSendLogEntity.setFormmainId(doObjects.get(i).getString("id")); mdmModuleSendLogEntity.setSts("Y"); + mdmModuleSendLogEntity.setDataType("1"); mdmModuleSendLogEntity.setAppId(sysApplicationEntity.getId()); mdmModuleSendLogEntity.setApiId(apiEntity.getId()); //mdmModuleSendLogEntity.setDistributeId(mdmModuleDistributeEntities.get(i1).getId()); @@ -1121,10 +1123,12 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { } //保存日志 saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"1","发送成功",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); + objects.get(i).put("sendsanfzt123",true); continue; }else { //保存日志 saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","转发失败:"+jsonResultEntity.getAttribute(),mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); + objects.get(i).put("sendsanfzt123",false); continue; } } @@ -1132,12 +1136,14 @@ public class MdmModulePluginInitializer extends PluginBaseEntity { //所有下发发送完成,修改数据状态 for (int i = 0; i < objects.size(); i++) { - Map<String, Object> updateMap = new HashMap<>(); - updateMap.put("tableName",mainDb); - //updateMap.put("dataStatus", "Y"); - updateMap.put("addStatus", "1"); - updateMap.put("id", objects.get(i).getString("id")); - mdmModuleDao.updateMdmSTs(updateMap); + if(objects.get(i).getBoolean("sendsanfzt123")){ + Map<String, Object> updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "1"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); + } } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderBDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderBDao.java new file mode 100644 index 00000000..432e5217 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderBDao.java @@ -0,0 +1,16 @@ +package com.hzya.frame.plugin.ncc.dao; + + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.plugin.ncc.entity.POrderBEntity; + +/** + * @description: 采购订单子表 dao + * @tableName: po_order_b + * @entityName: POrderBEntity + * @author: code_generator + * @history: 1.0 + */ +public interface IPOrderBDao extends IBaseDao<POrderBEntity, String> { + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderHDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderHDao.java new file mode 100644 index 00000000..a1b38e75 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/IPOrderHDao.java @@ -0,0 +1,16 @@ +package com.hzya.frame.plugin.ncc.dao; + + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.plugin.ncc.entity.POrderHEntity; + +/** + * @description: 采购订单主表 dao + * @tableName: po_order + * @entityName: POrderHEntity + * @author: code_generator + * @history: 1.0 + */ +public interface IPOrderHDao extends IBaseDao<POrderHEntity, String> { + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderBDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderBDaoImpl.java new file mode 100644 index 00000000..c4798dc4 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderBDaoImpl.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.ncc.dao.impl; + + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.plugin.ncc.dao.IPOrderBDao; +import com.hzya.frame.plugin.ncc.entity.POrderBEntity; +import org.springframework.stereotype.Repository; + +/** + * @description: 采购订单子表 dao + * @tableName: po_order_b + * @entityName: POrderBEntity + * @author: code_generator + * @history:1.0 + */ +@Repository("po_order_bdao") +public class POrderBDaoImpl extends MybatisGenericDao<POrderBEntity, String> implements IPOrderBDao { + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderHDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderHDaoImpl.java new file mode 100644 index 00000000..06d51814 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/dao/impl/POrderHDaoImpl.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.ncc.dao.impl; + + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.plugin.ncc.dao.IPOrderHDao; +import com.hzya.frame.plugin.ncc.entity.POrderHEntity; +import org.springframework.stereotype.Repository; + +/** + * @description: 采购订单主表 dao + * @tableName: po_order + * @entityName: POrderHEntity + * @author: code_generator + * @history:1.0 + */ +@Repository("po_orderdao") +public class POrderHDaoImpl extends MybatisGenericDao<POrderHEntity, String> implements IPOrderHDao { + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.java new file mode 100644 index 00000000..112ddc71 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.java @@ -0,0 +1,869 @@ +package com.hzya.frame.plugin.ncc.entity; +import com.hzya.frame.web.entity.BaseEntity; + +import java.math.BigDecimal; +/** + * @description: 采购订单子表 + * @tableName: po_order_b + * @entityName: POrderBEntity + * @author: code_generator + * @history: 1.0 + */ + +public class POrderBEntity extends BaseEntity { + + /** */ + private String pk_order; + /** */ + private String pk_order_b; + /** 集团 */ + private String pk_group; + /** 组织 */ + private String pk_org; + /** 行号 */ + private String crowno; + /** 物料 */ + private String pk_material; + /** 物料编码 */ + private String material_code; + /** 物料名称 */ + private String material_name; + private String material_class_id; + /** 主单位 */ + private String cunitid; + /** 主单位名称 */ + private String cunitid_name; + /** 辅单位 */ + private String castunitid; + /** 副单位名称 */ + private String castunitid_name; + /** 吨数 */ + private BigDecimal nnum; + /** 件数 */ + private BigDecimal nastnum; + /** 换算率 */ + private String vchangerate; + /** 无税单价 */ + private BigDecimal norigprice; + /** 含税单价 */ + private BigDecimal norigtaxprice; + /** 无税金额 */ + private BigDecimal norignetprice; + /** 含税金额 */ + private BigDecimal norigtaxnetprice; + /** 税额 */ + private BigDecimal ntax; + /** 价税合计 */ + private BigDecimal norigtaxmny; + /** 税率 */ + private BigDecimal ntaxrate; + /** 币种 */ + private String corigcurrencyid; + private String corigcurrencyid_name; + /** 来源单据类型 */ + private String csourcetypecode; + /** 来源单据 */ + private String csourceid; + /** 来源单据明细 */ + private String csourcebid; + /** 源头单据类型 */ + private String cfirsttypecode; + /** 源头单据 */ + private String cfirstid; + /** 源头单据明细 */ + private String cfirstbid; + /** 是否赠品 */ + private String blargess; + /** 源头交易类型 */ + private String vfirsttrantype; + /** 源头单据号 */ + private String vfirstcode; + /** 源头单据行号 */ + private String vfirstrowno; + /** 来源交易类型 */ + private String vsourcetrantype; + /** 来源单据号 */ + private String vsourcecode; + /** 来源单据行号 */ + private String vsourcerowno; + /** 自由辅助属性1 */ + private String vfree1; + /** 自由辅助属性2 */ + private String vfree2; + /** 自由辅助属性3 */ + private String vfree3; + /** 自由辅助属性4 */ + private String vfree4; + /** 自由辅助属性5 */ + private String vfree5; + /** 自由辅助属性6 */ + private String vfree6; + private String pk_grade; + /** 自由辅助属性7 */ + private String vfree7; + /** FSC/EUDR主键 */ + + private String pk_vfree8; + /** FSC/EUDR */ + + private String vfree8; + /** 自由辅助属性9 */ + private String vfree9; + /** 品牌主键 */ + + private String pk_vfree10; + /** 品牌 */ + + private String vfree10; + /** 自定义项1 */ + private String vbdef1; + /** 自定义项2 */ + private String vbdef2; + /** 自定义项3 */ + private String vbdef3; + /** 自定义项4 */ + private String vbdef4; + /** 自定义项5 */ + private String vbdef5; + /** 自定义项6 */ + private String vbdef6; + /** 自定义项7 */ + private String vbdef7; + /** 自定义项8 */ + private String vbdef8; + /** 自定义项9 */ + private String vbdef9; + /** 自定义项10 */ + private String vbdef10; + /** 自定义项11 */ + private String vbdef11; + /** 自定义项12 */ + private String vbdef12; + /** 自定义项13 */ + private String vbdef13; + /** 自定义项14 */ + private String vbdef14; + /** 自定义项15 */ + private String vbdef15; + /** 自定义项16 */ + private String vbdef16; + /** 自定义项17 */ + private String vbdef17; + /** 自定义项18 */ + private String vbdef18; + /** 自定义项19 */ + private String vbdef19; + /** 自定义项20 */ + private String vbdef20; + private String vbmemo; + private String external_material_spec; + /** 报价单位 */ + private String cqtunitid; + private String cqtunitid_name; + /** 报价数量 */ + private BigDecimal nqtunitnum; + /** 折本汇率 */ + private BigDecimal nexchangerate; + /** 收货仓库 */ + private String pk_recvstordoc; + private String recvstordoc_name; + /** 计划到货日期 */ + private String dplanarrvdate; + + private String special_type; + private String vbatchcode; + + private String ic_id; + + private BigDecimal price; + private BigDecimal taxprice; + private String material_id; + + public String getPk_order() { + return pk_order; + } + + public void setPk_order(String pk_order) { + this.pk_order = pk_order; + } + + public String getPk_order_b() { + return pk_order_b; + } + + public void setPk_order_b(String pk_order_b) { + this.pk_order_b = pk_order_b; + } + + public String getPk_group() { + return pk_group; + } + + public void setPk_group(String pk_group) { + this.pk_group = pk_group; + } + + public String getPk_org() { + return pk_org; + } + + public void setPk_org(String pk_org) { + this.pk_org = pk_org; + } + + public String getCrowno() { + return crowno; + } + + public void setCrowno(String crowno) { + this.crowno = crowno; + } + + public String getPk_material() { + return pk_material; + } + + public void setPk_material(String pk_material) { + this.pk_material = pk_material; + } + + public String getMaterial_code() { + return material_code; + } + + public void setMaterial_code(String material_code) { + this.material_code = material_code; + } + + public String getMaterial_name() { + return material_name; + } + + public void setMaterial_name(String material_name) { + this.material_name = material_name; + } + + public String getMaterial_class_id() { + return material_class_id; + } + + public void setMaterial_class_id(String material_class_id) { + this.material_class_id = material_class_id; + } + + public String getCunitid() { + return cunitid; + } + + public void setCunitid(String cunitid) { + this.cunitid = cunitid; + } + + public String getCunitid_name() { + return cunitid_name; + } + + public void setCunitid_name(String cunitid_name) { + this.cunitid_name = cunitid_name; + } + + public String getCastunitid() { + return castunitid; + } + + public void setCastunitid(String castunitid) { + this.castunitid = castunitid; + } + + public String getCastunitid_name() { + return castunitid_name; + } + + public void setCastunitid_name(String castunitid_name) { + this.castunitid_name = castunitid_name; + } + + public BigDecimal getNnum() { + return nnum; + } + + public void setNnum(BigDecimal nnum) { + this.nnum = nnum; + } + + public BigDecimal getNastnum() { + return nastnum; + } + + public void setNastnum(BigDecimal nastnum) { + this.nastnum = nastnum; + } + + public String getVchangerate() { + return vchangerate; + } + + public void setVchangerate(String vchangerate) { + this.vchangerate = vchangerate; + } + + public BigDecimal getNorigprice() { + return norigprice; + } + + public void setNorigprice(BigDecimal norigprice) { + this.norigprice = norigprice; + } + + public BigDecimal getNorigtaxprice() { + return norigtaxprice; + } + + public void setNorigtaxprice(BigDecimal norigtaxprice) { + this.norigtaxprice = norigtaxprice; + } + + public BigDecimal getNorignetprice() { + return norignetprice; + } + + public void setNorignetprice(BigDecimal norignetprice) { + this.norignetprice = norignetprice; + } + + public BigDecimal getNorigtaxnetprice() { + return norigtaxnetprice; + } + + public void setNorigtaxnetprice(BigDecimal norigtaxnetprice) { + this.norigtaxnetprice = norigtaxnetprice; + } + + public BigDecimal getNtax() { + return ntax; + } + + public void setNtax(BigDecimal ntax) { + this.ntax = ntax; + } + + public BigDecimal getNorigtaxmny() { + return norigtaxmny; + } + + public void setNorigtaxmny(BigDecimal norigtaxmny) { + this.norigtaxmny = norigtaxmny; + } + + public BigDecimal getNtaxrate() { + return ntaxrate; + } + + public void setNtaxrate(BigDecimal ntaxrate) { + this.ntaxrate = ntaxrate; + } + + public String getCorigcurrencyid() { + return corigcurrencyid; + } + + public void setCorigcurrencyid(String corigcurrencyid) { + this.corigcurrencyid = corigcurrencyid; + } + + public String getCorigcurrencyid_name() { + return corigcurrencyid_name; + } + + public void setCorigcurrencyid_name(String corigcurrencyid_name) { + this.corigcurrencyid_name = corigcurrencyid_name; + } + + public String getCsourcetypecode() { + return csourcetypecode; + } + + public void setCsourcetypecode(String csourcetypecode) { + this.csourcetypecode = csourcetypecode; + } + + public String getCsourceid() { + return csourceid; + } + + public void setCsourceid(String csourceid) { + this.csourceid = csourceid; + } + + public String getCsourcebid() { + return csourcebid; + } + + public void setCsourcebid(String csourcebid) { + this.csourcebid = csourcebid; + } + + public String getCfirsttypecode() { + return cfirsttypecode; + } + + public void setCfirsttypecode(String cfirsttypecode) { + this.cfirsttypecode = cfirsttypecode; + } + + public String getCfirstid() { + return cfirstid; + } + + public void setCfirstid(String cfirstid) { + this.cfirstid = cfirstid; + } + + public String getCfirstbid() { + return cfirstbid; + } + + public void setCfirstbid(String cfirstbid) { + this.cfirstbid = cfirstbid; + } + + public String getBlargess() { + return blargess; + } + + public void setBlargess(String blargess) { + this.blargess = blargess; + } + + public String getVfirsttrantype() { + return vfirsttrantype; + } + + public void setVfirsttrantype(String vfirsttrantype) { + this.vfirsttrantype = vfirsttrantype; + } + + public String getVfirstcode() { + return vfirstcode; + } + + public void setVfirstcode(String vfirstcode) { + this.vfirstcode = vfirstcode; + } + + public String getVfirstrowno() { + return vfirstrowno; + } + + public void setVfirstrowno(String vfirstrowno) { + this.vfirstrowno = vfirstrowno; + } + + public String getVsourcetrantype() { + return vsourcetrantype; + } + + public void setVsourcetrantype(String vsourcetrantype) { + this.vsourcetrantype = vsourcetrantype; + } + + public String getVsourcecode() { + return vsourcecode; + } + + public void setVsourcecode(String vsourcecode) { + this.vsourcecode = vsourcecode; + } + + public String getVsourcerowno() { + return vsourcerowno; + } + + public void setVsourcerowno(String vsourcerowno) { + this.vsourcerowno = vsourcerowno; + } + + public String getVfree1() { + return vfree1; + } + + public void setVfree1(String vfree1) { + this.vfree1 = vfree1; + } + + public String getVfree2() { + return vfree2; + } + + public void setVfree2(String vfree2) { + this.vfree2 = vfree2; + } + + public String getVfree3() { + return vfree3; + } + + public void setVfree3(String vfree3) { + this.vfree3 = vfree3; + } + + public String getVfree4() { + return vfree4; + } + + public void setVfree4(String vfree4) { + this.vfree4 = vfree4; + } + + public String getVfree5() { + return vfree5; + } + + public void setVfree5(String vfree5) { + this.vfree5 = vfree5; + } + + public String getVfree6() { + return vfree6; + } + + public void setVfree6(String vfree6) { + this.vfree6 = vfree6; + } + + public String getPk_grade() { + return pk_grade; + } + + public void setPk_grade(String pk_grade) { + this.pk_grade = pk_grade; + } + + public String getVfree7() { + return vfree7; + } + + public void setVfree7(String vfree7) { + this.vfree7 = vfree7; + } + + public String getPk_vfree8() { + return pk_vfree8; + } + + public void setPk_vfree8(String pk_vfree8) { + this.pk_vfree8 = pk_vfree8; + } + + public String getVfree8() { + return vfree8; + } + + public void setVfree8(String vfree8) { + this.vfree8 = vfree8; + } + + public String getVfree9() { + return vfree9; + } + + public void setVfree9(String vfree9) { + this.vfree9 = vfree9; + } + + public String getPk_vfree10() { + return pk_vfree10; + } + + public void setPk_vfree10(String pk_vfree10) { + this.pk_vfree10 = pk_vfree10; + } + + public String getVfree10() { + return vfree10; + } + + public void setVfree10(String vfree10) { + this.vfree10 = vfree10; + } + + public String getVbdef1() { + return vbdef1; + } + + public void setVbdef1(String vbdef1) { + this.vbdef1 = vbdef1; + } + + public String getVbdef2() { + return vbdef2; + } + + public void setVbdef2(String vbdef2) { + this.vbdef2 = vbdef2; + } + + public String getVbdef3() { + return vbdef3; + } + + public void setVbdef3(String vbdef3) { + this.vbdef3 = vbdef3; + } + + public String getVbdef4() { + return vbdef4; + } + + public void setVbdef4(String vbdef4) { + this.vbdef4 = vbdef4; + } + + public String getVbdef5() { + return vbdef5; + } + + public void setVbdef5(String vbdef5) { + this.vbdef5 = vbdef5; + } + + public String getVbdef6() { + return vbdef6; + } + + public void setVbdef6(String vbdef6) { + this.vbdef6 = vbdef6; + } + + public String getVbdef7() { + return vbdef7; + } + + public void setVbdef7(String vbdef7) { + this.vbdef7 = vbdef7; + } + + public String getVbdef8() { + return vbdef8; + } + + public void setVbdef8(String vbdef8) { + this.vbdef8 = vbdef8; + } + + public String getVbdef9() { + return vbdef9; + } + + public void setVbdef9(String vbdef9) { + this.vbdef9 = vbdef9; + } + + public String getVbdef10() { + return vbdef10; + } + + public void setVbdef10(String vbdef10) { + this.vbdef10 = vbdef10; + } + + public String getVbdef11() { + return vbdef11; + } + + public void setVbdef11(String vbdef11) { + this.vbdef11 = vbdef11; + } + + public String getVbdef12() { + return vbdef12; + } + + public void setVbdef12(String vbdef12) { + this.vbdef12 = vbdef12; + } + + public String getVbdef13() { + return vbdef13; + } + + public void setVbdef13(String vbdef13) { + this.vbdef13 = vbdef13; + } + + public String getVbdef14() { + return vbdef14; + } + + public void setVbdef14(String vbdef14) { + this.vbdef14 = vbdef14; + } + + public String getVbdef15() { + return vbdef15; + } + + public void setVbdef15(String vbdef15) { + this.vbdef15 = vbdef15; + } + + public String getVbdef16() { + return vbdef16; + } + + public void setVbdef16(String vbdef16) { + this.vbdef16 = vbdef16; + } + + public String getVbdef17() { + return vbdef17; + } + + public void setVbdef17(String vbdef17) { + this.vbdef17 = vbdef17; + } + + public String getVbdef18() { + return vbdef18; + } + + public void setVbdef18(String vbdef18) { + this.vbdef18 = vbdef18; + } + + public String getVbdef19() { + return vbdef19; + } + + public void setVbdef19(String vbdef19) { + this.vbdef19 = vbdef19; + } + + public String getVbdef20() { + return vbdef20; + } + + public void setVbdef20(String vbdef20) { + this.vbdef20 = vbdef20; + } + + public String getVbmemo() { + return vbmemo; + } + + public void setVbmemo(String vbmemo) { + this.vbmemo = vbmemo; + } + + public String getExternal_material_spec() { + return external_material_spec; + } + + public void setExternal_material_spec(String external_material_spec) { + this.external_material_spec = external_material_spec; + } + + public String getCqtunitid() { + return cqtunitid; + } + + public void setCqtunitid(String cqtunitid) { + this.cqtunitid = cqtunitid; + } + + public String getCqtunitid_name() { + return cqtunitid_name; + } + + public void setCqtunitid_name(String cqtunitid_name) { + this.cqtunitid_name = cqtunitid_name; + } + + public BigDecimal getNqtunitnum() { + return nqtunitnum; + } + + public void setNqtunitnum(BigDecimal nqtunitnum) { + this.nqtunitnum = nqtunitnum; + } + + public BigDecimal getNexchangerate() { + return nexchangerate; + } + + public void setNexchangerate(BigDecimal nexchangerate) { + this.nexchangerate = nexchangerate; + } + + public String getPk_recvstordoc() { + return pk_recvstordoc; + } + + public void setPk_recvstordoc(String pk_recvstordoc) { + this.pk_recvstordoc = pk_recvstordoc; + } + + public String getRecvstordoc_name() { + return recvstordoc_name; + } + + public void setRecvstordoc_name(String recvstordoc_name) { + this.recvstordoc_name = recvstordoc_name; + } + + public String getDplanarrvdate() { + return dplanarrvdate; + } + + public void setDplanarrvdate(String dplanarrvdate) { + this.dplanarrvdate = dplanarrvdate; + } + + public String getSpecial_type() { + return special_type; + } + + public void setSpecial_type(String special_type) { + this.special_type = special_type; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public String getIc_id() { + return ic_id; + } + + public void setIc_id(String ic_id) { + this.ic_id = ic_id; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public BigDecimal getTaxprice() { + return taxprice; + } + + public void setTaxprice(BigDecimal taxprice) { + this.taxprice = taxprice; + } + + public String getMaterial_id() { + return material_id; + } + + public void setMaterial_id(String material_id) { + this.material_id = material_id; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.xml new file mode 100644 index 00000000..ae72f7f0 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderBEntity.xml @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.plugin.ncc.dao.impl.POrderBDaoImpl"> + <resultMap id="get-POrderBEntity-result" type="com.hzya.frame.plugin.ncc.entity.POrderBEntity"> + <!-- --> + <!-- --> + <result property="pk_order" column="pk_order" /> + <!-- --> + <result property="pk_order_b" column="pk_order_b" /> + <!--集团 --> + <result property="pk_group" column="pk_group" /> + <!--组织 --> + <result property="pk_org" column="pk_org" /> + <!--行号 --> + <result property="crowno" column="crowno" /> + <!--物料 --> + <result property="pk_material" column="pk_material" /> + <!--物料编码 --> + <result property="material_code" column="material_code" /> + <!--物料名称 --> + <result property="material_name" column="material_name" /> + <!--主单位 --> + <result property="cunitid" column="cunitid" /> + <!--主单位名称 --> + <result property="cunitid_name" column="cunitid_name" /> + <!--辅单位 --> + <result property="castunitid" column="castunitid" /> + <!--副单位名称 --> + <result property="castunitid_name" column="castunitid_name" /> + <!--吨数 --> + <result property="nnum" column="nnum" /> + <!--件数 --> + <result property="nastnum" column="nastnum" /> + <!--换算率 --> + <result property="vchangerate" column="vchangerate" /> + <!--无税单价 --> + <result property="norigprice" column="norigprice" /> + <!--含税单价 --> + <result property="norigtaxprice" column="norigtaxprice" /> + <!--无税金额 --> + <result property="norignetprice" column="norignetprice" /> + <!--含税金额 --> + <result property="norigtaxnetprice" column="norigtaxnetprice" /> + <!--税额 --> + <result property="ntax" column="ntax" /> + <!--价税合计 --> + <result property="norigtaxmny" column="norigtaxmny" /> + <!--税率 --> + <result property="ntaxrate" column="ntaxrate" /> + <!--币种 --> + <result property="corigcurrencyid" column="corigcurrencyid" /> + <result property="corigcurrencyid_name" column="corigcurrencyid_name" /> + <!--来源单据类型 --> + <result property="csourcetypecode" column="csourcetypecode" /> + <!--来源单据 --> + <result property="csourceid" column="csourceid" /> + <!--来源单据明细 --> + <result property="csourcebid" column="csourcebid" /> + <!--源头单据类型 --> + <result property="cfirsttypecode" column="cfirsttypecode" /> + <!--源头单据 --> + <result property="cfirstid" column="cfirstid" /> + <!--源头单据明细 --> + <result property="cfirstbid" column="cfirstbid" /> + <!--是否赠品 --> + <result property="blargess" column="blargess" /> + <!--源头交易类型 --> + <result property="vfirsttrantype" column="vfirsttrantype" /> + <!--源头单据号 --> + <result property="vfirstcode" column="vfirstcode" /> + <!--源头单据行号 --> + <result property="vfirstrowno" column="vfirstrowno" /> + <!--来源交易类型 --> + <result property="vsourcetrantype" column="vsourcetrantype" /> + <!--来源单据号 --> + <result property="vsourcecode" column="vsourcecode" /> + <!--来源单据行号 --> + <result property="vsourcerowno" column="vsourcerowno" /> + <!--自由辅助属性1 --> + <result property="vfree1" column="vfree1" /> + <!--自由辅助属性2 --> + <result property="vfree2" column="vfree2" /> + <!--自由辅助属性3 --> + <result property="vfree3" column="vfree3" /> + <!--自由辅助属性4 --> + <result property="vfree4" column="vfree4" /> + <!--自由辅助属性5 --> + <result property="vfree5" column="vfree5" /> + <!--自由辅助属性6 --> + <result property="vfree6" column="vfree6" /> + <!--自由辅助属性7 --> + <result property="vfree7" column="vfree7" /> + <!--FSC/EUDR主键 --> + <result property="pk_vfree8" column="pk_vfree8" /> + <!--FSC/EUDR --> + <result property="vfree8" column="vfree8" /> + <!--自由辅助属性9 --> + <result property="vfree9" column="vfree9" /> + <!--品牌主键 --> + <result property="pk_vfree10" column="pk_vfree10" /> + <!--品牌 --> + <result property="vfree10" column="vfree10" /> + <!--自定义项1 --> + <result property="vbdef1" column="vbdef1" /> + <!--自定义项2 --> + <result property="vbdef2" column="vbdef2" /> + <!--自定义项3 --> + <result property="vbdef3" column="vbdef3" /> + <!--自定义项4 --> + <result property="vbdef4" column="vbdef4" /> + <!--自定义项5 --> + <result property="vbdef5" column="vbdef5" /> + <!--自定义项6 --> + <result property="vbdef6" column="vbdef6" /> + <!--自定义项7 --> + <result property="vbdef7" column="vbdef7" /> + <!--自定义项8 --> + <result property="vbdef8" column="vbdef8" /> + <!--自定义项9 --> + <result property="vbdef9" column="vbdef9" /> + <!--自定义项10 --> + <result property="vbdef10" column="vbdef10" /> + <!--自定义项11 --> + <result property="vbdef11" column="vbdef11" /> + <!--自定义项12 --> + <result property="vbdef12" column="vbdef12" /> + <!--自定义项13 --> + <result property="vbdef13" column="vbdef13" /> + <!--自定义项14 --> + <result property="vbdef14" column="vbdef14" /> + <!--自定义项15 --> + <result property="vbdef15" column="vbdef15" /> + <!--自定义项16 --> + <result property="vbdef16" column="vbdef16" /> + <!--自定义项17 --> + <result property="vbdef17" column="vbdef17" /> + <!--自定义项18 --> + <result property="vbdef18" column="vbdef18" /> + <!--自定义项19 --> + <result property="vbdef19" column="vbdef19" /> + <!--自定义项20 --> + <result property="vbdef20" column="vbdef20" /> + <result property="vbmemo" column="vbmemo" /> + <!--报价单位 --> + <result property="cqtunitid" column="cqtunitid" /> + <result property="cqtunitid_name" column="cqtunitid_name" /> + <!--报价数量 --> + <result property="nqtunitnum" column="nqtunitnum" /> + <!--折本汇率 --> + <result property="nexchangerate" column="nexchangerate" /> + <!--收货仓库 --> + <result property="pk_recvstordoc" column="pk_recvstordoc" /> + <!--计划到货日期 --> + <result property="dplanarrvdate" column="dplanarrvdate" /> + <result property="dr" column="dr" /> + </resultMap> + + + + <!--获取NCC采购订单表体数据 --> + <select id="entity_list_base" resultMap="get-POrderBEntity-result" parameterType="com.hzya.frame.plugin.ncc.entity.POrderBEntity"> + SELECT + po_order_b.*, + bd_material.code material_code, + bd_material.name material_name, + bdm1.name cunitid_name, + bdm2.name castunitid_name, + bdm3.name cqtunitid_name, + bd_currtype.name corigcurrencyid_name, + po_order_b.dr + FROM + po_order_b + left join bd_material on po_order_b.pk_material = bd_material.pk_material + left join bd_measdoc bdm1 on po_order_b.cunitid = bdm1.pk_measdoc + left join bd_measdoc bdm2 on po_order_b.castunitid = bdm2.pk_measdoc + left join bd_measdoc bdm3 on po_order_b.cqtunitid = bdm3.pk_measdoc + left join bd_currtype on po_order_b.corigcurrencyid = bd_currtype.pk_currtype + <trim prefix="where" prefixOverrides="and"> + 1 = 1 + <if test="pk_order != null "> and po_order_b.pk_order = #{pk_order}</if> + </trim> + </select> +</mapper> diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.java new file mode 100644 index 00000000..912ffd17 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.java @@ -0,0 +1,163 @@ +package com.hzya.frame.plugin.ncc.entity; + + + +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.List; +import java.util.Map; + +/** + * @description: 采购订单主表 + * @tableName: po_order + * @entityName: POrderHEntity + * @author: code_generator + * @history: 1.0 + */ + +public class POrderHEntity extends BaseEntity { + + /** 采购订单 */ + private String pk_order; + /** 集团 */ + private String pk_group; + /** 集团名称 */ + private String group_name; + /** 采购组织 */ + private String pk_org; + private String pk_orgs; + private String pk_org_search; + /** 采购组织版本信息 */ + private String pk_org_v; + /** 组织名称 */ + private String org_name; + /** 订单编号 */ + private String vbillcode; + /** 订单日期 */ + private String dbilldate; + /** 供应商 */ + private String pk_supplier; + /** 供应商版本 */ + private String pk_supplier_v; + /** 供应商名称 */ + private String supplier_name; + /** 采购部门 */ + private String pk_dept; + /** 部门名称 */ + private String dept_name; + /** 采购员 */ + private String cemployeeid; + /** 采购员名称 */ + private String cemployeeid_name; + /** 订单类型编码 */ + private String vtrantypecode; + /** 订单类型名称 */ + private String vtrantypecode_name; + /** 供应商发货地址 */ + private String pk_deliveradd; + /** 供应商发货地址 */ + private String deliveradd_name; + /** 单据状态 */ + private String forderstatus; + private String forderstatus_name; + /** 备注 */ + private String vmemo; + /** 运输方式 */ + private String pk_transporttype; + /** 运输方式 */ + private String transporttype_name; + /** 付款协议 */ + private String pk_payterm; + /** 付款协议名称 */ + private String payterm_name; + /** 最新版本 */ + private String bislatest; + private String bislatest_name; + /** 总数量 */ + private String ntotalastnum; + /** 总件数 */ + private String ntotalpiece; + /** 价税合计 */ + private String ntotalorigmny; + /** 业务流程 */ + private String pk_busitype; + /** 结算方式 */ + private String pk_balatype; + /** 币种 */ + private String corigcurrencyid; + private String corigcurrencyid_name; + /** 进口合同号*/ + private String vdef1; + /** */ + private String vdef2; + /** 提单号 */ + private String vdef3; + /** */ + private String vdef4; + /** */ + private String vdef5; + /** */ + private String vdef6; + /** 承运商 */ + private String vdef7; + private String vdef7_name; + /** */ + private String vdef8; + /** */ + private String vdef9; + /** */ + private String vdef10; + /** */ + private String vdef11; + /** */ + private String vdef12; + /** */ + private String vdef13; + /** 合同号 */ + private String vdef14; + /** */ + private String vdef15; + /** */ + private String vdef16; + /** */ + private String vdef17; + /** */ + private String vdef18; + /** */ + private String vdef19; + /** */ + private String vdef20; + private String breturn; + /** 推送状态 */ + private String push_status; + /** 项目 */ + private String pk_project; + /** 项目名称 */ + private String project_name; + + private String type; + + private String systate = "0"; + + private List<String> rowIds; + + private List<POrderBEntity> detailList; + + private Map<String, Object> icMap; + + private String ic_id; + private String it_type; + private Boolean exempted_flag; + private Boolean isNotPo; + + + private String tms_bill_code; + + private String bill_code_search; + + // 是否关闭 + private String bfinalclose; + + // 发货地址 + private String ship_address; +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.xml new file mode 100644 index 00000000..fa55b988 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/entity/POrderHEntity.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.plugin.ncc.dao.impl.POrderHDaoImpl"> + <resultMap id="get-POrderHEntity-result" type="com.hzya.frame.plugin.ncc.entity.POrderHEntity"> + <!-- --> + <!--采购订单 --> + <result property="pk_order" column="pk_order" /> + <!--集团 --> + <result property="pk_group" column="pk_group" /> + <!--集团名称 --> + <result property="group_name" column="group_name" /> + <!--采购组织 --> + <result property="pk_org" column="pk_org" /> + <!--采购组织版本信息 --> + <result property="pk_org_v" column="pk_org_v" /> + <!--组织名称 --> + <result property="org_name" column="org_name" /> + <!--订单编号 --> + <result property="vbillcode" column="vbillcode" /> + <!--订单日期 --> + <result property="dbilldate" column="dbilldate" /> + <!--供应商 --> + <result property="pk_supplier" column="pk_supplier" /> + <!--供应商版本 --> + <result property="pk_supplier_v" column="pk_supplier_v" /> + <!--供应商名称 --> + <result property="supplier_name" column="supplier_name" /> + <!--采购部门 --> + <result property="pk_dept" column="pk_dept" /> + <!--部门名称 --> + <result property="dept_name" column="dept_name" /> + <!--采购员 --> + <result property="cemployeeid" column="cemployeeid" /> + <!--采购员名称 --> + <result property="cemployeeid_name" column="cemployeeid_name" /> + <!--订单类型编码 --> + <result property="vtrantypecode" column="vtrantypecode" /> + <!--订单类型名称 --> + <result property="vtrantypecode_name" column="vtrantypecode_name" /> + <!--供应商发货地址 --> + <result property="pk_deliveradd" column="pk_deliveradd" /> + <!--供应商发货地址 --> + <result property="deliveradd_name" column="deliveradd_name" /> + <!--单据状态 --> + <result property="forderstatus" column="forderstatus" /> + <result property="forderstatus_name" column="forderstatus_name" /> + <!--备注 --> + <result property="vmemo" column="vmemo" /> + <!--运输方式 --> + <result property="pk_transporttype" column="pk_transporttype" /> + <!--运输方式 --> + <result property="transporttype_name" column="transporttype_name" /> + <!--付款协议 --> + <result property="pk_payterm" column="pk_payterm" /> + <!--付款协议名称 --> + <result property="payterm_name" column="payterm_name" /> + <!--最新版本 --> + <result property="bislatest" column="bislatest" /> + <!--总数量 --> + <result property="ntotalastnum" column="ntotalastnum" /> + <!--总件数 --> + <result property="ntotalpiece" column="ntotalpiece" /> + <!--价税合计 --> + <result property="ntotalorigmny" column="ntotalorigmny" /> + <!--业务流程 --> + <result property="pk_busitype" column="pk_busitype" /> + <!--结算方式 --> + <result property="pk_balatype" column="pk_balatype" /> + <!--币种 --> + <result property="corigcurrencyid" column="corigcurrencyid" /> + <result property="corigcurrencyid_name" column="corigcurrencyid_name" /> + <!--进口合同号 + + --> + <result property="vdef1" column="vdef1" /> + <!-- --> + <result property="vdef2" column="vdef2" /> + <!--提单号 --> + <result property="vdef3" column="vdef3" /> + <!-- --> + <result property="vdef4" column="vdef4" /> + <!-- --> + <result property="vdef5" column="vdef5" /> + <!-- --> + <result property="vdef6" column="vdef6" /> + <!--承运商 --> + <result property="vdef7" column="vdef7" /> + <!-- --> + <result property="vdef8" column="vdef8" /> + <!-- --> + <result property="vdef9" column="vdef9" /> + <!-- --> + <result property="vdef10" column="vdef10" /> + <!-- --> + <result property="vdef11" column="vdef11" /> + <!-- --> + <result property="vdef12" column="vdef12" /> + <!-- --> + <result property="vdef13" column="vdef13" /> + <!--合同号 --> + <result property="vdef14" column="vdef14" /> + <!-- --> + <result property="vdef15" column="vdef15" /> + <!-- --> + <result property="vdef16" column="vdef16" /> + <!-- --> + <result property="vdef17" column="vdef17" /> + <!-- --> + <result property="vdef18" column="vdef18" /> + <!-- --> + <result property="vdef19" column="vdef19" /> + <!-- --> + <result property="vdef20" column="vdef20" /> + <result property="breturn" column="breturn" /> + <result property="bfinalclose" column="bfinalclose" /> + <!--项目 --> + <result property="pk_project" column="pk_project" /> + <!--项目名称 --> + <result property="project_name" column="project_name" /> + <result property="dr" column="dr" /> + </resultMap> + + + <!--获取NCC采购订单表头数据 --> + <select id="entity_list_base" resultMap="get-POrderHEntity-result" parameterType="com.hzya.frame.plugin.ncc.entity.POrderHEntity"> + SELECT + po_order.*, + po_order.dr, + org_orgs.name org_name, + bd_supplier.name supplier_name, + org_dept.name dept_name, + bd_psndoc.name cemployeeid_name, + bd_billtype.billtypename vtrantypecode_name, + bd_payment.name transporttype_name, + bd_project.project_name project_name, + bd_currtype.name corigcurrencyid_name, + CASE po_order.forderstatus + WHEN 0 THEN + '自由' + WHEN 1 THEN + '提交' + WHEN 2 THEN + '正在审批' + WHEN 4 THEN + '审批不通过' + ELSE + '审批通过' + END forderstatus_name + FROM + po_order + left join org_orgs on po_order.pk_org = org_orgs.pk_org + left join bd_supplier on po_order.pk_supplier = bd_supplier.pk_supplier + left join org_dept on po_order.pk_dept = org_dept.pk_dept + left join bd_psndoc on po_order.cemployeeid = bd_psndoc.pk_psndoc + left join bd_billtype on po_order.vtrantypecode = bd_billtype.pk_billtypecode + left join bd_payment on po_order.pk_transporttype = bd_payment.pk_payment + left join bd_project on po_order.pk_project = bd_project.pk_project + left join bd_currtype on po_order.corigcurrencyid = bd_currtype.pk_currtype + <trim prefix="where" prefixOverrides="and"> + po_order.forderstatus = '3' + <if test="pk_org != null and pk_org != ''"> and po_order.pk_org = #{pk_org}</if> + <if test="pk_orgs != null and pk_orgs != ''"> and po_order.pk_org in (${pk_orgs})</if> + <if test="vbillcode != null and vbillcode != ''"> and po_order.vbillcode = #{vbillcode}</if> + <if test="dbilldate != null and dbilldate != ''"> and po_order.dbilldate >= #{dbilldate}</if> + <if test="timestamp != null and timestamp != ''"> and po_order.ts >= #{timestamp}</if> + </trim> + </select> +</mapper> diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/plugin/PoOrderPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/plugin/PoOrderPluginInitializer.java new file mode 100644 index 00000000..2a304941 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/plugin/PoOrderPluginInitializer.java @@ -0,0 +1,102 @@ +package com.hzya.frame.plugin.ncc.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @Description NCC采购订单传发起OA审批 + * @Author xiangerlin + * @Date 2025/6/3 19:01 + **/ +public class PoOrderPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(PoOrderPluginInitializer.class); + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "PoOrderPluginInitializer"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "NCC采购订单传OA"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "NCC采购订单传OA"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + try { + logger.info("======开始执行NCC采购订单传OA插件======"); + }catch (Exception e){ + logger.info("======执行NCC采购订单传OA插件出错======{}",e.getMessage()); + return BaseResult.getFailureMessageEntity("请NCC采购订单传OA插件执行失败",e.getMessage()); + } + return BaseResult.getSuccessMessageEntity("NCC采购订单传OA插件执行成功"); + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderBService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderBService.java new file mode 100644 index 00000000..297d0814 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderBService.java @@ -0,0 +1,24 @@ +package com.hzya.frame.plugin.ncc.service; + + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.plugin.ncc.entity.POrderBEntity; + +import java.util.List; + +/** + * @description: 采购订单子表 service + * @tableName: po_order_b + * @entityName: POrderBEntity + * @author: code_generator + * @history: 1.0 + */ +public interface IPOrderBService extends IBaseService<POrderBEntity,String> { + + /** + * 查询采购订单子表 + * @param entity + * @return + */ + List<POrderBEntity> queryList(POrderBEntity entity); +} \ No newline at end of file diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderHService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderHService.java new file mode 100644 index 00000000..fec9123b --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPOrderHService.java @@ -0,0 +1,24 @@ +package com.hzya.frame.plugin.ncc.service; + + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.plugin.ncc.entity.POrderHEntity; + +import java.util.List; + +/** + * @description: 采购订单主表 service + * @tableName: po_order + * @entityName: POrderHEntity + * @author: code_generator + * @history: 1.0 + */ +public interface IPOrderHService extends IBaseService<POrderHEntity,String> { + + /** + * 查询采购订单主表 + * @param entity + * @return + */ + List<POrderHEntity> queryList(POrderHEntity entity); +} \ No newline at end of file diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPoOrderPluginInService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPoOrderPluginInService.java new file mode 100644 index 00000000..da120eb2 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/IPoOrderPluginInService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.ncc.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * @Description NCC采购订单 + * @Author xiangerlin + * @Date 2025/6/3 19:09 + **/ +public interface IPoOrderPluginInService { + + /** + * NCC采购订单传到OA走审批流 + * @param requestJson + * @return + */ + JsonResultEntity sync2oa(JSONObject requestJson); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderBServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderBServiceImpl.java new file mode 100644 index 00000000..eb4d80a8 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderBServiceImpl.java @@ -0,0 +1,44 @@ +package com.hzya.frame.plugin.ncc.service.impl; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.plugin.ncc.dao.IPOrderBDao; +import com.hzya.frame.plugin.ncc.entity.POrderBEntity; +import com.hzya.frame.plugin.ncc.service.IPOrderBService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: 采购订单子表 service + * @tableName: po_order_b + * @entityName: POrderBEntity + * @author: code_generator + * @history: 1.0 + */ +@Service(value="po_order_bService") +public class POrderBServiceImpl extends BaseService<POrderBEntity,String> implements IPOrderBService { + + protected IPOrderBDao porderbDao; + + @Autowired + public void setPOrderBDao(IPOrderBDao dao) { + this.porderbDao = dao; + this.dao=dao; + } + + /** + * 查询采购订单子表 + * + * @param entity + * @return + */ + @DS(value = "#entity.dataSourceCode") + @Override + public List<POrderBEntity> queryList(POrderBEntity entity) { + List<POrderBEntity> queryList = porderbDao.query(entity); + return queryList; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderHServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderHServiceImpl.java new file mode 100644 index 00000000..5f64606c --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/POrderHServiceImpl.java @@ -0,0 +1,53 @@ +package com.hzya.frame.plugin.ncc.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.lang.Assert; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.plugin.ncc.dao.IPOrderHDao; +import com.hzya.frame.plugin.ncc.entity.POrderHEntity; +import com.hzya.frame.plugin.ncc.service.IPOrderHService; +import org.apache.ibatis.session.SqlSession; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: 采购订单主表 service + * @tableName: po_order + * @entityName: POrderHEntity + * @author: code_generator + * @history: 1.0 + */ +@Service(value="po_orderService") +public class POrderHServiceImpl extends BaseService<POrderHEntity,String> implements IPOrderHService { + + protected IPOrderHDao porderhDao; + + + @Autowired + public void setPOrderHDao(IPOrderHDao dao) { + + this.porderhDao = dao; + this.dao=dao; + } + + /** + * 查询采购订单主表 + * + * @param entity + * @return + */ + @DS(value = "#entity.dataSourceCode") + @Override + public List<POrderHEntity> queryList(POrderHEntity entity) { + List<POrderHEntity> queryList = porderhDao.query(entity); + return queryList; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/PoOrderPluginInServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/PoOrderPluginInServiceImpl.java new file mode 100644 index 00000000..06fab256 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ncc/service/impl/PoOrderPluginInServiceImpl.java @@ -0,0 +1,104 @@ +package com.hzya.frame.plugin.ncc.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.plugin.ncc.service.IPOrderBService; +import com.hzya.frame.plugin.ncc.service.IPOrderHService; +import com.hzya.frame.plugin.ncc.service.IPoOrderPluginInService; +import com.hzya.frame.seeyon.util.OARestUtil; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import java.util.LinkedList; +import java.util.List; + +/** + * @Description NCC采购订单 + * @Author xiangerlin + * @Date 2025/6/3 19:09 + **/ +public class PoOrderPluginInServiceImpl implements IPoOrderPluginInService { + + Logger logger = LoggerFactory.getLogger(PoOrderPluginInServiceImpl.class); + @Autowired + private IPOrderHService pOrderHService; + @Autowired + private IPOrderBService pOrderBService; + @Value("${zt.url}") + private String interfaceUrl; + @Autowired + private OARestUtil oaRestUtil; + /** + * NCC采购订单传到OA走审批流 + * + * @param requestJson + * @return + */ + @Override + public JsonResultEntity sync2oa(JSONObject requestJson) { + //数据源编码 + String datasourceCode = requestJson.getString("sourceCode"); + if (StrUtil.isNotEmpty(datasourceCode)){ + //查NCC单据 + //组装参数 + JSONObject formmain_0256 = new JSONObject();//主表数据 + List<JSONObject> formson_0257_list = new LinkedList<>();//子表数据 + formmain_0256.put("采购组织",""); + formmain_0256.put("订单编号",""); + formmain_0256.put("订单日期",""); + formmain_0256.put("供应商",""); + formmain_0256.put("采购员",""); + formmain_0256.put("开票供应商",""); + formmain_0256.put("付款协议",""); + formmain_0256.put("发起人",""); + formmain_0256.put("单据状态",""); + formmain_0256.put("备注",""); + formmain_0256.put("补货",""); + formmain_0256.put("退货",""); + formmain_0256.put("总数量",""); + formmain_0256.put("总价税合计",""); + formmain_0256.put("币种",""); + formmain_0256.put("退货退库基于原订单补货",""); + formmain_0256.put("最终关闭",""); + formmain_0256.put("采购部门",""); + formmain_0256.put("订单类型",""); + //子表 + JSONObject formson_0257 = new JSONObject(); + formson_0257.put("收货库存组织",""); + formson_0257.put("行号",""); + formson_0257.put("物料编码",""); + formson_0257.put("物料名称",""); + formson_0257.put("单位",""); + formson_0257.put("数量",""); + formson_0257.put("换算率",""); + formson_0257.put("无税单价",""); + formson_0257.put("含税单价",""); + formson_0257.put("集团本币无税金额",""); + formson_0257.put("集团本币价税合计",""); + formson_0257.put("计划收货日期",""); + formson_0257.put("收货仓库",""); + formson_0257.put("税率",""); + formson_0257_list.add(formson_0257); + String param = oaRestUtil.processParamValueOf(formmain_0256, formson_0257_list, "模板编号", "formmain_0256", "formson_0257"); + String token = oaRestUtil.getToken("hzyaRest", "8000640001"); + logger.info("NCC发起OA采购订单请求参数{}",param); + //调用OA接口 + String result = HttpRequest.post(interfaceUrl) + .header("token",token)// token + .header("appId","800064")// 建辉OA应用 + .header("apiCode","8000640000")//流程表单接口 + .header("publicKey","ZJYAAr9TeFduBYu7uJeie2KYdQsnBaEYZHmOjPWMMVZmzelCe7eDIk+3zDUT+v578prj")//NCC应用key + .header("secretKey","f4SSnYcDQmdkwwuGJd2+934q6lM1NnUm5dmOw/4Wvy2mo6PgkKsI/drXYyyLWQCaj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//NCC应用密钥 + .body(param).execute().body(); + // JsonResultEntity resultEntity = (JsonResultEntity) oerDjmlService.handleOerDjml(paramJSON); + // logger.info("保存GRPU8响应参数:{}",JSONObject.toJSON(resultEntity)); + logger.info("NCC发起OA采购订单响应参数:{}",result); + //更新NCC推送状态 + } + return null; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PayResultPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PayResultPluginInitializer.java new file mode 100644 index 00000000..a3a24a08 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PayResultPluginInitializer.java @@ -0,0 +1,102 @@ +package com.hzya.frame.plugin.oa.payment.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.oa.payment.service.IPaymentPluginService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description 查询交易结果 + * @Author xiangerlin + * @Date 2025/5/29 17:19 + **/ +public class PayResultPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(PayResultPluginInitializer.class); + @Autowired + private IPaymentPluginService paymentPluginService; + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "PayResultPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "查询CBS交易结果"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "查询CBS交易结果"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "0"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + logger.info("======开始查询CBS交易结果======"); + paymentPluginService.payRequest(requestJson); + return BaseResult.getSuccessMessageEntity("执行成功"); + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PaymentRequestPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PaymentRequestPluginInitializer.java new file mode 100644 index 00000000..2ba565fb --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/plugin/PaymentRequestPluginInitializer.java @@ -0,0 +1,107 @@ +package com.hzya.frame.plugin.oa.payment.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.oa.payment.service.IPaymentPluginService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description 支付申请 + * @Author xiangerlin + * @Date 2025/5/29 15:40 + **/ +public class PaymentRequestPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(PaymentRequestPluginInitializer.class); + @Autowired + private IPaymentPluginService paymentPluginService; + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "PaymentRequestPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "OA支付申请CBS插件"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "OA支付申请CBS插件"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + try { + logger.info("======开始执行OA支付申请CBS插件======"); + JsonResultEntity jsonResultEntity = paymentPluginService.payRequest(requestJson); + return BaseResult.getSuccessMessageEntity("OA支付申请CBS插件执行成功",jsonResultEntity); + }catch (Exception e){ + logger.info("======执行OA支付申请CBS插件出错======{}",e.getMessage()); + return BaseResult.getFailureMessageEntity("OA支付申请CBS插件执行失败",e.getMessage()); + } + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/IPaymentPluginService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/IPaymentPluginService.java new file mode 100644 index 00000000..764ed390 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/IPaymentPluginService.java @@ -0,0 +1,24 @@ +package com.hzya.frame.plugin.oa.payment.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * @Description 支付申请 + * @Author xiangerlin + * @Date 2025/5/29 15:43 + **/ +public interface IPaymentPluginService { + /** + * 支付申请 + * @param requestJson + * @return + */ + JsonResultEntity payRequest(JSONObject requestJson); + + /** + * 查询交易结果 + * @param requestJson + */ + void queryPayResult(JSONObject requestJson); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/impl/PaymentPluginServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/impl/PaymentPluginServiceImpl.java new file mode 100644 index 00000000..5a315624 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/payment/service/impl/PaymentPluginServiceImpl.java @@ -0,0 +1,181 @@ +package com.hzya.frame.plugin.oa.payment.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.cbs8.dto.req.PayResultRequestDTO; +import com.hzya.frame.cbs8.dto.res.PayResponseDTO; +import com.hzya.frame.cbs8.dto.res.PayResultResDTO; +import com.hzya.frame.cbs8.service.ICbs8Service; +import com.hzya.frame.cbs8.util.CBSUtil; +import com.hzya.frame.cbs8.util.PayState; +import com.hzya.frame.plugin.oa.payment.service.IPaymentPluginService; +import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.cbs8.service.ICbsLogService; +import com.hzya.frame.seeyon.cbs8.service.IPaymentService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * @Description 支付申请 + * @Author xiangerlin + * @Date 2025/5/29 15:43 + **/ +public class PaymentPluginServiceImpl implements IPaymentPluginService { + + Logger logger = LoggerFactory.getLogger(PaymentPluginServiceImpl.class); + @Autowired + private IPaymentService paymentService; + @Autowired + private ICbs8Service cbs8Service; + @Autowired + private ICbsLogService cbsLogService;; + /** + * 支付申请 + * + * @param requestJson + * @return + */ + @Override + public JsonResultEntity payRequest(JSONObject requestJson) { + String headersStr = requestJson.getString("headers");//请求头 + String formAppId = requestJson.getString("formAppId"); + String eventType = requestJson.getString("eventType"); + String id = requestJson.getString("id"); + String dataSouceCode = requestJson.getString("sourceCode"); + Assert.notEmpty(id,"id不能为空"); + Assert.notEmpty(formAppId,"formAppId不能为空"); + Assert.notEmpty(eventType,"eventType不能为空"); + Assert.notEmpty(headersStr,"headers不能为空"); + Assert.notEmpty(dataSouceCode,"数据源编码不能为空"); + logger.info("准备开始查询待支付的单据"); + PaymentEntity paymentEntity = new PaymentEntity(); + paymentEntity.setId(id); + paymentEntity.setDataSourceCode(dataSouceCode); + try { + //查询OA待支付的数据 + List<PaymentEntity> paymentList = paymentService.queryUnpaid(paymentEntity); + if (CollectionUtils.isNotEmpty(paymentList) && paymentList.size() == 1){ + PaymentEntity pay = paymentList.get(0); + PayResponseDTO payResponseDTO = cbs8Service.payApply(JSONObject.toJSONString(pay)); + String payResStr = JSONObject.toJSONString(payResponseDTO); + logger.info("支付申请响应结果:{}",payResStr); + if (null != payResponseDTO){ + //保存支付日志 + saveCbsLog(pay,payResponseDTO,dataSouceCode); + if (payResponseDTO.getSuccessed()) { + return BaseResult.getSuccessMessageEntity("支付申请成功",payResponseDTO.getBusNum()); + }else { + BaseResult.getFailureMessageEntity("支付申请失败:{}",payResStr); + } + }else { + BaseResult.getFailureMessageEntity("支付申请失败"); + } + return BaseResult.getSuccessMessageEntity("",payResponseDTO); + } + }catch (Exception e){ + logger.error("OA单据推CBS支付申请失败:{}",e); + } + + return null; + } + + /** + * 查询交易结果 + * + * @param requestJson + */ + @Override + public void queryPayResult(JSONObject requestJson) { + String dataSourceCode = requestJson.getString("sourceCode"); + Assert.notEmpty(dataSourceCode,"数据源编码不能为空"); + try { + CbsLogEntity cbsLogEntity = new CbsLogEntity(); + cbsLogEntity.setDataSourceCode(dataSourceCode); + List<CbsLogEntity> queryList = cbsLogService.queryInPayment(cbsLogEntity); + if (CollectionUtils.isNotEmpty(queryList)){ + for (CbsLogEntity entity : queryList) { + List<PayResultResDTO> payResultResDTOList = cbs8Service.queryPayResult(new PayResultRequestDTO(entity.getBill_code())); + if (CollectionUtils.isNotEmpty(payResultResDTOList)){ + PayResultResDTO payResultResDTO = payResultResDTOList.get(0); + String status = payResultResDTO.getStatus();//支付申请状态 + String pay_status = payResultResDTO.getPayStatus();//支付状态 + if (!PayState.p.getType().equals(pay_status)){//不等于支付中的时候才更新 + //如果支付状态为空,保存支付申请状态,如果支付状态不为空,则保存支付状态 + PaymentEntity paymentEntity = new PaymentEntity(); + paymentEntity.setOaId(entity.getOa_id()); + paymentEntity.setDataSourceCode(dataSourceCode); + List<PaymentEntity> paymentList = paymentService.query(paymentEntity); + if (CollectionUtils.isNotEmpty(paymentList)){ + paymentEntity = paymentList.get(0); + if (StrUtil.isEmpty(pay_status)) { + paymentEntity.setPayResult(PayState.payStateGetValue(status));//支付申请状态 支付状态和支付申请状态用一个 + } else { + paymentEntity.setPayResult(PayState.payStateGetValue(pay_status));//支付状态 支付状态和支付申请状态用一个 + } + if (StrUtil.isNotEmpty(pay_status) && pay_status.equals(PayState.g.getType())) { + paymentEntity.setPayDate(CBSUtil.convertTimestampToString(payResultResDTO.getPayDate()));//支付时间 + } + paymentService.updatePayState(paymentEntity); + //更新日志表状态 + entity.setPay_state(paymentEntity.getPayResult()); + entity.setApply_state(PayState.payStateGetValue(status)); + entity.setDataSourceCode(dataSourceCode); + cbsLogService.update(entity); + } + } + } + } + } + }catch (Exception e){ + logger.error("查询交易结果出错:{}",e); + } + } + + /** + * 保存支付日志 + * @param entity 支付参数 + * @param payResponseDTO cbs返回参数 + * @param dataSourceCode 数据源编码 + * @throws Exception + */ + private void saveCbsLog(PaymentEntity entity,PayResponseDTO payResponseDTO,String dataSourceCode)throws Exception{ + if (null != payResponseDTO){ + //4. 保存日志 + CbsLogEntity cbsLogEntity = new CbsLogEntity(); + cbsLogEntity.setTitle(entity.getTitle()); + cbsLogEntity.setPay_company(entity.getPayCompany()); + cbsLogEntity.setPayee(entity.getRevAccountName()); + cbsLogEntity.setAmount(entity.getAmount()); + cbsLogEntity.setOa_id(entity.getOaId()); + cbsLogEntity.setBill_code(Convert.toStr(entity.getReferenceNumNew(),entity.getReferenceNum())); + cbsLogEntity.setTab_name_ch(entity.getBillName()); + cbsLogEntity.setTab_name_en(entity.getTableName()); + Boolean successed = payResponseDTO.getSuccessed(); + if (successed){ + cbsLogEntity.setPay_state(PayState.p.getValue()); + cbsLogEntity.setApply_state(PayState.two.getValue()); + cbsLogEntity.setCbs_apply_code(payResponseDTO.getBusNum()); + cbsLogEntity.setSuccessed("true"); + entity.setPayResult(PayState.p.getValue()); + }else { + cbsLogEntity.setPay_state("推送失败"); + cbsLogEntity.setMessage(payResponseDTO.getErrorMsg()); + cbsLogEntity.setSuccessed("false"); + entity.setPayResult("推送失败"); + } + cbsLogEntity.setDataSourceCode(dataSourceCode); + cbsLogService.saveLog(cbsLogEntity); + //5.更新视图的支付状态 + paymentService.updatePayState(entity); + } + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java new file mode 100644 index 00000000..a347bea7 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.plugin.oa.praybill.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; + +/** + * @Description OA请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:06 + **/ +public interface IRequisitionOrderDao extends IBaseDao<RequisitionOrderEntity,String> { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java new file mode 100644 index 00000000..dfa2a381 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.plugin.oa.praybill.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.plugin.oa.praybill.dao.IRequisitionOrderDao; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description OA请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:08 + **/ +@Repository("requisitionOrderDaoImpl") +public class RequisitionOrderDaoImpl extends MybatisGenericDao<RequisitionOrderEntity,String> implements IRequisitionOrderDao { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java new file mode 100644 index 00000000..6d6beb5a --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java @@ -0,0 +1,31 @@ +package com.hzya.frame.plugin.oa.praybill.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description OA请购单 + * + * @Author xiangerlin + * @Date 2025/6/8 17:04 + **/ +public class RequisitionOrderEntity extends BaseEntity { + + private String field0001;//单据号 + private String field0059;//NCC + + public String getField0001() { + return field0001; + } + + public void setField0001(String field0001) { + this.field0001 = field0001; + } + + public String getField0059() { + return field0059; + } + + public void setField0059(String field0059) { + this.field0059 = field0059; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml new file mode 100644 index 00000000..88f2528f --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.plugin.oa.praybill.dao.impl.RequisitionOrderDaoImpl"> + + <update id="entity_update" parameterType="com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity"> + update formmain_0254 set field0059 = #{field0059} where id = #{id} + </update> +</mapper> diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java new file mode 100644 index 00000000..480b81ba --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java @@ -0,0 +1,108 @@ +package com.hzya.frame.plugin.oa.praybill.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderPluginService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description 请购单传NCC + * @Author xiangerlin + * @Date 2025/5/21 16:50 + **/ +public class RequisitionOrderPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(RequisitionOrderPluginInitializer.class); + @Autowired + private IRequisitionOrderPluginService requisitionOrderPluginService; + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "RequisitionOrderPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "请购单传NCC插件"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "请购单传NCC插件"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + try { + logger.info("======开始执行请购单传NCC插件======{}",JSONObject.toJSONString(requestJson)); + requisitionOrderPluginService.sync2ncc(requestJson); + }catch (Exception e){ + e.printStackTrace(); + logger.info("======执行请购单传NCC插件出错======{}",e.getMessage()); + return BaseResult.getFailureMessageEntity("请购单传NCC插件执行失败",e.getMessage()); + } + return BaseResult.getSuccessMessageEntity("请购单传NCC插件执行成功"); + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderPluginService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderPluginService.java new file mode 100644 index 00000000..893c97ad --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderPluginService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.oa.praybill.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * @Description 请购单传nCC + * @Author xiangerlin + * @Date 2025/5/21 17:44 + **/ +public interface IRequisitionOrderPluginService { + + /** + * 请购单同步到ncc + * @param requestJson + * @return + */ + JsonResultEntity sync2ncc(JSONObject requestJson); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java new file mode 100644 index 00000000..3a09ff4c --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.oa.praybill.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; + +/** + * @Description OA 请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:10 + **/ +public interface IRequisitionOrderService extends IBaseService<RequisitionOrderEntity,String> { + + /** + * 更新OA单据 + * @param entity + * @return + */ + int updateOrder(RequisitionOrderEntity entity); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java new file mode 100644 index 00000000..68710684 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java @@ -0,0 +1,299 @@ +package com.hzya.frame.plugin.oa.praybill.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderPluginService; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderService; +import com.hzya.frame.seeyon.entity.CollAttachmentResDTO; +import com.hzya.frame.seeyon.enums.ColEventTypeEnum; +import com.hzya.frame.seeyon.util.OARestUtil; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.uuid.UUIDUtils; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import java.io.File; +import java.net.URLDecoder; +import java.util.Base64; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; + +/** + * @Description OA请购单传NCC + * @Author xiangerlin + * @Date 2025/5/21 17:44 + **/ +public class RequisitionOrderPluginServiceImpl implements IRequisitionOrderPluginService { + @Value("${zt.url}") + private String baseUrl; + @Autowired + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IRequisitionOrderService requisitionOrderService; + @Autowired + private OARestUtil oaRestUtil; + Logger logger = LoggerFactory.getLogger(IRequisitionOrderPluginService.class); + /** + * 请购单同步到ncc + * + * @param requestJson + * @return + */ + @Override + public JsonResultEntity sync2ncc(JSONObject requestJson) { + //数据源编码 + String datasourceCode = requestJson.getString("sourceCode"); + String task_living_details_id = requestJson.getString("integration_task_living_details_id"); + String headersStr = requestJson.getString("headers");//请求头 + String eventType = requestJson.getString("eventType"); + String summaryId = requestJson.getString("summaryId"); + JSONObject headers = requestJson.getJSONObject("headers"); + Assert.notEmpty(eventType,"eventType不能为空"); + Assert.notEmpty(headersStr,"headers不能为空"); + String formmainTableName = headers.getString("formmainTableName"); + String forsonTableName = headers.getString("forsonTableName"); + String fileApiCode = headers.getString("fileApiCode"); + JSONObject jsonStrObj = requestJson.getJSONObject("jsonStr"); + JSONObject businessData = jsonStrObj.getJSONObject("businessDataStr"); + JSONObject formmainData = businessData.getJSONObject(formmainTableName); + JSONArray forsonData = businessData.getJSONArray(forsonTableName); + //流程结束 + if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){ + //组装请购单报文 + JSONArray reqParams = praybillVaueOf(headers, formmainData, forsonData); + String req = JSONObject.toJSONString(reqParams); + logger.info("======OA请购单传NCC请求参数:{}======",req); + String result = HttpRequest.post(baseUrl) + .header("appId", "800065")//NCC请购单接口 + .header("apiCode", "8000650000")//NCC应用 + .header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥 + .header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥 + .body(req)//表单内容 + .timeout(30000)//超时,毫秒 + .execute().body(); + logger.info("======OA请购单传NCC响应参数:{}======",result); + if (StrUtil.isNotEmpty(result)){ + JSONObject resultJson = JSONObject.parseObject(result); + Boolean flag = resultJson.getBoolean("flag"); + //保存日志 + IntegrationTaskLivingDetailsEntity taskLivingDetail = new IntegrationTaskLivingDetailsEntity(); + Date now = new Date(); + taskLivingDetail.setCreate_time(now); + taskLivingDetail.setModify_time(now); + taskLivingDetail.setRootAppPk(formmainData.getString("id")); + taskLivingDetail.setRootAppBill(formmainData.getString("field0001")); + taskLivingDetail.setPluginId("RequisitionOrderPlugin"); + taskLivingDetail.setRootAppNewData(req); + taskLivingDetail.setNewTransmitInfo(result); + taskLivingDetail.setNewPushDate(now); + saveLog(task_living_details_id,flag,taskLivingDetail); + //回写NCC单号到OA单据 + JSONObject attribute = resultJson.getJSONObject("attribute"); + if (null != attribute){ + String code = attribute.getString("code"); + if ("success".equals(code)){ + JSONObject data = attribute.getJSONObject("data"); + if (null != data){ + JSONObject headVO = data.getJSONObject("headVO"); + if (null != headVO){ + String vbillcode = headVO.getString("code"); + String pk_bill = headVO.getString("id"); + logger.info("======vbillcode======:{}",vbillcode); + RequisitionOrderEntity requisitionOrderEntity = new RequisitionOrderEntity(); + requisitionOrderEntity.setField0059(vbillcode); + requisitionOrderEntity.setDataSourceCode(datasourceCode); + requisitionOrderEntity.setId(formmainData.getString("id")); + requisitionOrderService.updateOrder(requisitionOrderEntity); + //下载OA附件上传到NCC + try { + uploadFile(summaryId, headers, fileApiCode, pk_bill); + }catch (Exception e){ + logger.error("下载OA附件上传到NCC出错:{}",e); + } + } + } + } + } + } + } + return BaseResult.getSuccessMessageEntity("请购单推NCC成功"); + } + + /** + * 下载OA附件上传到NCC + * @param summaryId + * @param headers + * @param fileApiCode + * @param pk_bill + */ + public void uploadFile(String summaryId, JSONObject headers, String fileApiCode, String pk_bill) { + String token = oaRestUtil.getToken(null, fileApiCode); + List<CollAttachmentResDTO> collAttachmentList = oaRestUtil.getColAttachments(summaryId, "0", fileApiCode, token); + if (CollectionUtils.isNotEmpty(collAttachmentList)){ + //获取OA token + for (CollAttachmentResDTO collAttachment : collAttachmentList) { + try { + String fileName = URLDecoder.decode(collAttachment.getFilename(), "UTF-8"); + byte[] bytes = oaRestUtil.downloadFileBytes("hzya", fileApiCode, collAttachment.getFileUrl(), fileName, token); + String base64File = Base64.getEncoder().encodeToString(bytes); + JSONObject fileParams = new JSONObject(); + fileParams.put("creator", headers.getString("creator")); + fileParams.put("pk_bill", pk_bill); + fileParams.put("filename",fileName); + fileParams.put("file",base64File); + String result = HttpRequest.post(baseUrl) + .header("appId", "800065")//NCC应用 + .header("apiCode", "8000650001")//NCC附件上传接口 + .header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥 + .header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥 + .body(fileParams.toString())//表单内容 + .timeout(30000)//超时,毫秒 + .execute().body(); + logger.info("======OA请购单附件上传到NCC响应参数:{}======",result); + }catch(Exception e){ + e.printStackTrace(); + logger.error("下载OA附件出错:{}",e); + } + } + } + } + + /** + * 组装请购单报文 + * @param headers 请求头 + * @param formmainData 主表数据 + * @param forsonData 子表数据 + * @return + */ + @NotNull + private static JSONArray praybillVaueOf(JSONObject headers, JSONObject formmainData, JSONArray forsonData) { + JSONObject paramObj = new JSONObject(); + JSONObject praybill = new JSONObject(); + paramObj.put("head", praybill); + praybill.put("pk_group", formmainData.getString("field0058"));//集团 + praybill.put("pk_org", formmainData.getString("field0027"));//库存组织 + praybill.put("pk_org_v", formmainData.getString("field0051"));//库存组织v + //praybill.put("vbillcode",formmainData.getString("field0001"));//请购单号 + praybill.put("dbilldate", formmainData.getString("field0004"));//请购日期 + boolean bsctype = false; + if ("1".equals(formmainData.getString("field0009"))){ + bsctype = true; + } + praybill.put("bsctype",bsctype);//委外 + praybill.put("pk_planpsn", formmainData.getString("field0030"));//计划员 + praybill.put("pk_plandept", formmainData.getString("field0052"));//计划部门 + praybill.put("pk_plandept_v", formmainData.getString("field0053"));//计划部门v + praybill.put("vmemo", formmainData.getString("field0013"));//备注 + praybill.put("fbillstatus", headers.getString("fbillstatus"));//单据状态 + praybill.put("bdirecttransit",false);//zhiyun + praybill.put("billmaker", headers.getString("billmaker"));//制单人 yonyou99 + praybill.put("dmakedate", formmainData.getString("field0004"));//制单日期 + praybill.put("ctrantypeid", formmainData.getString("field0039"));//请购类型 + praybill.put("bislatest", true);//最新版本 + praybill.put("vdef1", formmainData.getString("field0037")); + praybill.put("creator", headers.getString("creator"));// + praybill.put("fpraysource", headers.getString("fpraysource"));// + praybill.put("ccurrencyid", headers.getString("ccurrencyid"));// + praybill.put("nversion", headers.getString("nversion"));// + praybill.put("nversion", headers.getString("nversion"));// + List<JSONObject> parybillList = new LinkedList<>(); + paramObj.put("body",parybillList); + String pk_org = formmainData.getString("field0027"); + String pk_org_v = formmainData.getString("field0051"); + for(int i = 0; i< forsonData.size(); i++){ + JSONObject forson = forsonData.getJSONObject(i); + JSONObject praybillB = new JSONObject(); + praybillB.put("crowno",forson.getString("field0014")); + praybillB.put("nnum",forson.getString("field0020")); + praybillB.put("pk_org",pk_org); + praybillB.put("pk_org_v",pk_org_v); + praybillB.put("vchangerate","1"); + praybillB.put("pk_srcmaterial",forson.getString("field0054"));//物料pk带版本的那个 + praybillB.put("pk_material",forson.getString("field0031"));//物料pk + praybillB.put("castunitid",forson.getString("field0055"));//计量单位pk + praybillB.put("cunitid",forson.getString("field0055"));//计量单位pk + praybillB.put("nastnum",forson.getString("field0020"));//数量 + praybillB.put("dreqdate",forson.getString("field0021"));//需求日期 + praybillB.put("dsuggestdate",forson.getString("field0022"));//建议订货日期 + praybillB.put("pk_purchaseorg",pk_org);//采购组织 + praybillB.put("pk_purchaseorg_v",pk_org_v);//采购组织 带版本的那个 + praybillB.put("pk_suggestsupplier",forson.getString("field0056"));//建议供应商 + praybillB.put("pk_suggestsupplier_v",forson.getString("field0056"));//建议供应商 + praybillB.put("pk_reqstoorg",pk_org); + praybillB.put("pk_reqstoorg_v",pk_org_v); + praybillB.put("pk_group", formmainData.getString("field0058")); + praybillB.put("browclose","N");//行关闭 + praybillB.put("vbdef1",forson.getString("field0032"));//现存量 + praybillB.put("vbdef2",forson.getString("field0033"));//在途量 + praybillB.put("vbdef3",forson.getString("field0035"));//月度消耗 + praybillB.put("vbdef4",forson.getString("field0034"));//安全库存 + parybillList.add(praybillB); + } + //调用NCC接口 + JSONArray reqParams = new JSONArray(); + reqParams.add(paramObj); + return reqParams; + } + + public static void main(String[] args) { + String result = "{\"msg\":\"转发失败\",\"type\":null,\"flag\":false,\"status\":\"500\",\"attribute\":{\"code\":\"success\",\"data\":{\"bodyVOList\":[{\"rowno\":\"1\",\"pk_material\":\"1001P1100000000IT34Q\",\"id\":\"1001A3100000001B2UOG\"}],\"headVO\":{\"code\":\"QG2025060800000182\",\"id\":\"1001A3100000001B2UOF\",\"vtrantypeid\":\"1001P1100000000IR21W\"}},\"message\":\"提示:========NCC-请购单保存提交《成功》!!!========。单据信息:《id》 = 1001A3100000001B2UOF ,《code》 = QG2025060800000182\"}}"; + JSONObject resultJson = JSONObject.parseObject(result); + JSONObject attribute = resultJson.getJSONObject("attribute"); + if (null != attribute){ + String code = attribute.getString("code"); + if ("success".equals(code)){ + JSONObject data = attribute.getJSONObject("data"); + if (null != data){ + JSONObject headVO = data.getJSONObject("headVO"); + if (null != headVO){ + String vbillcode = headVO.getString("code"); + System.out.println(vbillcode); + } + } + } + } + JSONObject headers =new JSONObject(); + headers.put("creator","1001P1100000000NUULI"); + RequisitionOrderPluginServiceImpl service = new RequisitionOrderPluginServiceImpl(); + service.uploadFile("-333447786976688302",headers,"8000640003","1001A3100000001B4COB"); + } + //保存日志 + public void saveLog(String integration_task_living_details_id, Boolean flag, IntegrationTaskLivingDetailsEntity taskLivingDetail){ + try { + //判断,成功调用这个方法 + if (StrUtil.isEmpty(integration_task_living_details_id)){ + if (flag){ + taskLivingDetailsService.saveLogToSuccess(taskLivingDetail); + }else { + //失败 调用这个方法 + taskLivingDetailsService.saveLogToFail(taskLivingDetail); + } + }else { + taskLivingDetail.setId(integration_task_living_details_id); + if (flag){ + //如果是重试 成功调这个方法 + taskLivingDetailsService.saveLogFailToSuccess(taskLivingDetail); + }else { + //如果是重试 失败调这个方法 + taskLivingDetailsService.updateLogFailToSuccess(taskLivingDetail); + } + } + }catch (Exception e){ + logger.error("保存日志出错:{}",e); + } + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderServiceImpl.java new file mode 100644 index 00000000..468fdf81 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderServiceImpl.java @@ -0,0 +1,42 @@ +package com.hzya.frame.plugin.oa.praybill.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.plugin.oa.praybill.dao.IRequisitionOrderDao; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description OA请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:11 + **/ +@Service(value = "requisitionOrderServiceImpl") +public class RequisitionOrderServiceImpl extends BaseService<RequisitionOrderEntity,String> implements IRequisitionOrderService { + + private IRequisitionOrderDao requisitionOrderDao; + + @Autowired + public void setRequisitionOrderDao(IRequisitionOrderDao dao) { + this.requisitionOrderDao = dao; + this.dao = dao; + } + + /** + * 更新OA单据 + * + * @param entity + * @return + */ + @DS(value = "#entity.dataSourceCode") + @Override + public int updateOrder(RequisitionOrderEntity entity) { + if (null != entity && StrUtil.isNotEmpty(entity.getId())){ + requisitionOrderDao.update(entity); + } + return 0; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/pushMessage/plugin/PushMessagePluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/pushMessage/plugin/PushMessagePluginInitializer.java index 3e0a996f..3bc07a67 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/pushMessage/plugin/PushMessagePluginInitializer.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/pushMessage/plugin/PushMessagePluginInitializer.java @@ -62,6 +62,7 @@ public class PushMessagePluginInitializer extends PluginBaseEntity { public JsonResultEntity executeBusiness(JSONObject requestJson) { try { logger.info("======开始执行定时消息推送========"); + //目前只查询一周内的异常日志进行消息推送 List<SysPushMessageEntity> list = sysPushMessageDao.getAll(); for(SysPushMessageEntity entity : list){ diff --git a/base-buildpackage/src/main/resources/application-jianhui.yml b/base-buildpackage/src/main/resources/application-jianhui.yml new file mode 100644 index 00000000..c96136ce --- /dev/null +++ b/base-buildpackage/src/main/resources/application-jianhui.yml @@ -0,0 +1,29 @@ +#######################本地环境####################### +logging: + #日志级别 指定目录级别 + level: + root: info + encodings: UTF-8 + file: +# 日志保存路径 + path: D:\yongansystem\kangarooDataCenter\v3\logs +spring: + datasource: + dynamic: + datasource: + master: +# url: jdbc:mysql://ufidahz.com.cn:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true +# username: root +# password: bd993088e8a7c3dc5f44441617f9b4bf +# driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 + url: jdbc:mysql://127.0.0.1:3307/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true + username: root + password: bd993088e8a7c3dc5f44441617f9b4bf + driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 +savefile: + # 文件保存路径 + path: D:\yongansystem\kangarooDataCenter\v3\logs + tomcatpath: D:\yongansystem\kangarooDataCenter\v3\tomcat + pluginpath: D:\yongansystem\kangarooDataCenter\v3\plugin +zt: + url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface diff --git a/base-buildpackage/src/main/resources/application-llg.yml b/base-buildpackage/src/main/resources/application-llg.yml index 5953ca0d..11273505 100644 --- a/base-buildpackage/src/main/resources/application-llg.yml +++ b/base-buildpackage/src/main/resources/application-llg.yml @@ -45,7 +45,7 @@ savefile: tomcatpath: /Users/apple/Desktop/log/local pluginpath: /Users/apple/Desktop/log/local zt: - url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface + url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface cbs8: appId: 1P4AGrpz appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a @@ -59,4 +59,24 @@ cbs8: #电子回单下载临时存放位置 elec_path: /Users/xiangerlin/Downloads/ OA: - data_source_code: yc_oa \ No newline at end of file + data_source_code: yc_oa +server: + port: 10086 + +# mysqldump -d mylm -hhzya.ufyct.com -p9096 -uroot -phzya1314 >%dirName%\table_view.sql + + +database: + databaseName: businesscenter + host: 192.168.2.237 + port: 3306 + username: root + password: hzya@1314 + filePase: /Users/apple/Desktop/log + fileName: data.sql +#sftp: +# host: 192.168.2.237 +# port: 9091 +# username: cs237 +# password: hzya@1314 +# filePase: /databaseBack diff --git a/base-buildpackage/src/main/resources/application-xel.yml b/base-buildpackage/src/main/resources/application-xel.yml index e53ca4c4..9b81c4da 100644 --- a/base-buildpackage/src/main/resources/application-xel.yml +++ b/base-buildpackage/src/main/resources/application-xel.yml @@ -14,22 +14,24 @@ spring: master: url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true username: root - password: 62e4295b615a30dbf3b8ee96f41c820b + password: bd993088e8a7c3dc5f44441617f9b4bf driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 savefile: # 文件保存路径 path: /Users/xiangerlin/work/app/file/dev + pluginpath: /Users/xiangerlin/work/app/file/dev + tomcatpath: /Users/xiangerlin/work/app/file/dev +zt: + url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface cbs8: appId: 1P4AGrpz appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a url: https://cbs8-openapi-reprd.csuat.cmburl.cn - # 测试用这个 这个是银行给的,和下面的公钥不是一对密钥 + # 测试用这个 这个是银行给的,和下面的公钥不是一对密钥 ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44 # 这个私钥到时候上传到cbs,和下面到是同一对 #ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46 ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde - cbs_public_key: 0469146F06BF3B01236E84632441E826F3067A6B93BC3839C836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185 + cbs_public_key: 0469146F06BF3B01236E84632441E826 #电子回单下载临时存放位置 - elec_path: /Users/xiangerlin/Downloads/ -OA: - data_source_code: yc-test + elec_path: /Users/xiangerlin/Downloads/ \ No newline at end of file diff --git a/base-buildpackage/src/main/resources/application-zqtlocal.yml b/base-buildpackage/src/main/resources/application-zqtlocal.yml index ffff00a3..5aeac683 100644 --- a/base-buildpackage/src/main/resources/application-zqtlocal.yml +++ b/base-buildpackage/src/main/resources/application-zqtlocal.yml @@ -36,4 +36,4 @@ cbs8: OA: data_source_code: yc_oa zt: - url: http://127.0.0.1:9082/kangarooDataCenterV3/entranceController/externalCallInterface \ No newline at end of file + url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface \ No newline at end of file diff --git a/base-buildpackage/src/main/resources/application.yml b/base-buildpackage/src/main/resources/application.yml index 7b481a9d..b87e5bf7 100644 --- a/base-buildpackage/src/main/resources/application.yml +++ b/base-buildpackage/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 9999 + port: 10086 servlet: context-path: /kangarooDataCenterV3 localIP: 127.0.0.1 @@ -93,7 +93,7 @@ mybatis-plus: db-config: id-type: auto # 主键策略 zt: - url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface + url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface #JimuReport[minidao配置] minidao : base-package: org.jeecg.modules.jmreport.desreport.dao* @@ -126,3 +126,17 @@ jeecg : bucketName: ?? data: use: true +database: + databaseName: + host: + port: + username: + password: + filePase: + fileName: +sftp: + host: + port: + username: + password: + filePase: \ No newline at end of file diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/pluginCfg.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/pluginCfg.xml new file mode 100644 index 00000000..774971d0 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/pluginCfg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<plugin> +<id>BackUpDatabasePlugin</id> +<name>BackUpDatabasePlugin插件</name> +<category>20241021</category> +</plugin> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/spring/spring-buildpackage-plugin.xml new file mode 100644 index 00000000..29896996 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/BackUpDatabase/spring/spring-buildpackage-plugin.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> +<bean name="backUpDatabaseInitializer" class="com.hzya.frame.plugin.BackUpDatabase.plugin.BackUpDatabaseInitializer" /> +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/pluginCfg.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/pluginCfg.xml new file mode 100644 index 00000000..76cf338f --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/pluginCfg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<plugin> +<id>JHNCCPlugin</id> +<name>建辉NCC插件</name> +<category>202505210001</category> +</plugin> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-dao.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-dao.xml new file mode 100644 index 00000000..f857d7fc --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-dao.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-plugin.xml new file mode 100644 index 00000000..c37cfb36 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-plugin.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> +<bean name="requisitionOrderPluginInitializer" class="com.hzya.frame.plugin.oa.praybill.plugin.RequisitionOrderPluginInitializer" /> +<bean name="poOrderPluginInitializer" class="com.hzya.frame.plugin.ncc.plugin.PoOrderPluginInitializer" /> +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-service.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-service.xml new file mode 100644 index 00000000..f013d0cd --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/ncc/spring/spring-buildpackage-service.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> + <bean name="requisitionOrderPluginServiceImpl" class="com.hzya.frame.plugin.oa.praybill.service.impl.RequisitionOrderPluginServiceImpl" /> + <bean name="poOrderPluginInServiceImpl" class="com.hzya.frame.plugin.ncc.service.impl.PoOrderPluginInServiceImpl" /> +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/pluginCfg.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/pluginCfg.xml new file mode 100644 index 00000000..294b6b5e --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/pluginCfg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<plugin> +<id>JHOAPlugin</id> +<name>建辉OA插件</name> +<category>202505230001</category> +</plugin> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-dao.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-dao.xml new file mode 100644 index 00000000..c7c87be7 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-dao.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> + +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-plugin.xml new file mode 100644 index 00000000..18b699e5 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-plugin.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> +<bean name="paymentRequestPluginInitializer" class="com.hzya.frame.plugin.oa.payment.plugin.PaymentRequestPluginInitializer" /> +<bean name="payResultPluginInitializer" class="com.hzya.frame.plugin.oa.payment.plugin.PayResultPluginInitializer" /> +</beans> diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-service.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-service.xml new file mode 100644 index 00000000..0a778465 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/oa/payment/spring/spring-buildpackage-service.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> +<beans default-autowire="byName"> + <bean name="paymentRequestPluginServiceImpl" class="com.hzya.frame.plugin.oa.payment.service.impl.PaymentPluginServiceImpl" /> +</beans> diff --git a/base-buildpackage/src/test/java/com/hzya/frame/Test1.java b/base-buildpackage/src/test/java/com/hzya/frame/Test1.java new file mode 100644 index 00000000..3bc330ac --- /dev/null +++ b/base-buildpackage/src/test/java/com/hzya/frame/Test1.java @@ -0,0 +1,30 @@ +package com.hzya.frame; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.plugin.oa.praybill.service.impl.RequisitionOrderPluginServiceImpl; +import com.hzya.frame.util.AESUtil; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +/** + * @Description + * @Author xiangerlin + * @Date 2025/6/11 10:20 + **/ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {WebappApplication.class}) +public class Test1 { + + @Autowired + private RequisitionOrderPluginServiceImpl requisitionOrderPluginService; + @Test + public void test01() { + JSONObject headers =new JSONObject(); + headers.put("creator","1001P1100000000NUULI"); + RequisitionOrderPluginServiceImpl service = new RequisitionOrderPluginServiceImpl(); + requisitionOrderPluginService.uploadFile("-333447786976688302",headers,"8000640001","1001A3100000001B4COB"); + } +} diff --git a/base-buildpackage/src/test/java/com/hzya/frame/temButtom.java b/base-buildpackage/src/test/java/com/hzya/frame/temButtom.java index 68701ee7..96cdde01 100644 --- a/base-buildpackage/src/test/java/com/hzya/frame/temButtom.java +++ b/base-buildpackage/src/test/java/com/hzya/frame/temButtom.java @@ -1,30 +1,146 @@ package com.hzya.frame; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; import com.hzya.frame.util.AESUtil; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * @ClassName dsasas * @Description * @Author llg * Date 2023/7/16 8:18 上午 */ -@RunWith(SpringRunner.class) -@SpringBootTest(classes = {WebappApplication.class}) +//@RunWith(SpringRunner.class) +//@SpringBootTest(classes = {WebappApplication.class}) public class temButtom { @Test public void test01() { - String a = AESUtil.encrypt("hzya@1314"); + String a = AESUtil.encrypt("hzya1314"); System.out.println(a); String b = AESUtil.decrypt("62e4295b615a30dbf3b8ee96f41c820b"); System.out.println(b); } + @Test + public void test02() { +// 1056162015172640840 -7858803986346327947 3178176833471791293 合同评审-待办测试(bdmanager 2024-10-22 16:45) 7743552636545550897 bdmanager 18058147870 pending start success 新增成功! +// success 更新待办为已办成功! +// task7803207f54ff047d6008dcce31c2628f 新增成功! +// 2024-10-24 2024-10-24 + + String phone ="19357235324"; + String taskid ="task8b0c7ca72439bc9b0c1c89e8866c8275"; + //token + Map<String, String> headers = new HashMap<>(); + String token ="https://oapi.dingtalk.com/gettoken?appkey=dingxewtjaserj292ggu&appsecret=DuRw6EEEvhGXfr6Q8wN_x4025qKjrffIGCXF9KeCKKIID-LVSsR6_8KWMei6sug1"; + String body = sendGet(token,headers); + JSONObject tokenobject = JSONObject.parseObject(body); + + //钉钉id + headers = new HashMap<>(); + //https://oapi.dingtalk.com/user/get_by_mobile?access_token=9abd3996cb103ba48dd8c69fea5473e7&mobile=15700100840 + String ddid ="https://oapi.dingtalk.com/user/get_by_mobile?access_token="+tokenobject.get("access_token")+"&mobile="+phone; + String ddidbody = sendGet(ddid,headers); + JSONObject ddidobject = JSONObject.parseObject(ddidbody); + + //人员id + headers = new HashMap<>(); + //https://oapi.dingtalk.com/user/get?userid=111336474727636213&access_token=3d21a6614fb037a98542a537336e8149 + String userid ="https://oapi.dingtalk.com/user/get?userid="+ddidobject.get("userid")+"&access_token="+tokenobject.get("access_token"); + String useridbody = sendGet(userid,headers); + JSONObject useridobject = JSONObject.parseObject(useridbody); + + + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPut httpPut = new HttpPut("https://api.dingtalk.com/v1.0/todo/users/"+useridobject.get("unionid")+"/tasks/"+taskid); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build(); + httpPut.setConfig(requestConfig); + httpPut.setHeader("Content-type", "application/json"); + httpPut.setHeader("x-acs-dingtalk-access-token", tokenobject.getString("access_token")); + Map<String, Object> dataMap = new HashMap(); + dataMap.put("done", true); + CloseableHttpResponse httpResponse = null; + + try { + httpPut.setEntity(new StringEntity("{\"done\": true}")); + httpResponse = httpClient.execute(httpPut); + HttpEntity entity = httpResponse.getEntity(); + String results = EntityUtils.toString(entity); + System.out.println(results); + } catch (Exception var15) { + } finally { + try { + httpResponse.close(); + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + + private String sendGet(String url, Map<String, String> headers) { + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + // HttpClient + CloseableHttpClient closeableHttpClient = httpClientBuilder.disableCookieManagement().build(); + HttpGet get = new HttpGet(url.toString()); + CloseableHttpResponse response = null; + + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000).build(); + get.setConfig(requestConfig);//设置请求参数【超时时间】 + if (headers != null && headers.size() > 0) { + for (String key : headers.keySet()) { + get.setHeader(key, headers.get(key)); + } + } + StringBuilder body = new StringBuilder(); + + try { + + response = closeableHttpClient.execute(get); + HttpEntity entity = response.getEntity(); + body.append(EntityUtils.toString(entity,"UTF-8")); + } catch (Exception e) { + body.append(e.getMessage()); + } finally { + try { + // 关闭响应对象 + if (response != null) { + response.close(); + } + // 关闭响应对象 + if (closeableHttpClient != null) { + closeableHttpClient.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return body.toString(); + } } diff --git a/base-common/src/main/java/com/hzya/frame/basedao/dao/MybatisGenericDao.java b/base-common/src/main/java/com/hzya/frame/basedao/dao/MybatisGenericDao.java index 95e43393..3852d256 100644 --- a/base-common/src/main/java/com/hzya/frame/basedao/dao/MybatisGenericDao.java +++ b/base-common/src/main/java/com/hzya/frame/basedao/dao/MybatisGenericDao.java @@ -96,7 +96,7 @@ public abstract class MybatisGenericDao<E extends Serializable, PK extends Seria public E query(E o, String stamentID) { return (E) this.sqlSession.selectOne(stamentID, o); } - + @DS("#o.dataSourceCode") @Override public List<E> queryList(E o, String stamentID) { List<E> tempList = this.sqlSession.selectList(stamentID, o); diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/enums/OrgEventEnum.java b/base-service/src/main/java/com/hzya/frame/dingtalk/enums/OrgEventEnum.java new file mode 100755 index 00000000..f01431f0 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/enums/OrgEventEnum.java @@ -0,0 +1,48 @@ +package com.hzya.frame.dingtalk.enums; + +/** + * @Description 通讯录事件类型 + * @Author xiangerlin + * @Date 2024/8/27 15:58 + **/ +public enum OrgEventEnum { + USER_ADD_ORG("user_add_org","通讯录用户新增"), + USER_MODIFY_ORG("user_modify_org","通讯录用户更改"), + USER_LEAVE_ORG("user_leave_org","通讯录用户离职"), + USER_ACTIVE_ORG("user_active_org","加入企业后用户激活"), + ORG_DEPT_CREATE("org_dept_create","通讯录企业部门创建"), + ORG_DEPT_MODIFY("org_dept_modify","通讯录企业部门更改"), + ORG_DEPT_REMOVE("org_dept_remove","通讯录企业部门删除"), + ; + + + private String code; + private String explain; + + OrgEventEnum(String code, String explain) { + this.code = code; + this.explain = explain; + } + + public String getCode() { + return code; + } + + public String getExplain() { + return explain; + } + + /** + * 根据code获取事件类型 + * @param code + * @return + */ + public static OrgEventEnum getByCode(String code){ + for (OrgEventEnum org : OrgEventEnum.values()) { + if (org.getCode().equals(code)){ + return org; + } + } + return null; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkExtService.java b/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkExtService.java new file mode 100755 index 00000000..ffbba432 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkExtService.java @@ -0,0 +1,32 @@ +package com.hzya.frame.dingtalk.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; + +/** + * @Description 钉钉集成扩展类 + * @Author xiangerlin + * @Date 2024/8/28 14:25 + **/ +public interface IDingTalkExtService { + + /** + * 调用这个方法初始化钉钉参数 + * @param entity + * @return + */ + SysExtensionApiEntity init(SysExtensionApiEntity entity); + + /** + * 查询配置在应用上的钉钉参数 + * @param sysApplication + * @return + */ + JSONObject getDingTalkConfig(SysApplicationEntity sysApplication); + + /** + * 清空配置缓存 + */ + void clearDingTalkConfigCatch(); +} diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkService.java b/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkService.java new file mode 100755 index 00000000..be742955 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/service/IDingTalkService.java @@ -0,0 +1,66 @@ +package com.hzya.frame.dingtalk.service; + +import com.dingtalk.api.request.OapiV2UserListRequest; +import com.dingtalk.api.response.OapiV2DepartmentGetResponse; +import com.dingtalk.api.response.OapiV2DepartmentListsubResponse; +import com.dingtalk.api.response.OapiV2UserGetResponse; +import com.dingtalk.api.response.OapiV2UserListResponse; + +import java.util.List; + +/** + * @Description 钉钉service + * @Author xiangerlin + * @Date 2024/8/27 16:17 + **/ +public interface IDingTalkService { + + /** + * 根据userid获取用户详情 + * @param userId 钉钉userid + * @param appKey + * @param appSecret + * @return + */ + OapiV2UserGetResponse.UserGetResponse getUserById(String userId, String appKey, String appSecret); + + /** + * 根据userid获取用户详情 + * @param userId + * @return + */ + OapiV2UserGetResponse.UserGetResponse getUserById(String userId); + + /** + * 获取部门用户列表 + * @param req 请求参数 + * @param appKey + * @param appSecret + * @return + */ + OapiV2UserListResponse.PageResult getUserListByDeptId(OapiV2UserListRequest req, String appKey, String appSecret); + /** + * 根据部门id获取部门详情 + * @param deptId 钉钉部门id + * @param appKey + * @param appSecret + * @return + */ + OapiV2DepartmentGetResponse.DeptGetResponse getDeptById(Long deptId, String appKey, String appSecret); + + /** + * 根据部门id获取部门详情 + * @param deptId + * @return + */ + OapiV2DepartmentGetResponse.DeptGetResponse getDeptById(Long deptId); + + /** + * 获取部门列表,此接口只会返回下一级部门信息 + * @param deptId 部门id,如果不传则查询一级部门 + * @param appKey + * @param appSecret + * @return + */ + List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getDeptList(Long deptId, String appKey, String appSecret); +} diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkExtServiceImpl.java b/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkExtServiceImpl.java new file mode 100755 index 00000000..dd0267f8 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkExtServiceImpl.java @@ -0,0 +1,100 @@ +package com.hzya.frame.dingtalk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.dingtalk.service.IDingTalkExtService; +import com.hzya.frame.dingtalk.util.DingTalkAccessToken; +import com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity; +import com.hzya.frame.sysnew.application.apiPara.dao.ISysApplicationApiParaDao; +import com.hzya.frame.sysnew.application.apiPara.entity.SysApplicationApiParaEntity; +import com.hzya.frame.sysnew.application.apiPara.service.ISysApplicationApiParaService; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @Description 钉钉集成扩展类 + * @Author xiangerlin + * @Date 2024/8/28 14:25 + **/ +@Service(value = "dingTalkExtService") +public class DingTalkExtServiceImpl implements IDingTalkExtService { + + + @Resource + private ISysApplicationApiParaDao sysApplicationApiParaDao; + private final ConcurrentHashMap<String, JSONObject> dingTalkMap = new ConcurrentHashMap<>(); + /** + * 调用这个方法初始化钉钉参数 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity init(SysExtensionApiEntity entity) { + Map<String, String> headers = entity.getHeaders(); + if (null == headers){ + headers = new HashMap<>(); + } + SysApplicationEntity receiveApp = entity.getReceiveApp(); + //查询应用上配置的参数 + JSONObject dingTalkConfig = getDingTalkConfig(receiveApp); + //给token赋值 + entity.setQuerys("access_token="+DingTalkAccessToken.getAccessToken(dingTalkConfig.getString("appKey"),dingTalkConfig.getString("appSecret"))); + return entity; + } + + /** + * 查询配置在应用上的钉钉参数 + * + * @param sysApplication + * @return + */ + @Override + public JSONObject getDingTalkConfig(SysApplicationEntity sysApplication) { + if (null != sysApplication && StrUtil.isNotEmpty(sysApplication.getId()) && null != sysApplication.getAppId()){ + JSONObject jsonObject = new JSONObject(); + String key = sysApplication.getAppId()+"dingTalk"; + if (null != dingTalkMap.get(key)){ + return dingTalkMap.get(key); + }else { + //查询应用上配置的参数 + SysApplicationApiParaEntity paraEntity = new SysApplicationApiParaEntity(); + paraEntity.setAppId(sysApplication.getId()); + List<SysApplicationApiParaEntity> paraList = sysApplicationApiParaDao.query(paraEntity); + if (CollectionUtils.isNotEmpty(paraList)) { + List<SysApplicationApiParaEntity> appKeyList = paraList.stream().filter(p -> p.getInterfaceKey().equals("appKey")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(appKeyList)) { + jsonObject.put("appKey", appKeyList.get(0).getInterfaceValue()); + } + List<SysApplicationApiParaEntity> appSecretList = paraList.stream().filter(p -> p.getInterfaceKey().equals("appSecret")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(appSecretList)) { + jsonObject.put("appSecret", appSecretList.get(0).getInterfaceValue()); + } + dingTalkMap.put(key,jsonObject); + return dingTalkMap.get(key); + } + } + } + return null; + } + + /** + * 清空配置缓存 + */ + @Override + public void clearDingTalkConfigCatch() { + dingTalkMap.clear(); + } +} diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkServiceImpl.java b/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkServiceImpl.java new file mode 100755 index 00000000..8e74ae9d --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/service/impl/DingTalkServiceImpl.java @@ -0,0 +1,164 @@ +package com.hzya.frame.dingtalk.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiV2DepartmentGetRequest; +import com.dingtalk.api.request.OapiV2DepartmentListsubRequest; +import com.dingtalk.api.request.OapiV2UserGetRequest; +import com.dingtalk.api.request.OapiV2UserListRequest; +import com.dingtalk.api.response.OapiV2DepartmentGetResponse; +import com.dingtalk.api.response.OapiV2DepartmentListsubResponse; +import com.dingtalk.api.response.OapiV2UserGetResponse; +import com.dingtalk.api.response.OapiV2UserListResponse; +import com.hzya.frame.dingtalk.service.IDingTalkService; +import com.hzya.frame.dingtalk.util.DingTalkAccessToken; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description 钉钉service + * @Author xiangerlin + * @Date 2024/8/27 16:17 + **/ +@Service(value = "dingTalkService") +public class DingTalkServiceImpl implements IDingTalkService { + Logger logger = LoggerFactory.getLogger(getClass()); + @Value("${dingtalk.appKey:}") + private String dAppKey; + @Value("${dingtalk.appSecret:}") + private String dAppSecret; + + + /** + * 根据userid获取用户详情 + * + * @param userId 钉钉userid + * @param appKey + * @param appSecret + * @return + */ + @Override + public OapiV2UserGetResponse.UserGetResponse getUserById(String userId, String appKey, String appSecret) { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get"); + OapiV2UserGetRequest req = new OapiV2UserGetRequest(); + req.setUserid(userId); + req.setLanguage("zh_CN"); + try { + OapiV2UserGetResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret)); + if (rsp.isSuccess()){ + OapiV2UserGetResponse.UserGetResponse result = rsp.getResult(); + String s = JSONObject.toJSONString(result); + logger.info("人员详情信息:{}",s); + return result; + } + }catch (Exception e){ + logger.error("根据部门id获取钉钉用户详情出错:{}",e); + } + return null; + } + + /** + * 根据userid获取用户详情 + * + * @param userId + * @return + */ + @Override + public OapiV2UserGetResponse.UserGetResponse getUserById(String userId) { + return getUserById(userId,dAppKey,dAppSecret); + } + + /** + * 获取部门用户列表 + * + * @param req 请求参数 + * @param appKey + * @param appSecret + * @return + */ + @Override + public OapiV2UserListResponse.PageResult getUserListByDeptId(OapiV2UserListRequest req, String appKey, String appSecret) { + try { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list"); + req.setSize(100L);//每页最大只能查100条 + req.setOrderField("modify_desc"); + req.setContainAccessLimit(false); + req.setLanguage("zh_CN"); + OapiV2UserListResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret)); + OapiV2UserListResponse.PageResult result = rsp.getResult(); + return result; + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + /** + * 根据部门id获取部门详情 + * + * @param deptId 钉钉部门id + * @param appKey + * @param appSecret + * @return + */ + @Override + public OapiV2DepartmentGetResponse.DeptGetResponse getDeptById(Long deptId, String appKey, String appSecret) { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/get"); + OapiV2DepartmentGetRequest req = new OapiV2DepartmentGetRequest(); + req.setDeptId(deptId); + req.setLanguage("zh_CN"); + try { + OapiV2DepartmentGetResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret)); + if (rsp.isSuccess()){ + OapiV2DepartmentGetResponse.DeptGetResponse result = rsp.getResult(); + String s = JSONObject.toJSONString(result); + logger.info("部门详情信息:{}",s); + return result; + } + }catch(Exception e){ + logger.error("根据部门id获取钉钉部门出错:{}",e); + } + return null; + } + + /** + * 根据部门id获取部门详情 + * + * @param deptId + * @return + */ + @Override + public OapiV2DepartmentGetResponse.DeptGetResponse getDeptById(Long deptId) { + return getDeptById(deptId,dAppKey,dAppSecret); + } + + /** + * 获取部门列表,此接口只会返回下一级部门信息 + * @param deptId 部门id,如果不传则查询一级部门 + * @param appKey + * @param appSecret + * @return + */ + @Override + public List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getDeptList(Long deptId,String appKey,String appSecret) { + try { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub"); + OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest(); + req.setDeptId(deptId); + req.setLanguage("zh_CN"); + OapiV2DepartmentListsubResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret)); + if (rsp.isSuccess()){ + List<OapiV2DepartmentListsubResponse.DeptBaseResponse> result = rsp.getResult(); + return result; + } + }catch (Exception e){ + logger.error("获取部门列表接口出错:{}",e); + } + return null; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/dingtalk/util/DingTalkAccessToken.java b/base-service/src/main/java/com/hzya/frame/dingtalk/util/DingTalkAccessToken.java new file mode 100755 index 00000000..eb951180 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/dingtalk/util/DingTalkAccessToken.java @@ -0,0 +1,103 @@ +package com.hzya.frame.dingtalk.util; + +import cn.hutool.core.util.StrUtil; +import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; +import com.aliyun.tea.TeaException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; + +import java.time.Instant; + +/** + * @Description 钉钉获取accessToken + * @Author xiangerlin + * @Date 2024/8/27 14:05 + **/ +public class DingTalkAccessToken { + static Logger logger = LoggerFactory.getLogger(DingTalkAccessToken.class); + //token + private static String accessToken; + //过期时间 + private static Instant expireTime; + private static final Long CACHE_EXPIRY_TIME = 7000L; // 缓存有效时间(秒) + //应用key + private static String appKey; + //应用密钥 + private static String appSecret; + @Value("${dingtalk.appKey:}") + public static void setAppKey(String appKey) { + DingTalkAccessToken.appKey = appKey; + } + @Value("${dingtalk.appSecret:}") + public static void setAppSecret(String appSecret) { + DingTalkAccessToken.appSecret = appSecret; + } + + /** + * 获取token + * @return + */ + public static String getAccessToken(){ + return getAccessToken(appKey,appSecret); + } + /** + * 获取accessToken + * + * @param appKey + * @param appSecret + * @return + */ + public static String getAccessToken(String appKey,String appSecret) { + //判断是否过期 如果没过期直接返回 + if (null != accessToken && expireTime != null && Instant.now().isBefore(expireTime)) { + return accessToken; + } + //获取新的accessToken + accessToken = fetchNewAccessToken(appKey,appSecret); + //过期时间设置成当前事件+7000s,预留200s的时间 + expireTime = Instant.now().plusSeconds(CACHE_EXPIRY_TIME); + return accessToken; + } + + /** + * 获取新的accessToken + * + * @return + */ + private static String fetchNewAccessToken(String appKey,String appSecret) { + try { + //查询应用上配置的钉钉信息 + if (StrUtil.isNotEmpty(appKey) && StrUtil.isNotEmpty(appSecret)) { + //查询应用上的信息 + com.aliyun.dingtalkoauth2_1_0.Client client = DingTalkAccessToken.createClient(); + com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest getAccessTokenRequest = new com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest() + .setAppKey(appKey) + .setAppSecret(appSecret); + GetAccessTokenResponse accessToken = client.getAccessToken(getAccessTokenRequest); + String accessToken1 = accessToken.getBody().getAccessToken(); + return accessToken1; + } + } catch (Exception _err) { + TeaException err = new TeaException(_err.getMessage(), _err); + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + // err 中含有 code 和 message 属性,可帮助开发定位问题 + } + logger.error("获取钉钉token出错:{}", _err); + } + return null; + } + + /** + * 使用 Token 初始化账号Client + * + * @return Client + * @throws Exception + */ + private static com.aliyun.dingtalkoauth2_1_0.Client createClient() throws Exception { + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config(); + config.protocol = "https"; + config.regionId = "central"; + return new com.aliyun.dingtalkoauth2_1_0.Client(config); + } +} diff --git a/base-service/src/main/java/com/hzya/frame/home/service/impl/HomeServiceImpl.java b/base-service/src/main/java/com/hzya/frame/home/service/impl/HomeServiceImpl.java index 6ee65aa3..cda6cf9c 100644 --- a/base-service/src/main/java/com/hzya/frame/home/service/impl/HomeServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/home/service/impl/HomeServiceImpl.java @@ -50,6 +50,7 @@ public class HomeServiceImpl extends BaseService<HomeEntity, String> implements for (int a = 0; a < sysApplicationEntities.size(); a++) { if(homeEntities.get(i).getAppId()!= null && sysApplicationEntities.get(a).getId().equals(homeEntities.get(i).getAppId())){ homeEntities.get(i).setPath(sysApplicationEntities.get(a).getAppLogo()); + homeEntities.get(i).setName(sysApplicationEntities.get(a).getName()); continue; } } diff --git a/base-service/src/main/java/com/hzya/frame/mdm/entity/MdmFiledsRuleDto.java b/base-service/src/main/java/com/hzya/frame/mdm/entity/MdmFiledsRuleDto.java new file mode 100644 index 00000000..f6bd998b --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/mdm/entity/MdmFiledsRuleDto.java @@ -0,0 +1,77 @@ +package com.hzya.frame.mdm.entity; + + +public class MdmFiledsRuleDto { + /** 主数据模版ID */ + private String mdmId; + /** 模版数据库id */ + private String dbId; + /** 模版数据库字段id */ + private String filedId; + /** 字段类型 1、select 2、treeselect */ + private String filedType; + /** 字段服务 */ + private String typeFiled; + /** 字段服务 */ + private String id; + /** 字段服务 */ + private String dataId; + + public String getMdmId() { + return mdmId; + } + + public void setMdmId(String mdmId) { + this.mdmId = mdmId; + } + + public String getDbId() { + return dbId; + } + + public void setDbId(String dbId) { + this.dbId = dbId; + } + + public String getFiledId() { + return filedId; + } + + public void setFiledId(String filedId) { + this.filedId = filedId; + } + + public String getFiledType() { + return filedType; + } + + public void setFiledType(String filedType) { + this.filedType = filedType; + } + + public String getTypeFiled() { + return typeFiled; + } + + public void setTypeFiled(String typeFiled) { + this.typeFiled = typeFiled; + } + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } +} + diff --git a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/IMdmModuleDao.java b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/IMdmModuleDao.java index 1940d472..7c936af7 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/IMdmModuleDao.java +++ b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/IMdmModuleDao.java @@ -3,6 +3,7 @@ package com.hzya.frame.mdm.mdmModule.dao; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.mdm.entity.MdmDataDto; import com.hzya.frame.mdm.entity.MdmDto; +import com.hzya.frame.mdm.entity.MdmFiledsRuleDto; import com.hzya.frame.mdm.entity.MdmQuery; import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity; import com.hzya.frame.basedao.dao.IBaseDao; @@ -68,5 +69,7 @@ public interface IMdmModuleDao extends IBaseDao<MdmModuleEntity, String> { void updataTreeUpData(Map<String, String> updateMaps); void updataTreeUpDataDetail(Map<String, String> updateMaps); + + MdmFiledsRuleDto queryDataId(MdmFiledsRuleDto mdmFiledsRuleDto); } diff --git a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/impl/MdmModuleDaoImpl.java b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/impl/MdmModuleDaoImpl.java index c9d4ea70..56e4777e 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/impl/MdmModuleDaoImpl.java +++ b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/dao/impl/MdmModuleDaoImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.hzya.frame.basedao.dao.MybatisGenericDao; import com.hzya.frame.mdm.entity.MdmDataDto; import com.hzya.frame.mdm.entity.MdmDto; +import com.hzya.frame.mdm.entity.MdmFiledsRuleDto; import com.hzya.frame.mdm.entity.MdmQuery; import com.hzya.frame.mdm.mdmModule.dao.IMdmModuleDao; import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity; @@ -181,6 +182,12 @@ public class MdmModuleDaoImpl extends MybatisGenericDao<MdmModuleEntity, String> super.update(getSqlIdPrifx() + "updataTreeUpDataDetail", maps); } + @Override + public MdmFiledsRuleDto queryDataId(MdmFiledsRuleDto mdmFiledsRuleDto) { + MdmFiledsRuleDto o = (MdmFiledsRuleDto) super.selectOne(getSqlIdPrifx() + "queryDataId", mdmFiledsRuleDto); + return o; + } + @Override public List<String> queryMdMFields(Map<String, Object> maps) { List<String> o = (List<String>) super.selectList(getSqlIdPrifx() + "queryMdMFields", maps); diff --git a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/entity/MdmModuleEntity.xml b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/entity/MdmModuleEntity.xml index 629067a8..822bd239 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/entity/MdmModuleEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/entity/MdmModuleEntity.xml @@ -974,10 +974,10 @@ where id = #{id} < #{item.filedVaule} </when> <when test="item.compareType == '5'.toString() "> - like concat('%',#{item.filedVaule},'%') + like #{item.filedVaule} </when> <when test="item.compareType == '6'.toString() "> - not like concat('%',#{item.filedVaule},'%') + not like #{item.filedVaule} </when> </choose> @@ -1086,5 +1086,14 @@ where id = #{id} AND b.sts = 'Y' AND b.data_status != 'N' </update> + + + <!-- 分页查询列表 采用like格式 --> + <select id="queryDataId" resultType="com.hzya.frame.mdm.entity.MdmFiledsRuleDto" + parameterType="com.hzya.frame.mdm.entity.MdmFiledsRuleDto"> + select + data_id as dataId + from ${typeFiled} where sts='Y' and id = #{id} + </select> </mapper> diff --git a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/service/impl/MdmModuleServiceImpl.java b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/service/impl/MdmModuleServiceImpl.java index 7169f57f..c32080d1 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/service/impl/MdmModuleServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/mdm/mdmModule/service/impl/MdmModuleServiceImpl.java @@ -2340,7 +2340,20 @@ public class MdmModuleServiceImpl extends BaseService<MdmModuleEntity, String> i xf.setCreate(); sysButtonConfigDao.save(xf); } - + if ("viewData".equals(mdmModuleViewButtonEntities.get(i).getButtonValue())) { + SysButtonConfigEntity xf = new SysButtonConfigEntity(); + xf.setCode("viewData"); + xf.setNameCh("查看数据格式"); + xf.setNameEn("viewData"); + xf.setMenuId(module.getId()); + xf.setIconName(""); + xf.setStyles(""); + xf.setBtnFunction("viewData"); + xf.setRemark("查看数据格式"); + xf.setSorts(i + 1L); + xf.setCreate(); + sysButtonConfigDao.save(xf); + } } } diff --git a/base-service/src/main/java/com/hzya/frame/mdm/service/IMdmService.java b/base-service/src/main/java/com/hzya/frame/mdm/service/IMdmService.java index fff31302..70de4325 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/service/IMdmService.java +++ b/base-service/src/main/java/com/hzya/frame/mdm/service/IMdmService.java @@ -87,6 +87,15 @@ public interface IMdmService { * @Date 9:40 上午 2023/10/18 **/ JsonResultEntity queryMdmShowDetailsData(JSONObject jsonObject); + + /** + * @param jsonObject + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Author lvleigang + * @Description 主数据详情数据字典 + * @Date 9:40 上午 2023/10/18 + **/ + JsonResultEntity queryMdmShowDetailsDictionary(JSONObject jsonObject); // /** * @param jsonObject diff --git a/base-service/src/main/java/com/hzya/frame/mdm/service/impl/MdmServiceImpl.java b/base-service/src/main/java/com/hzya/frame/mdm/service/impl/MdmServiceImpl.java index fcb46154..8550e8cb 100644 --- a/base-service/src/main/java/com/hzya/frame/mdm/service/impl/MdmServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/mdm/service/impl/MdmServiceImpl.java @@ -101,12 +101,6 @@ public class MdmServiceImpl implements IMdmService { @Resource private IMdmServiceCache mdmServiceCache; @Resource - private ISysMenuConfigDao sysMenuConfigDao; - @Resource - private ISysButtonConfigDao sysButtonConfigDao; - @Resource - private ISysPopedomOperateDao sysPopedomOperateDao; - @Resource private IMdmModuleDbDao mdmModuleDbDao; @Resource private ISysUserDao sysUserDao; @@ -1381,15 +1375,188 @@ public class MdmServiceImpl implements IMdmService { } } - //if (tablename != null && !"".equals(tablename)) { - // Map<String, Object> queryData = new HashMap<>(); - // queryData.put("tableName", tablename);//表名 - // queryData.put("id", entity.getId());//字段 - // List<HashMap<String, Object>> datas = mdmModuleDbDao.getServiceByDistributeId(queryData); - // jsonObject.put(tablename, datas); - //} + + return BaseResult.getSuccessMessageEntity("获取数据成功", jsonObject); + } + + + /** + * @param object + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Author lvleigang + * @Description 主数据详情数据字典 + * @Date 9:40 上午 2023/10/18 + **/ + @Override + public JsonResultEntity queryMdmShowDetailsDictionary(JSONObject object) { + MdmDto entity = getData("jsonStr", object, MdmDto.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getMdmCode() == null || "".equals(entity.getMdmCode())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + //查询模版 + + MdmModuleEntity mdmModuleEntity = mdmServiceCache.getMdmModuleEntity(entity.getMdmCode()); + if (mdmModuleEntity == null) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + //查询数据源主表 + MdmModuleDbEntity mdmModuleDbEntity = new MdmModuleDbEntity(); + mdmModuleDbEntity.setMdmId(mdmModuleEntity.getId()); + mdmModuleDbEntity.setSts("Y"); + List<MdmModuleDbEntity> mdmModuleDbEntityList = mdmServiceCache.queryMdmModuleDb(mdmModuleDbEntity); + if (mdmModuleDbEntityList == null || mdmModuleDbEntityList.size() == 0) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + MdmModuleDbFiledsEntity queryFild = new MdmModuleDbFiledsEntity(); + queryFild.setMdmId(mdmModuleEntity.getId()); + queryFild.setSts("Y"); + List<MdmModuleDbFiledsEntity> mdmModuleDbFiledsEntities = mdmServiceCache.queryMdmModuleDbFileds(queryFild); + + MdmModuleDbFiledsRuleEntity mdmModuleDbFiledsRuleEntity = new MdmModuleDbFiledsRuleEntity(); + mdmModuleDbFiledsRuleEntity.setMdmId(mdmModuleEntity.getId()); + mdmModuleDbFiledsRuleEntity.setSts("Y"); + List<MdmModuleDbFiledsRuleEntity> mdmModuleDbFiledsRuleEntities = mdmModuleDbFiledsRuleDao.queryBase(mdmModuleDbFiledsRuleEntity); + + List<MdmFiledsRuleDto> mdmFiledsRuleDtos = new ArrayList<>(); + if(mdmModuleDbFiledsRuleEntities != null && mdmModuleDbFiledsRuleEntities.size() > 0){ + for (int i = 0; i < mdmModuleDbFiledsRuleEntities.size(); i++) { + if("treeselect".equals(mdmModuleDbFiledsRuleEntities.get(i).getRuleValue()) || "select".equals(mdmModuleDbFiledsRuleEntities.get(i).getRuleValue())){ + MdmFiledsRuleDto mdmFiledsRuleDto = new MdmFiledsRuleDto(); + mdmFiledsRuleDto.setDbId(mdmModuleDbFiledsRuleEntities.get(i).getDbId()); + mdmFiledsRuleDto.setFiledId(mdmModuleDbFiledsRuleEntities.get(i).getFiledId()); + mdmFiledsRuleDto.setMdmId(mdmModuleDbFiledsRuleEntities.get(i).getMdmId()); + mdmFiledsRuleDto.setFiledType(mdmModuleDbFiledsRuleEntities.get(i).getRuleValue()); + mdmFiledsRuleDtos.add(mdmFiledsRuleDto); + } + } + } + + if(mdmFiledsRuleDtos != null && mdmFiledsRuleDtos.size() > 0){ + for (int i = 0; i < mdmFiledsRuleDtos.size(); i++) { + for (int i1 = 0; i1 < mdmModuleDbFiledsRuleEntities.size(); i1++) { + if(mdmFiledsRuleDtos.get(i).getFiledId().equals(mdmModuleDbFiledsRuleEntities.get(i1).getFiledId()) + && "service".equals(mdmModuleDbFiledsRuleEntities.get(i1).getRuleCode())){ + mdmFiledsRuleDtos.get(i).setTypeFiled(mdmModuleDbFiledsRuleEntities.get(i1).getRuleValue()); + } + } + } + } + + //String tablename = null; + JSONObject jsonObject = new JSONObject(); + jsonObject.put("appName","数智中台"); + jsonObject.put("appCode","800004"); + jsonObject.put("mdmCode",entity.getMdmCode()); + jsonObject.put("optionName","admin"); + for (int i = 0; i < mdmModuleDbEntityList.size(); i++) { + if ("1".equals(mdmModuleDbEntityList.get(i).getDbType()) || "2".equals(mdmModuleDbEntityList.get(i).getDbType())) { + //查询数据 + Map<String, Object> queryData = new HashMap<>(); + queryData.put("tableName", mdmModuleDbEntityList.get(i).getDbName());//表名 + if ("1".equals(mdmModuleDbEntityList.get(i).getDbType())) { + queryData.put("detailFlag", false);//是否明细 + queryData.put("id", entity.getId());//字段 + HashMap<String, Object> datas = mdmModuleDbDao.getServiceDataById(queryData); + convertKeysToLowerCase(datas); + JSONObject zbdata = new JSONObject(); + if(mdmModuleDbFiledsEntities != null && mdmModuleDbFiledsEntities.size() > 0){ + for (int i2 = 0; i2 < mdmModuleDbFiledsEntities.size(); i2++) { + if(mdmModuleDbFiledsEntities.get(i2).getDbId().equals(mdmModuleDbEntityList.get(i).getId())){ + if("1".equals(mdmModuleDbFiledsEntities.get(i2).getViewType())){ + //判断是否是下拉类型 + Object data = datas.get(mdmModuleDbFiledsEntities.get(i2).getEnName()); + if(mdmFiledsRuleDtos != null && mdmFiledsRuleDtos.size() > 0){ + for (int i1 = 0; i1 < mdmFiledsRuleDtos.size(); i1++) { + if(mdmModuleDbFiledsEntities.get(i2).getId().equals(mdmFiledsRuleDtos.get(i1).getFiledId())){ + //查询对应的data_id + String strData = String.valueOf(data); + int index = strData.lastIndexOf(','); + if (index!= -1) { + strData = strData.substring(index + 1); + } + mdmFiledsRuleDtos.get(i1).setId(strData); + MdmFiledsRuleDto mdmFiledsRuleDto = mdmModuleDao.queryDataId(mdmFiledsRuleDtos.get(i1)); + if(mdmFiledsRuleDto != null && mdmFiledsRuleDto.getDataId() != null && !"".equals(mdmFiledsRuleDto.getDataId())){ + data = mdmFiledsRuleDto.getDataId(); + }else { + data = null; + } + } + } + } + zbdata.put(mdmModuleDbFiledsEntities.get(i2).getEnName(),data); + } + } + } + } + jsonObject.put(mdmModuleDbEntityList.get(i).getDbName(), zbdata); + } else { + queryData.put("detailFlag", true);//是否明细 + queryData.put("id", entity.getId());//字段 + List<HashMap<String, Object>> datas = mdmModuleDbDao.getServiceByFormmainId(queryData); + convertKeysToLowerCase(datas); + List<JSONObject> mxDataList = new ArrayList<>(); + if(datas != null && datas.size() > 0){ + for (int i1 = 0; i1 < datas.size(); i1++) { + JSONObject mxData = new JSONObject(); + if(mdmModuleDbFiledsEntities != null && mdmModuleDbFiledsEntities.size() > 0){ + for (int i2 = 0; i2 < mdmModuleDbFiledsEntities.size(); i2++) { + if(mdmModuleDbFiledsEntities.get(i2).getDbId().equals(mdmModuleDbEntityList.get(i).getId())){ + if("1".equals(mdmModuleDbFiledsEntities.get(i2).getViewType())){ + + //判断是否是下拉类型 + Object data = datas.get(i1).get(mdmModuleDbFiledsEntities.get(i2).getEnName()); + if(mdmFiledsRuleDtos != null && mdmFiledsRuleDtos.size() > 0){ + for (int b = 0; b < mdmFiledsRuleDtos.size(); b++) { + if(mdmModuleDbFiledsEntities.get(i2).getId().equals(mdmFiledsRuleDtos.get(b).getFiledId())){ + //查询对应的data_id + String strData = String.valueOf(data); + int index = strData.lastIndexOf(','); + if (index!= -1) { + strData = strData.substring(index + 1); + } + mdmFiledsRuleDtos.get(b).setId(strData); + MdmFiledsRuleDto mdmFiledsRuleDto = mdmModuleDao.queryDataId(mdmFiledsRuleDtos.get(b)); + if(mdmFiledsRuleDto != null && mdmFiledsRuleDto.getDataId() != null && !"".equals(mdmFiledsRuleDto.getDataId())){ + data = mdmFiledsRuleDto.getDataId(); + }else { + data = null; + } + } + } + } + mxData.put(mdmModuleDbFiledsEntities.get(i2).getEnName(),data); + } + } + } + } + mxDataList.add(mxData); + } + }else { + JSONObject mxData = new JSONObject(); + if(mdmModuleDbFiledsEntities != null && mdmModuleDbFiledsEntities.size() > 0){ + for (int i2 = 0; i2 < mdmModuleDbFiledsEntities.size(); i2++) { + if(mdmModuleDbFiledsEntities.get(i2).getDbId().equals(mdmModuleDbEntityList.get(i).getId())){ + if("1".equals(mdmModuleDbFiledsEntities.get(i2).getViewType())){ + mxData.put(mdmModuleDbFiledsEntities.get(i2).getEnName(),null); + } + } + } + } + mxDataList.add(mxData); + } + jsonObject.put(mdmModuleDbEntityList.get(i).getDbName(), mxDataList); + } + } + } return BaseResult.getSuccessMessageEntity("获取数据成功", jsonObject); } @@ -1944,7 +2111,8 @@ public class MdmServiceImpl implements IMdmService { return BaseResult.getSuccessMessageEntity("发送成功"); } else { saveMdmModuleSendLogEntity(mdmModuleEntity.getMdmCode(), mdmModuleDistributeEntity.getId(), "2", "转发失败:"+jsonResultEntity.getAttribute(), dbname, object.getString("id"), sysApplicationEntity.getName(), sysApplicationEntity.getId(), apiEntity.getApiName(), apiEntity.getId(), object.toJSONString(), type); - return BaseResult.getFailureMessageEntity("发送错误:" + jsonResultEntity.getAttribute()); + JSONObject object1 = JSONObject.parseObject(jsonResultEntity.getAttribute().toString()); + return BaseResult.getFailureMessageEntity("发送错误:" +object1.getString("msg")); } } diff --git a/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/ISysDictionaryshopNewService.java b/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/ISysDictionaryshopNewService.java index 252971c5..9bc3fe1d 100644 --- a/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/ISysDictionaryshopNewService.java +++ b/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/ISysDictionaryshopNewService.java @@ -13,4 +13,13 @@ import com.hzya.frame.sys.dictionaryshopNew.entity.SysDictionaryshopNew; public interface ISysDictionaryshopNewService { JsonResultEntity test(SysDictionaryshopNew object); + + /** + * 查询数据字典 + * @param tabName 表名 + * @param columnName 字段名 + * @param columnValue 字典值 + * @return + */ + SysDictionaryshopNew getDictionaryshopByValue(String tabName, String columnName, String columnValue); } \ No newline at end of file diff --git a/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/impl/SysDictionaryshopNewServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/impl/SysDictionaryshopNewServiceImpl.java index 92ac11cf..72dac9f1 100644 --- a/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/impl/SysDictionaryshopNewServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sys/dictionaryshopNew/service/impl/SysDictionaryshopNewServiceImpl.java @@ -33,4 +33,20 @@ public class SysDictionaryshopNewServiceImpl extends ServiceUtil implements ISy return BaseResult.getSuccessMessageEntity("获取应用成功"); } + /** + * 查询数据字典 + * + * @param tabName 表名 + * @param columnName 字段名 + * @param columnValue 字典值 + * @return + */ + @Override + public SysDictionaryshopNew getDictionaryshopByValue(String tabName, String columnName, String columnValue) { + SysDictionaryshopNew sysDictionaryshopNew = new SysDictionaryshopNew(); + sysDictionaryshopNew.setTabName(tabName); + sysDictionaryshopNew.setColumnName(columnName); + sysDictionaryshopNew.setColumnValue(columnValue); + return sysdictionaryshopnewMapper.entity_get_by_value(sysDictionaryshopNew); + } } diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassDao.java new file mode 100644 index 00000000..9437bf82 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowClassEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 流程分类;对应数环通项目分类(sys_flow_class: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowClassDao extends IBaseDao<SysFlowClassEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassRuleDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassRuleDao.java new file mode 100644 index 00000000..6359bb58 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowClassRuleDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 流程分类权限表(sys_flow_class_rule: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowClassRuleDao extends IBaseDao<SysFlowClassRuleEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowDao.java new file mode 100644 index 00000000..985be186 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 流程主表;流程就是数环通的Linkup(sys_flow: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:19 + */ +public interface ISysFlowDao extends IBaseDao<SysFlowEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowNifiConstantDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowNifiConstantDao.java new file mode 100644 index 00000000..b7c829ce --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowNifiConstantDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * nifi常量(sys_flow_nifi_constant: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowNifiConstantDao extends IBaseDao<SysFlowNifiConstantEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepAccountDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepAccountDao.java new file mode 100644 index 00000000..d5a3c40f --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepAccountDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 流程步骤账户表(sys_flow_step_account: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowStepAccountDao extends IBaseDao<SysFlowStepAccountEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigBDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigBDao.java new file mode 100644 index 00000000..68042e35 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigBDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 映射信息表体(sys_flow_step_config_b: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepConfigBDao extends IBaseDao<SysFlowStepConfigBEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigDao.java new file mode 100644 index 00000000..70f0cd14 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepConfigDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 映射信息主表(sys_flow_step_config: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepConfigDao extends IBaseDao<SysFlowStepConfigEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepDao.java new file mode 100644 index 00000000..52f0a3d5 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowStepEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 流程步骤信息(sys_flow_step: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowStepDao extends IBaseDao<SysFlowStepEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepRelationDao.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepRelationDao.java new file mode 100644 index 00000000..41bbb415 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/ISysFlowStepRelationDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sys.flow.dao; + +import com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 步骤关联关系表(sys_flow_step_relation: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepRelationDao extends IBaseDao<SysFlowStepRelationEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassDaoImpl.java new file mode 100644 index 00000000..ef35f356 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowClassEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowClassDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 流程分类;对应数环通项目分类(SysFlowClass)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Repository(value = "SysFlowClassDaoImpl") +public class SysFlowClassDaoImpl extends MybatisGenericDao<SysFlowClassEntity, String> implements ISysFlowClassDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassRuleDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassRuleDaoImpl.java new file mode 100644 index 00000000..02ace295 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowClassRuleDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowClassRuleDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 流程分类权限表(SysFlowClassRule)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Repository(value = "SysFlowClassRuleDaoImpl") +public class SysFlowClassRuleDaoImpl extends MybatisGenericDao<SysFlowClassRuleEntity, String> implements ISysFlowClassRuleDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowDaoImpl.java new file mode 100644 index 00000000..9bd21c11 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 流程主表;流程就是数环通的Linkup(SysFlow)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:21 + */ +@Repository(value = "SysFlowDaoImpl") +public class SysFlowDaoImpl extends MybatisGenericDao<SysFlowEntity, String> implements ISysFlowDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowNifiConstantDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowNifiConstantDaoImpl.java new file mode 100644 index 00000000..628b92fb --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowNifiConstantDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowNifiConstantDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * nifi常量(SysFlowNifiConstant)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Repository(value = "SysFlowNifiConstantDaoImpl") +public class SysFlowNifiConstantDaoImpl extends MybatisGenericDao<SysFlowNifiConstantEntity, String> implements ISysFlowNifiConstantDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepAccountDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepAccountDaoImpl.java new file mode 100644 index 00000000..2c9f580a --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepAccountDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepAccountDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 流程步骤账户表(SysFlowStepAccount)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Repository(value = "SysFlowStepAccountDaoImpl") +public class SysFlowStepAccountDaoImpl extends MybatisGenericDao<SysFlowStepAccountEntity, String> implements ISysFlowStepAccountDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigBDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigBDaoImpl.java new file mode 100644 index 00000000..377098c8 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigBDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepConfigBDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 映射信息表体(SysFlowStepConfigB)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Repository(value = "SysFlowStepConfigBDaoImpl") +public class SysFlowStepConfigBDaoImpl extends MybatisGenericDao<SysFlowStepConfigBEntity, String> implements ISysFlowStepConfigBDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigDaoImpl.java new file mode 100644 index 00000000..b3be492c --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepConfigDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepConfigDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 映射信息主表(SysFlowStepConfig)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Repository(value = "SysFlowStepConfigDaoImpl") +public class SysFlowStepConfigDaoImpl extends MybatisGenericDao<SysFlowStepConfigEntity, String> implements ISysFlowStepConfigDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepDaoImpl.java new file mode 100644 index 00000000..f25dc8fc --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 流程步骤信息(SysFlowStep)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Repository(value = "SysFlowStepDaoImpl") +public class SysFlowStepDaoImpl extends MybatisGenericDao<SysFlowStepEntity, String> implements ISysFlowStepDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepRelationDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepRelationDaoImpl.java new file mode 100644 index 00000000..c47941b2 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/dao/impl/SysFlowStepRelationDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sys.flow.dao.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepRelationDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 步骤关联关系表(SysFlowStepRelation)表数据库访问层 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Repository(value = "SysFlowStepRelationDaoImpl") +public class SysFlowStepRelationDaoImpl extends MybatisGenericDao<SysFlowStepRelationEntity, String> implements ISysFlowStepRelationDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.java new file mode 100644 index 00000000..ff75dbcc --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.java @@ -0,0 +1,36 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 流程分类;对应数环通项目分类(SysFlowClass)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public class SysFlowClassEntity extends BaseEntity { + + /** 分类名称 */ + private String name; + /** 上级id */ + private String parentId; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.xml new file mode 100644 index 00000000..0c6ab408 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassEntity.xml @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowClassDaoImpl"> + + <resultMap id="get-SysFlowClassEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowClassEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="parentId" column="parent_id" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowClassEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,name + ,parent_id + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowClassEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity"> + select + <include refid="SysFlowClassEntity_Base_Column_List" /> + from sys_flow_class + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="parentId != null and parentId != ''"> and parent_id = #{parentId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity"> + select count(1) from sys_flow_class + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="parentId != null and parentId != ''"> and parent_id = #{parentId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowClassEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity"> + select + <include refid="SysFlowClassEntity_Base_Column_List" /> + from sys_flow_class + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="name != null and name != ''"> and name like concat('%',#{name},'%') </if> + <if test="parentId != null and parentId != ''"> and parent_id like concat('%',#{parentId},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowClassentity_list_or" resultMap="get-SysFlowClassEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity"> + select + <include refid="SysFlowClassEntity_Base_Column_List" /> + from sys_flow_class + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="name != null and name != ''"> or name = #{name} </if> + <if test="parentId != null and parentId != ''"> or parent_id = #{parentId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_class( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">id ,</if> + <if test="create_user_id != null and create_user_id != ''">create_user_id ,</if> + <if test="create_time != null">create_time ,</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id ,</if> + <if test="modify_time != null">modify_time ,</if> + <if test="sts != null and sts != ''">sts ,</if> + <if test="name != null and name != ''">name ,</if> + <if test="parentId != null and parentId != ''">parent_id ,</if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">#{id} ,</if> + <if test="create_user_id != null and create_user_id != ''">#{create_user_id} ,</if> + <if test="create_time != null">#{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''">#{modify_user_id} ,</if> + <if test="modify_time != null">#{modify_time} ,</if> + <if test="sts != null and sts != ''">#{sts} ,</if> + <if test="name != null and name != ''">#{name} ,</if> + <if test="parentId != null and parentId != ''">#{parentId} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_class a WHERE + a.sts = 'Y' ),1), + </if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_class(create_user_id, create_time, modify_user_id, modify_time, sts, name, parent_id, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},#{entity.parentId}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_class(create_user_id, create_time, modify_user_id, modify_time, sts, name, parent_id) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},#{entity.parentId}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + name = values(name), + parent_id = values(parent_id)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity" > +update sys_flow_class set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="name != null and name != ''"> name = #{name},</if> + <if test="parentId != null and parentId != ''"> parent_id = #{parentId},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity" > +update sys_flow_class set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowClassEntity" > +update sys_flow_class set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="parentId != null and parentId != ''"> and parent_id = #{parentId} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_class where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.java new file mode 100644 index 00000000..cea32985 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.java @@ -0,0 +1,75 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import java.util.List; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * 流程分类权限表(SysFlowClassRule)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public class SysFlowClassRuleEntity extends BaseEntity { + + /** 流程分类id */ + private String flowClassId; + /** 用户id */ + private String userId; + /** 用户名 */ + private String userName; + /** 用户编码 */ + private String userCode; + /** 头像 */ + private String profileIcon; + //权限列表 + List<SysFlowClassRuleEntity> ruleList; + public String getFlowClassId() { + return flowClassId; + } + + public void setFlowClassId(String flowClassId) { + this.flowClassId = flowClassId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getProfileIcon() { + return profileIcon; + } + + public void setProfileIcon(String profileIcon) { + this.profileIcon = profileIcon; + } + + public List<SysFlowClassRuleEntity> getRuleList() { + return ruleList; + } + + public void setRuleList(List<SysFlowClassRuleEntity> ruleList) { + this.ruleList = ruleList; + } +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.xml new file mode 100644 index 00000000..8ef807fe --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowClassRuleEntity.xml @@ -0,0 +1,247 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowClassRuleDaoImpl"> + + <resultMap id="get-SysFlowClassRuleEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="flowClassId" column="flow_class_id" jdbcType="VARCHAR"/> + <result property="userId" column="user_id" jdbcType="VARCHAR"/> + <result property="userName" column="user_name" jdbcType="VARCHAR"/> + <result property="userCode" column="user_code" jdbcType="VARCHAR"/> + <result property="profileIcon" column="profile_icon" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id="SysFlowClassRuleEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,flow_class_id + ,user_id + ,user_name + ,user_code + ,profile_icon + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowClassRuleEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + select + <include refid="SysFlowClassRuleEntity_Base_Column_List"/> + from sys_flow_class_rule + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="flowClassId != null and flowClassId != ''">and flow_class_id = #{flowClassId}</if> + <if test="userId != null and userId != ''">and user_id = #{userId}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="userCode != null and userCode != ''">and user_code = #{userCode}</if> + <if test="profileIcon != null and profileIcon != ''">and profile_icon = #{profileIcon}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询符合条件的数量 --> + <select id="entity_count" resultType="Integer" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + select count(1) from sys_flow_class_rule + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="flowClassId != null and flowClassId != ''">and flow_class_id = #{flowClassId}</if> + <if test="userId != null and userId != ''">and user_id = #{userId}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="userCode != null and userCode != ''">and user_code = #{userCode}</if> + <if test="profileIcon != null and profileIcon != ''">and profile_icon = #{profileIcon}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> + <select id="entity_list_like" resultMap="get-SysFlowClassRuleEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + select + <include refid="SysFlowClassRuleEntity_Base_Column_List"/> + from sys_flow_class_rule + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id like concat('%',#{id},'%')</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id like + concat('%',#{create_user_id},'%') + </if> + <if test="create_time != null">and create_time like concat('%',#{create_time},'%')</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id like + concat('%',#{modify_user_id},'%') + </if> + <if test="modify_time != null">and modify_time like concat('%',#{modify_time},'%')</if> + <if test="sts != null and sts != ''">and sts like concat('%',#{sts},'%')</if> + <if test="flowClassId != null and flowClassId != ''">and flow_class_id like concat('%',#{flowClassId},'%') + </if> + <if test="userId != null and userId != ''">and user_id like concat('%',#{userId},'%')</if> + <if test="userName != null and userName != ''">and user_name like concat('%',#{userName},'%')</if> + <if test="userCode != null and userCode != ''">and user_code like concat('%',#{userCode},'%')</if> + <if test="profileIcon != null and profileIcon != ''">and profile_icon like concat('%',#{profileIcon},'%') + </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询列表 字段采用or格式 --> + <select id="SysFlowClassRuleentity_list_or" resultMap="get-SysFlowClassRuleEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + select + <include refid="SysFlowClassRuleEntity_Base_Column_List"/> + from sys_flow_class_rule + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">or id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">or create_user_id = #{create_user_id}</if> + <if test="create_time != null">or create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">or modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">or modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">or sts = #{sts}</if> + <if test="flowClassId != null and flowClassId != ''">or flow_class_id = #{flowClassId}</if> + <if test="userId != null and userId != ''">or user_id = #{userId}</if> + <if test="userName != null and userName != ''">or user_name = #{userName}</if> + <if test="userCode != null and userCode != ''">or user_code = #{userCode}</if> + <if test="profileIcon != null and profileIcon != ''">or profile_icon = #{profileIcon}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!--新增所有列--> + <insert id="entity_insert" parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity" keyProperty="id" + useGeneratedKeys="true"> + insert into sys_flow_class_rule( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">id ,</if> + <if test="create_user_id != null and create_user_id != ''">create_user_id ,</if> + <if test="create_time != null">create_time ,</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id ,</if> + <if test="modify_time != null">modify_time ,</if> + <if test="sts != null and sts != ''">sts ,</if> + <if test="flowClassId != null and flowClassId != ''">flow_class_id ,</if> + <if test="userId != null and userId != ''">user_id ,</if> + <if test="userName != null and userName != ''">user_name ,</if> + <if test="userCode != null and userCode != ''">user_code ,</if> + <if test="profileIcon != null and profileIcon != ''">profile_icon ,</if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">#{id} ,</if> + <if test="create_user_id != null and create_user_id != ''">#{create_user_id} ,</if> + <if test="create_time != null">#{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''">#{modify_user_id} ,</if> + <if test="modify_time != null">#{modify_time} ,</if> + <if test="sts != null and sts != ''">#{sts} ,</if> + <if test="flowClassId != null and flowClassId != ''">#{flowClassId} ,</if> + <if test="userId != null and userId != ''">#{userId} ,</if> + <if test="userName != null and userName != ''">#{userName} ,</if> + <if test="userCode != null and userCode != ''">#{userCode} ,</if> + <if test="profileIcon != null and profileIcon != ''">#{profileIcon} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_class_rule a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) + </insert> + <!-- 批量新增 --> + <insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_class_rule(create_user_id, create_time, modify_user_id, modify_time, sts, flow_class_id, + user_id, user_name, user_code, profile_icon, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.flowClassId},#{entity.userId},#{entity.userName},#{entity.userCode},#{entity.profileIcon}, + 'Y') + </foreach> + </insert> + <!-- 批量新增或者修改--> + <insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_class_rule(create_user_id, create_time, modify_user_id, modify_time, sts, flow_class_id, + user_id, user_name, user_code, profile_icon) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.flowClassId},#{entity.userId},#{entity.userName},#{entity.userCode},#{entity.profileIcon}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + flow_class_id = values(flow_class_id), + user_id = values(user_id), + user_name = values(user_name), + user_code = values(user_code), + profile_icon = values(profile_icon) + </insert> + <!--通过主键修改方法--> + <update id="entity_update" parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + update sys_flow_class_rule set + <trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''">create_user_id = #{create_user_id},</if> + <if test="create_time != null">create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null">modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''">sts = #{sts},</if> + <if test="flowClassId != null and flowClassId != ''">flow_class_id = #{flowClassId},</if> + <if test="userId != null and userId != ''">user_id = #{userId},</if> + <if test="userName != null and userName != ''">user_name = #{userName},</if> + <if test="userCode != null and userCode != ''">user_code = #{userCode},</if> + <if test="profileIcon != null and profileIcon != ''">profile_icon = #{profileIcon},</if> + </trim> + where id = #{id} + </update> + <!-- 逻辑删除 --> + <update id="entity_logicDelete" parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + update sys_flow_class_rule + set sts= 'N', + modify_time = #{modify_time}, + modify_user_id = #{modify_user_id} + where id = #{id} + </update> + <!-- 多条件逻辑删除 --> + <update id="entity_logicDelete_Multi_Condition" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity"> + update sys_flow_class_rule set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="flowClassId != null and flowClassId != ''">and flow_class_id = #{flowClassId}</if> + <if test="userId != null and userId != ''">and user_id = #{userId}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="userCode != null and userCode != ''">and user_code = #{userCode}</if> + <if test="profileIcon != null and profileIcon != ''">and profile_icon = #{profileIcon}</if> + and sts='Y' + </trim> + </update> + <!--通过主键删除--> + <delete id="entity_delete"> + delete + from sys_flow_class_rule + where id = #{id} + </delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.java new file mode 100644 index 00000000..fe3b4ce1 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.java @@ -0,0 +1,92 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 流程主表;流程就是数环通的Linkup(SysFlow)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:23 + */ +public class SysFlowEntity extends BaseEntity { + + /** 流程名称 */ + private String name; + /** 流程分类id */ + private String classId; + private String className; + /** 触发方式id */ + private String triggerModeId; + private String triggerModeName; + /** 应用组id */ + private String nifiGroupId; + /** 流程描述 */ + private String description; + + //状态, 启动/停止 + private String status; + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getClassId() { + return classId; + } + + public void setClassId(String classId) { + this.classId = classId; + } + + public String getTriggerModeId() { + return triggerModeId; + } + + public void setTriggerModeId(String triggerModeId) { + this.triggerModeId = triggerModeId; + } + + public String getNifiGroupId() { + return nifiGroupId; + } + + public void setNifiGroupId(String nifiGroupId) { + this.nifiGroupId = nifiGroupId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getTriggerModeName() { + return triggerModeName; + } + + public void setTriggerModeName(String triggerModeName) { + this.triggerModeName = triggerModeName; + } +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.xml new file mode 100644 index 00000000..fb84024c --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowEntity.xml @@ -0,0 +1,241 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowDaoImpl"> + + <resultMap id="get-SysFlowEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="status" column="status" jdbcType="VARCHAR"/> + <result property="classId" column="class_id" jdbcType="VARCHAR"/> + <result property="className" column="className" jdbcType="VARCHAR"/> + <result property="triggerModeId" column="trigger_mode_id" jdbcType="VARCHAR"/> + <result property="nifiGroupId" column="nifi_group_id" jdbcType="VARCHAR"/> + <result property="description" column="description" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowEntity_Base_Column_List"> + sf.id + ,sf.create_user_id + ,sf.create_time + ,sf.modify_user_id + ,sf.modify_time + ,sf.sts + ,sf.name + ,sf.status + ,sf.class_id + ,sfc.name as className + ,sf.trigger_mode_id + ,sf.nifi_group_id + ,sf.description + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity"> + select + <include refid="SysFlowEntity_Base_Column_List" /> + from sys_flow sf + left join sys_flow_class sfc on sfc.id = sf.class_id + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and sf.id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and sf.create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and sf.create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and sf.modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and sf.modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sf.sts = #{sts} </if> + <if test="name != null and name != ''"> and sf.name = #{name} </if> + <if test="status != null and status != ''"> and sf.status = #{status} </if> + <if test="classId != null and classId != ''"> and sf.class_id = #{classId} </if> + <if test="triggerModeId != null and triggerModeId != ''"> and sf.trigger_mode_id = #{triggerModeId} </if> + <if test="nifiGroupId != null and nifiGroupId != ''"> and sf.nifi_group_id = #{nifiGroupId} </if> + <if test="description != null and description != ''"> and sf.description = #{description} </if> + and sf.sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sf.sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity"> + select count(1) from sys_flow + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="status != null and status != ''"> and status = #{status} </if> + <if test="classId != null and classId != ''"> and class_id = #{classId} </if> + <if test="triggerModeId != null and triggerModeId != ''"> and trigger_mode_id = #{triggerModeId} </if> + <if test="nifiGroupId != null and nifiGroupId != ''"> and nifi_group_id = #{nifiGroupId} </if> + <if test="description != null and description != ''"> and description = #{description} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity"> + select + <include refid="SysFlowEntity_Base_Column_List" /> + from sys_flow sf + left join sys_flow_class sfc on sfc.id = sf.class_id + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and sf.id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and sf.create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and sf.create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and sf.modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and sf.modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sf.sts like concat('%',#{sts},'%') </if> + <if test="name != null and name != ''"> and sf.name like concat('%',#{name},'%') </if> + <if test="status != null and status != ''"> and sf.status like concat('%',#{status},'%') </if> + <if test="classId != null and classId != ''"> and sf.class_id like concat('%',#{classId},'%') </if> + <if test="triggerModeId != null and triggerModeId != ''"> and sf.trigger_mode_id like concat('%',#{triggerModeId},'%') </if> + <if test="nifiGroupId != null and nifiGroupId != ''"> and sf.nifi_group_id like concat('%',#{nifiGroupId},'%') </if> + <if test="description != null and description != ''"> and sf.description like concat('%',#{description},'%') </if> + and sf.sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sf.sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowentity_list_or" resultMap="get-SysFlowEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity"> + select + <include refid="SysFlowEntity_Base_Column_List" /> + from sys_flow sf + left join sys_flow_class sfc on sfc.id = sf.class_id + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or sf.id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or sf.create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or sf.create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or sf.modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or sf.modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sf.sts = #{sts} </if> + <if test="name != null and name != ''"> or sf.name = #{name} </if> + <if test="status != null and status != ''"> or sf.status = #{status} </if> + <if test="classId != null and classId != ''"> or sf.class_id = #{classId} </if> + <if test="triggerModeId != null and triggerModeId != ''"> or sf.trigger_mode_id = #{triggerModeId} </if> + <if test="nifiGroupId != null and nifiGroupId != ''"> or sf.nifi_group_id = #{nifiGroupId} </if> + <if test="description != null and description != ''"> or sf.description = #{description} </if> + and sf.sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">id ,</if> + <if test="create_user_id != null and create_user_id != ''">create_user_id ,</if> + <if test="create_time != null">create_time ,</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id ,</if> + <if test="modify_time != null">modify_time ,</if> + <if test="sts != null and sts != ''">sts ,</if> + <if test="name != null and name != ''">name ,</if> + <if test="status != null and status != ''">status ,</if> + <if test="classId != null and classId != ''">class_id ,</if> + <if test="triggerModeId != null and triggerModeId != ''">trigger_mode_id ,</if> + <if test="nifiGroupId != null and nifiGroupId != ''">nifi_group_id ,</if> + <if test="description != null and description != ''">description ,</if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">#{id} ,</if> + <if test="create_user_id != null and create_user_id != ''">#{create_user_id} ,</if> + <if test="create_time != null">#{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''">#{modify_user_id} ,</if> + <if test="modify_time != null">#{modify_time} ,</if> + <if test="sts != null and sts != ''">#{sts} ,</if> + <if test="name != null and name != ''">#{name} ,</if> + <if test="status != null and status != ''">#{status} ,</if> + <if test="classId != null and classId != ''">#{classId} ,</if> + <if test="triggerModeId != null and triggerModeId != ''">#{triggerModeId} ,</if> + <if test="nifiGroupId != null and nifiGroupId != ''">#{nifiGroupId} ,</if> + <if test="description != null and description != ''">#{description} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow a WHERE a.sts = 'Y' ),1), + </if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow(create_user_id, create_time, modify_user_id, modify_time, sts, name,status, class_id, trigger_mode_id, nifi_group_id, description, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},${entity.status},#{entity.classId},#{entity.triggerModeId},#{entity.nifiGroupId},#{entity.description}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow(create_user_id, create_time, modify_user_id, modify_time, sts, name, status,class_id, trigger_mode_id, nifi_group_id, description) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},#{entity.status},#{entity.classId},#{entity.triggerModeId},#{entity.nifiGroupId},#{entity.description}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + name = values(name), + class_id = values(class_id), + trigger_mode_id = values(trigger_mode_id), + nifi_group_id = values(nifi_group_id), + description = values(description)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity" > +update sys_flow set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="name != null and name != ''"> name = #{name},</if> + <if test="status != null and status != ''"> status = #{status},</if> + <if test="classId != null and classId != ''"> class_id = #{classId},</if> + <if test="triggerModeId != null and triggerModeId != ''"> trigger_mode_id = #{triggerModeId},</if> + <if test="nifiGroupId != null and nifiGroupId != ''"> nifi_group_id = #{nifiGroupId},</if> + <if test="description != null and description != ''"> description = #{description},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity" > +update sys_flow set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowEntity" > +update sys_flow set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="classId != null and classId != ''"> and class_id = #{classId} </if> + <if test="triggerModeId != null and triggerModeId != ''"> and trigger_mode_id = #{triggerModeId} </if> + <if test="nifiGroupId != null and nifiGroupId != ''"> and nifi_group_id = #{nifiGroupId} </if> + <if test="description != null and description != ''"> and description = #{description} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.java new file mode 100644 index 00000000..1935fe3a --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.java @@ -0,0 +1,66 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * nifi常量(SysFlowNifiConstant)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public class SysFlowNifiConstantEntity extends BaseEntity { + + /** 键 */ + private String nifiKey; + /** 值 */ + private String nifiValue; + /** 显示值 */ + private String showValue; + /** 描述 */ + private String description; + /** 分类 */ + private String type; + + + public String getNifiKey() { + return nifiKey; + } + + public void setNifiKey(String nifiKey) { + this.nifiKey = nifiKey; + } + + public String getNifiValue() { + return nifiValue; + } + + public void setNifiValue(String nifiValue) { + this.nifiValue = nifiValue; + } + + public String getShowValue() { + return showValue; + } + + public void setShowValue(String showValue) { + this.showValue = showValue; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.xml new file mode 100644 index 00000000..08a53105 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowNifiConstantEntity.xml @@ -0,0 +1,226 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowNifiConstantDaoImpl"> + + <resultMap id="get-SysFlowNifiConstantEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="nifiKey" column="nifi_key" jdbcType="VARCHAR"/> + <result property="nifiValue" column="nifi_value" jdbcType="VARCHAR"/> + <result property="showValue" column="show_value" jdbcType="VARCHAR"/> + <result property="description" column="description" jdbcType="VARCHAR"/> + <result property="type" column="type" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowNifiConstantEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,nifi_key + ,nifi_value + ,show_value + ,description + ,type + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowNifiConstantEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity"> + select + <include refid="SysFlowNifiConstantEntity_Base_Column_List" /> + from sys_flow_nifi_constant + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="nifiKey != null and nifiKey != ''"> and nifi_key = #{nifiKey} </if> + <if test="nifiValue != null and value != ''"> and nifi_value = #{nifiValue} </if> + <if test="showValue != null and showValue != ''"> and show_value = #{showValue} </if> + <if test="description != null and description != ''"> and description = #{description} </if> + <if test="type != null and type != ''"> and type = #{type} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity"> + select count(1) from sys_flow_nifi_constant + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="nifiKey != null and nifiKey != ''"> and nifi_key = #{nifiKey} </if> + <if test="nifiValue != null and nifiValue != ''"> and nifi_value = #{nifiValue} </if> + <if test="showValue != null and showValue != ''"> and show_value = #{showValue} </if> + <if test="description != null and description != ''"> and description = #{description} </if> + <if test="type != null and type != ''"> and type = #{type} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowNifiConstantEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity"> + select + <include refid="SysFlowNifiConstantEntity_Base_Column_List" /> + from sys_flow_nifi_constant + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="nifiKey != null and nifiKey != ''"> and nifi_key like concat('%',#{nifiKey},'%') </if> + <if test="nifiValue != null and nifiValue != ''"> and nifi_value like concat('%',#{nifiValue},'%') </if> + <if test="showValue != null and showValue != ''"> and show_value like concat('%',#{showValue},'%') </if> + <if test="description != null and description != ''"> and description like concat('%',#{description},'%') </if> + <if test="type != null and type != ''"> and type like concat('%',#{type},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowNifiConstantentity_list_or" resultMap="get-SysFlowNifiConstantEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity"> + select + <include refid="SysFlowNifiConstantEntity_Base_Column_List" /> + from sys_flow_nifi_constant + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="nifiKey != null and nifiKey != ''"> or nifi_key = #{nifiKey} </if> + <if test="nifiValue != null and nifiValue != ''"> or nifi_value = #{nifiValue} </if> + <if test="showValue != null and showValue != ''"> or show_value = #{showValue} </if> + <if test="description != null and description != ''"> or description = #{description} </if> + <if test="type != null and type != ''"> or type = #{type} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_nifi_constant( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="create_time != null"> create_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="nifiKey != null and nifiKey != ''"> nifi_key , </if> + <if test="nifiValue != null and nifiValue != ''"> nifi_value , </if> + <if test="showValue != null and showValue != ''"> show_value , </if> + <if test="description != null and description != ''"> description , </if> + <if test="type != null and type != ''"> type , </if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="nifiKey != null and nifiKey != ''"> #{nifiKey} ,</if> + <if test="nifiValue != null and nifiValue != ''"> #{nifiValue} ,</if> + <if test="showValue != null and showValue != ''"> #{showValue} ,</if> + <if test="description != null and description != ''"> #{description} ,</if> + <if test="type != null and type != ''"> #{type} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_nifi_constant a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_nifi_constant(create_user_id, create_time, modify_user_id, modify_time, sts, nifi_key, nifi_value, show_value, description, type, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.nifiKey},#{entity.nifiValue},#{entity.showValue},#{entity.description},#{entity.type}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_nifi_constant(create_user_id, create_time, modify_user_id, modify_time, sts, nifi_key, nifi_value, show_value, description, type) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.nifiKey},#{entity.nifiValue},#{entity.showValue},#{entity.description},#{entity.type}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + nifi_key = values(nifiKey), + nifi_value = values(nifiValue), + show_value = values(show_value), + description = values(description), + type = values(type)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity" > +update sys_flow_nifi_constant set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="nifiKey != null and nifiKey != ''"> nifi_key = #{nifiKey},</if> + <if test="nifiValue != null and nifiValue != ''"> nifi_value = #{nifiValue},</if> + <if test="showValue != null and showValue != ''"> show_value = #{showValue},</if> + <if test="description != null and description != ''"> description = #{description},</if> + <if test="type != null and type != ''"> type = #{type},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity" > +update sys_flow_nifi_constant set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity" > +update sys_flow_nifi_constant set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="nifiKey != null and nifiKey != ''"> andnifi_ key = #{nifiKey} </if> + <if test="nifiValue != null and nifiValue != ''"> and nifi_value = #{nifiValue} </if> + <if test="showValue != null and showValue != ''"> and show_value = #{showValue} </if> + <if test="description != null and description != ''"> and description = #{description} </if> + <if test="type != null and type != ''"> and type = #{type} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_nifi_constant where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.java new file mode 100644 index 00000000..246f11f4 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.java @@ -0,0 +1,126 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 流程步骤账户表(SysFlowStepAccount)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public class SysFlowStepAccountEntity extends BaseEntity { + + /** 账户名称 */ + private String name; + /** ip地址 */ + private String ipAddress; + /** 端口 */ + private String port; + /** 数据库名称 */ + private String dbName; + /** 用户名 */ + private String userName; + /** 密码 */ + private String password; + /** 数据库类型 */ + private String dbType; + /** 应用key */ + private String appKey; + /** 应用密钥 */ + private String appSecret; + /** 企业id */ + private String corpid; + /** 应用id */ + private String agentid; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIpAddress() { + return ipAddress; + } + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + public String getPort() { + return port; + } + + public void setPort(String port) { + this.port = port; + } + + public String getDbName() { + return dbName; + } + + public void setDbName(String dbName) { + this.dbName = dbName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getDbType() { + return dbType; + } + + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAppSecret() { + return appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } + + public String getCorpid() { + return corpid; + } + + public void setCorpid(String corpid) { + this.corpid = corpid; + } + + public String getAgentid() { + return agentid; + } + + public void setAgentid(String agentid) { + this.agentid = agentid; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.xml new file mode 100644 index 00000000..acf594f0 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepAccountEntity.xml @@ -0,0 +1,292 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowStepAccountDaoImpl"> + + <resultMap id="get-SysFlowStepAccountEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="ipAddress" column="ip_address" jdbcType="VARCHAR"/> + <result property="port" column="port" jdbcType="VARCHAR"/> + <result property="dbName" column="db_name" jdbcType="VARCHAR"/> + <result property="userName" column="user_name" jdbcType="VARCHAR"/> + <result property="password" column="password" jdbcType="VARCHAR"/> + <result property="dbType" column="db_type" jdbcType="VARCHAR"/> + <result property="appKey" column="app_key" jdbcType="VARCHAR"/> + <result property="appSecret" column="app_secret" jdbcType="VARCHAR"/> + <result property="corpid" column="corpId" jdbcType="VARCHAR"/> + <result property="agentid" column="agentId" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowStepAccountEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,name + ,ip_address + ,port + ,db_name + ,user_name + ,password + ,db_type + ,app_key + ,app_secret + ,corpId + ,agentId + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowStepAccountEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity"> + select + <include refid="SysFlowStepAccountEntity_Base_Column_List" /> + from sys_flow_step_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="ipAddress != null and ipAddress != ''"> and ip_address = #{ipAddress} </if> + <if test="port != null and port != ''"> and port = #{port} </if> + <if test="dbName != null and dbName != ''"> and db_name = #{dbName} </if> + <if test="userName != null and userName != ''"> and user_name = #{userName} </if> + <if test="password != null and password != ''"> and password = #{password} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="appKey != null and appKey != ''"> and app_key = #{appKey} </if> + <if test="appSecret != null and appSecret != ''"> and app_secret = #{appSecret} </if> + <if test="corpid != null and corpid != ''"> and corpId = #{corpid} </if> + <if test="agentid != null and agentid != ''"> and agentId = #{agentid} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity"> + select count(1) from sys_flow_step_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="ipAddress != null and ipAddress != ''"> and ip_address = #{ipAddress} </if> + <if test="port != null and port != ''"> and port = #{port} </if> + <if test="dbName != null and dbName != ''"> and db_name = #{dbName} </if> + <if test="userName != null and userName != ''"> and user_name = #{userName} </if> + <if test="password != null and password != ''"> and password = #{password} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="appKey != null and appKey != ''"> and app_key = #{appKey} </if> + <if test="appSecret != null and appSecret != ''"> and app_secret = #{appSecret} </if> + <if test="corpid != null and corpid != ''"> and corpId = #{corpid} </if> + <if test="agentid != null and agentid != ''"> and agentId = #{agentid} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowStepAccountEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity"> + select + <include refid="SysFlowStepAccountEntity_Base_Column_List" /> + from sys_flow_step_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="name != null and name != ''"> and name like concat('%',#{name},'%') </if> + <if test="ipAddress != null and ipAddress != ''"> and ip_address like concat('%',#{ipAddress},'%') </if> + <if test="port != null and port != ''"> and port like concat('%',#{port},'%') </if> + <if test="dbName != null and dbName != ''"> and db_name like concat('%',#{dbName},'%') </if> + <if test="userName != null and userName != ''"> and user_name like concat('%',#{userName},'%') </if> + <if test="password != null and password != ''"> and password like concat('%',#{password},'%') </if> + <if test="dbType != null and dbType != ''"> and db_type like concat('%',#{dbType},'%') </if> + <if test="appKey != null and appKey != ''"> and app_key like concat('%',#{appKey},'%') </if> + <if test="appSecret != null and appSecret != ''"> and app_secret like concat('%',#{appSecret},'%') </if> + <if test="corpid != null and corpid != ''"> and corpId like concat('%',#{corpid},'%') </if> + <if test="agentid != null and agentid != ''"> and agentId like concat('%',#{agentid},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowStepAccountentity_list_or" resultMap="get-SysFlowStepAccountEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity"> + select + <include refid="SysFlowStepAccountEntity_Base_Column_List" /> + from sys_flow_step_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="name != null and name != ''"> or name = #{name} </if> + <if test="ipAddress != null and ipAddress != ''"> or ip_address = #{ipAddress} </if> + <if test="port != null and port != ''"> or port = #{port} </if> + <if test="dbName != null and dbName != ''"> or db_name = #{dbName} </if> + <if test="userName != null and userName != ''"> or user_name = #{userName} </if> + <if test="password != null and password != ''"> or password = #{password} </if> + <if test="dbType != null and dbType != ''"> or db_type = #{dbType} </if> + <if test="appKey != null and appKey != ''"> or app_key = #{appKey} </if> + <if test="appSecret != null and appSecret != ''"> or app_secret = #{appSecret} </if> + <if test="corpid != null and corpid != ''"> or corpId = #{corpid} </if> + <if test="agentid != null and agentid != ''"> or agentId = #{agentid} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_account( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="create_time != null"> create_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="name != null and name != ''"> name , </if> + <if test="ipAddress != null and ipAddress != ''"> ip_address , </if> + <if test="port != null and port != ''"> port , </if> + <if test="dbName != null and dbName != ''"> db_name , </if> + <if test="userName != null and userName != ''"> user_name , </if> + <if test="password != null and password != ''"> password , </if> + <if test="dbType != null and dbType != ''"> db_type , </if> + <if test="appKey != null and appKey != ''"> app_key , </if> + <if test="appSecret != null and appSecret != ''"> app_secret , </if> + <if test="corpid != null and corpid != ''"> corpId , </if> + <if test="agentid != null and agentid != ''"> agentId , </if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="name != null and name != ''"> #{name} ,</if> + <if test="ipAddress != null and ipAddress != ''"> #{ipAddress} ,</if> + <if test="port != null and port != ''"> #{port} ,</if> + <if test="dbName != null and dbName != ''"> #{dbName} ,</if> + <if test="userName != null and userName != ''"> #{userName} ,</if> + <if test="password != null and password != ''"> #{password} ,</if> + <if test="dbType != null and dbType != ''"> #{dbType} ,</if> + <if test="appKey != null and appKey != ''"> #{appKey} ,</if> + <if test="appSecret != null and appSecret != ''"> #{appSecret} ,</if> + <if test="corpid != null and corpid != ''"> #{corpid} ,</if> + <if test="agentid != null and agentid != ''"> #{agentid} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_step_account a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_account(create_user_id, create_time, modify_user_id, modify_time, sts, name, ip_address, port, db_name, user_name, password, db_type, app_key, app_secret, corpId, agentId, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},#{entity.ipAddress},#{entity.port},#{entity.dbName},#{entity.userName},#{entity.password},#{entity.dbType},#{entity.appKey},#{entity.appSecret},#{entity.corpid},#{entity.agentid}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_account(create_user_id, create_time, modify_user_id, modify_time, sts, name, ip_address, port, db_name, user_name, password, db_type, app_key, app_secret, corpId, agentId) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.name},#{entity.ipAddress},#{entity.port},#{entity.dbName},#{entity.userName},#{entity.password},#{entity.dbType},#{entity.appKey},#{entity.appSecret},#{entity.corpid},#{entity.agentid}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + name = values(name), + ip_address = values(ip_address), + port = values(port), + db_name = values(db_name), + user_name = values(user_name), + password = values(password), + db_type = values(db_type), + app_key = values(app_key), + app_secret = values(app_secret), + corpId = values(corpId), + agentId = values(agentId)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity" > +update sys_flow_step_account set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="name != null and name != ''"> name = #{name},</if> + <if test="ipAddress != null and ipAddress != ''"> ip_address = #{ipAddress},</if> + <if test="port != null and port != ''"> port = #{port},</if> + <if test="dbName != null and dbName != ''"> db_name = #{dbName},</if> + <if test="userName != null and userName != ''"> user_name = #{userName},</if> + <if test="password != null and password != ''"> password = #{password},</if> + <if test="dbType != null and dbType != ''"> db_type = #{dbType},</if> + <if test="appKey != null and appKey != ''"> app_key = #{appKey},</if> + <if test="appSecret != null and appSecret != ''"> app_secret = #{appSecret},</if> + <if test="corpid != null and corpid != ''"> corpId = #{corpid},</if> + <if test="agentid != null and agentid != ''"> agentId = #{agentid},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity" > +update sys_flow_step_account set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity" > +update sys_flow_step_account set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="ipAddress != null and ipAddress != ''"> and ip_address = #{ipAddress} </if> + <if test="port != null and port != ''"> and port = #{port} </if> + <if test="dbName != null and dbName != ''"> and db_name = #{dbName} </if> + <if test="userName != null and userName != ''"> and user_name = #{userName} </if> + <if test="password != null and password != ''"> and password = #{password} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="appKey != null and appKey != ''"> and app_key = #{appKey} </if> + <if test="appSecret != null and appSecret != ''"> and app_secret = #{appSecret} </if> + <if test="corpid != null and corpid != ''"> and corpId = #{corpid} </if> + <if test="agentid != null and agentid != ''"> and agentId = #{agentid} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_step_account where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.java new file mode 100644 index 00000000..89e9bcda --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.java @@ -0,0 +1,126 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 映射信息表体(SysFlowStepConfigB)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public class SysFlowStepConfigBEntity extends BaseEntity { + + /** 主表id */ + private String mainId; + /** 流程id */ + private String flowId; + /** 步骤id */ + private String stepId; + /** 是否主键 */ + private String primaryKeyFlag; + /** 字段名 */ + private String fieldName; + /** 字段备注 */ + private String fieldDescription; + /** 字段类型 */ + private String fieldType; + /** 查询条件 */ + private String whereCondition; + /** 源字段名称;适用于插入场景 */ + private String sourceFieldName; + /** 源字段类型;适用于插入场景 */ + private String sourceFieldType; + /** 源字段描述;适用于插入场景 */ + private String sourceFieldDescription; + + + public String getMainId() { + return mainId; + } + + public void setMainId(String mainId) { + this.mainId = mainId; + } + + public String getFlowId() { + return flowId; + } + + public void setFlowId(String flowId) { + this.flowId = flowId; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public String getPrimaryKeyFlag() { + return primaryKeyFlag; + } + + public void setPrimaryKeyFlag(String primaryKeyFlag) { + this.primaryKeyFlag = primaryKeyFlag; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldDescription() { + return fieldDescription; + } + + public void setFieldDescription(String fieldDescription) { + this.fieldDescription = fieldDescription; + } + + public String getFieldType() { + return fieldType; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + public String getWhereCondition() { + return whereCondition; + } + + public void setWhereCondition(String whereCondition) { + this.whereCondition = whereCondition; + } + + public String getSourceFieldName() { + return sourceFieldName; + } + + public void setSourceFieldName(String sourceFieldName) { + this.sourceFieldName = sourceFieldName; + } + + public String getSourceFieldType() { + return sourceFieldType; + } + + public void setSourceFieldType(String sourceFieldType) { + this.sourceFieldType = sourceFieldType; + } + + public String getSourceFieldDescription() { + return sourceFieldDescription; + } + + public void setSourceFieldDescription(String sourceFieldDescription) { + this.sourceFieldDescription = sourceFieldDescription; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.xml new file mode 100644 index 00000000..0af1386b --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigBEntity.xml @@ -0,0 +1,292 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowStepConfigBDaoImpl"> + + <resultMap id="get-SysFlowStepConfigBEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="mainId" column="main_id" jdbcType="VARCHAR"/> + <result property="flowId" column="flow_id" jdbcType="VARCHAR"/> + <result property="stepId" column="step_id" jdbcType="VARCHAR"/> + <result property="primaryKeyFlag" column="primary_key_flag" jdbcType="VARCHAR"/> + <result property="fieldName" column="field_name" jdbcType="VARCHAR"/> + <result property="fieldDescription" column="field_description" jdbcType="VARCHAR"/> + <result property="fieldType" column="field_type" jdbcType="VARCHAR"/> + <result property="whereCondition" column="where_condition" jdbcType="VARCHAR"/> + <result property="sourceFieldName" column="source_field_name" jdbcType="VARCHAR"/> + <result property="sourceFieldType" column="source_field_type" jdbcType="VARCHAR"/> + <result property="sourceFieldDescription" column="source_field_description" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowStepConfigBEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,main_id + ,flow_id + ,step_id + ,primary_key_flag + ,field_name + ,field_description + ,field_type + ,where_condition + ,source_field_name + ,source_field_type + ,source_field_description + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowStepConfigBEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity"> + select + <include refid="SysFlowStepConfigBEntity_Base_Column_List" /> + from sys_flow_step_config_b + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="mainId != null and mainId != ''"> and main_id = #{mainId} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> and primary_key_flag = #{primaryKeyFlag} </if> + <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if> + <if test="fieldDescription != null and fieldDescription != ''"> and field_description = #{fieldDescription} </if> + <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if> + <if test="whereCondition != null and whereCondition != ''"> and where_condition = #{whereCondition} </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> and source_field_name = #{sourceFieldName} </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> and source_field_type = #{sourceFieldType} </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> and source_field_description = #{sourceFieldDescription} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity"> + select count(1) from sys_flow_step_config_b + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="mainId != null and mainId != ''"> and main_id = #{mainId} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> and primary_key_flag = #{primaryKeyFlag} </if> + <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if> + <if test="fieldDescription != null and fieldDescription != ''"> and field_description = #{fieldDescription} </if> + <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if> + <if test="whereCondition != null and whereCondition != ''"> and where_condition = #{whereCondition} </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> and source_field_name = #{sourceFieldName} </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> and source_field_type = #{sourceFieldType} </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> and source_field_description = #{sourceFieldDescription} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowStepConfigBEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity"> + select + <include refid="SysFlowStepConfigBEntity_Base_Column_List" /> + from sys_flow_step_config_b + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="mainId != null and mainId != ''"> and main_id like concat('%',#{mainId},'%') </if> + <if test="flowId != null and flowId != ''"> and flow_id like concat('%',#{flowId},'%') </if> + <if test="stepId != null and stepId != ''"> and step_id like concat('%',#{stepId},'%') </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> and primary_key_flag like concat('%',#{primaryKeyFlag},'%') </if> + <if test="fieldName != null and fieldName != ''"> and field_name like concat('%',#{fieldName},'%') </if> + <if test="fieldDescription != null and fieldDescription != ''"> and field_description like concat('%',#{fieldDescription},'%') </if> + <if test="fieldType != null and fieldType != ''"> and field_type like concat('%',#{fieldType},'%') </if> + <if test="whereCondition != null and whereCondition != ''"> and where_condition like concat('%',#{whereCondition},'%') </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> and source_field_name like concat('%',#{sourceFieldName},'%') </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> and source_field_type like concat('%',#{sourceFieldType},'%') </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> and source_field_description like concat('%',#{sourceFieldDescription},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowStepConfigBentity_list_or" resultMap="get-SysFlowStepConfigBEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity"> + select + <include refid="SysFlowStepConfigBEntity_Base_Column_List" /> + from sys_flow_step_config_b + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="mainId != null and mainId != ''"> or main_id = #{mainId} </if> + <if test="flowId != null and flowId != ''"> or flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> or step_id = #{stepId} </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> or primary_key_flag = #{primaryKeyFlag} </if> + <if test="fieldName != null and fieldName != ''"> or field_name = #{fieldName} </if> + <if test="fieldDescription != null and fieldDescription != ''"> or field_description = #{fieldDescription} </if> + <if test="fieldType != null and fieldType != ''"> or field_type = #{fieldType} </if> + <if test="whereCondition != null and whereCondition != ''"> or where_condition = #{whereCondition} </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> or source_field_name = #{sourceFieldName} </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> or source_field_type = #{sourceFieldType} </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> or source_field_description = #{sourceFieldDescription} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config_b( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="create_time != null"> create_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="mainId != null and mainId != ''"> main_id , </if> + <if test="flowId != null and flowId != ''"> flow_id , </if> + <if test="stepId != null and stepId != ''"> step_id , </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> primary_key_flag , </if> + <if test="fieldName != null and fieldName != ''"> field_name , </if> + <if test="fieldDescription != null and fieldDescription != ''"> field_description , </if> + <if test="fieldType != null and fieldType != ''"> field_type , </if> + <if test="whereCondition != null and whereCondition != ''"> where_condition , </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> source_field_name , </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> source_field_type , </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> source_field_description , </if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="mainId != null and mainId != ''"> #{mainId} ,</if> + <if test="flowId != null and flowId != ''"> #{flowId} ,</if> + <if test="stepId != null and stepId != ''"> #{stepId} ,</if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> #{primaryKeyFlag} ,</if> + <if test="fieldName != null and fieldName != ''"> #{fieldName} ,</if> + <if test="fieldDescription != null and fieldDescription != ''"> #{fieldDescription} ,</if> + <if test="fieldType != null and fieldType != ''"> #{fieldType} ,</if> + <if test="whereCondition != null and whereCondition != ''"> #{whereCondition} ,</if> + <if test="sourceFieldName != null and sourceFieldName != ''"> #{sourceFieldName} ,</if> + <if test="sourceFieldType != null and sourceFieldType != ''"> #{sourceFieldType} ,</if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> #{sourceFieldDescription} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_step_config_b a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config_b(create_user_id, create_time, modify_user_id, modify_time, sts, main_id, flow_id, step_id, primary_key_flag, field_name, field_description, field_type, where_condition, source_field_name, source_field_type, source_field_description, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.mainId},#{entity.flowId},#{entity.stepId},#{entity.primaryKeyFlag},#{entity.fieldName},#{entity.fieldDescription},#{entity.fieldType},#{entity.whereCondition},#{entity.sourceFieldName},#{entity.sourceFieldType},#{entity.sourceFieldDescription}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config_b(create_user_id, create_time, modify_user_id, modify_time, sts, main_id, flow_id, step_id, primary_key_flag, field_name, field_description, field_type, where_condition, source_field_name, source_field_type, source_field_description) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.mainId},#{entity.flowId},#{entity.stepId},#{entity.primaryKeyFlag},#{entity.fieldName},#{entity.fieldDescription},#{entity.fieldType},#{entity.whereCondition},#{entity.sourceFieldName},#{entity.sourceFieldType},#{entity.sourceFieldDescription}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + main_id = values(main_id), + flow_id = values(flow_id), + step_id = values(step_id), + primary_key_flag = values(primary_key_flag), + field_name = values(field_name), + field_description = values(field_description), + field_type = values(field_type), + where_condition = values(where_condition), + source_field_name = values(source_field_name), + source_field_type = values(source_field_type), + source_field_description = values(source_field_description)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity" > +update sys_flow_step_config_b set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="mainId != null and mainId != ''"> main_id = #{mainId},</if> + <if test="flowId != null and flowId != ''"> flow_id = #{flowId},</if> + <if test="stepId != null and stepId != ''"> step_id = #{stepId},</if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> primary_key_flag = #{primaryKeyFlag},</if> + <if test="fieldName != null and fieldName != ''"> field_name = #{fieldName},</if> + <if test="fieldDescription != null and fieldDescription != ''"> field_description = #{fieldDescription},</if> + <if test="fieldType != null and fieldType != ''"> field_type = #{fieldType},</if> + <if test="whereCondition != null and whereCondition != ''"> where_condition = #{whereCondition},</if> + <if test="sourceFieldName != null and sourceFieldName != ''"> source_field_name = #{sourceFieldName},</if> + <if test="sourceFieldType != null and sourceFieldType != ''"> source_field_type = #{sourceFieldType},</if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> source_field_description = #{sourceFieldDescription},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity" > +update sys_flow_step_config_b set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity" > +update sys_flow_step_config_b set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="mainId != null and mainId != ''"> and main_id = #{mainId} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="primaryKeyFlag != null and primaryKeyFlag != ''"> and primary_key_flag = #{primaryKeyFlag} </if> + <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if> + <if test="fieldDescription != null and fieldDescription != ''"> and field_description = #{fieldDescription} </if> + <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if> + <if test="whereCondition != null and whereCondition != ''"> and where_condition = #{whereCondition} </if> + <if test="sourceFieldName != null and sourceFieldName != ''"> and source_field_name = #{sourceFieldName} </if> + <if test="sourceFieldType != null and sourceFieldType != ''"> and source_field_type = #{sourceFieldType} </if> + <if test="sourceFieldDescription != null and sourceFieldDescription != ''"> and source_field_description = #{sourceFieldDescription} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_step_config_b where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.java new file mode 100644 index 00000000..e8e426d9 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.java @@ -0,0 +1,136 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 映射信息主表(SysFlowStepConfig)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public class SysFlowStepConfigEntity extends BaseEntity { + + /** 流程id */ + private String flowId; + /** 步骤id */ + private String stepId; + /** 流程操作步骤配置表id */ + private String setpConfigId; + /** 操作类型 */ + private String actionName; + /** 数据库类型;数据库类型+版本 */ + private String dbType; + /** 表名称 */ + private String tableName; + /** 页码 */ + private String rowNum; + /** 每页条数 */ + private String pageLimit; + /** 增量数据字段;例如ts */ + private String maxValueField; + /** 是否建表 */ + private String createTableFlag; + /** 写入模式;覆盖写入/增量写入 */ + private String writeType; + /** 动态sql语句 */ + private String sqlStatement; + + + public String getFlowId() { + return flowId; + } + + public void setFlowId(String flowId) { + this.flowId = flowId; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public String getSetpConfigId() { + return setpConfigId; + } + + public void setSetpConfigId(String setpConfigId) { + this.setpConfigId = setpConfigId; + } + + public String getActionName() { + return actionName; + } + + public void setActionName(String actionName) { + this.actionName = actionName; + } + + public String getDbType() { + return dbType; + } + + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getRowNum() { + return rowNum; + } + + public void setRowNum(String rowNum) { + this.rowNum = rowNum; + } + + public String getpageLimit() { + return pageLimit; + } + + public void setpageLimit(String pageLimit) { + this.pageLimit = pageLimit; + } + + public String getMaxValueField() { + return maxValueField; + } + + public void setMaxValueField(String maxValueField) { + this.maxValueField = maxValueField; + } + + public String getCreateTableFlag() { + return createTableFlag; + } + + public void setCreateTableFlag(String createTableFlag) { + this.createTableFlag = createTableFlag; + } + + public String getWriteType() { + return writeType; + } + + public void setWriteType(String writeType) { + this.writeType = writeType; + } + + public String getSqlStatement() { + return sqlStatement; + } + + public void setSqlStatement(String sqlStatement) { + this.sqlStatement = sqlStatement; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.xml new file mode 100644 index 00000000..9137ef34 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepConfigEntity.xml @@ -0,0 +1,303 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowStepConfigDaoImpl"> + + <resultMap id="get-SysFlowStepConfigEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="flowId" column="flow_id" jdbcType="VARCHAR"/> + <result property="stepId" column="step_id" jdbcType="VARCHAR"/> + <result property="setpConfigId" column="setp_config_id" jdbcType="VARCHAR"/> + <result property="actionName" column="action_name" jdbcType="VARCHAR"/> + <result property="dbType" column="db_type" jdbcType="VARCHAR"/> + <result property="tableName" column="table_name" jdbcType="VARCHAR"/> + <result property="rowNum" column="row_num" jdbcType="VARCHAR"/> + <result property="pageLimit" column="page_limit" jdbcType="VARCHAR"/> + <result property="maxValueField" column="max_value_field" jdbcType="VARCHAR"/> + <result property="createTableFlag" column="create_table_flag" jdbcType="VARCHAR"/> + <result property="writeType" column="write_type" jdbcType="VARCHAR"/> + <result property="sqlStatement" column="sql_statement" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowStepConfigEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,flow_id + ,step_id + ,setp_config_id + ,action_name + ,db_type + ,table_name + ,row_num + ,page_limit + ,max_value_field + ,create_table_flag + ,write_type + ,sql_statement + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowStepConfigEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity"> + select + <include refid="SysFlowStepConfigEntity_Base_Column_List" /> + from sys_flow_step_config + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="setpConfigId != null and setpConfigId != ''"> and setp_config_id = #{setpConfigId} </if> + <if test="actionName != null and actionName != ''"> and action_name = #{actionName} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="tableName != null and tableName != ''"> and table_name = #{tableName} </if> + <if test="rowNum != null and rowNum != ''"> and row_num = #{rowNum} </if> + <if test="pageLimit != null and pageLimit != ''"> and page_limit = #{pageLimit} </if> + <if test="maxValueField != null and maxValueField != ''"> and max_value_field = #{maxValueField} </if> + <if test="createTableFlag != null and createTableFlag != ''"> and create_table_flag = #{createTableFlag} </if> + <if test="writeType != null and writeType != ''"> and write_type = #{writeType} </if> + <if test="sqlStatement != null and sqlStatement != ''"> and sql_statement = #{sqlStatement} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity"> + select count(1) from sys_flow_step_config + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="setpConfigId != null and setpConfigId != ''"> and setp_config_id = #{setpConfigId} </if> + <if test="actionName != null and actionName != ''"> and action_name = #{actionName} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="tableName != null and tableName != ''"> and table_name = #{tableName} </if> + <if test="rowNum != null and rowNum != ''"> and row_num = #{rowNum} </if> + <if test="pageLimit != null and pageLimit != ''"> and page_limit = #{pageLimit} </if> + <if test="maxValueField != null and maxValueField != ''"> and max_value_field = #{maxValueField} </if> + <if test="createTableFlag != null and createTableFlag != ''"> and create_table_flag = #{createTableFlag} </if> + <if test="writeType != null and writeType != ''"> and write_type = #{writeType} </if> + <if test="sqlStatement != null and sqlStatement != ''"> and sql_statement = #{sqlStatement} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowStepConfigEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity"> + select + <include refid="SysFlowStepConfigEntity_Base_Column_List" /> + from sys_flow_step_config + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="flowId != null and flowId != ''"> and flow_id like concat('%',#{flowId},'%') </if> + <if test="stepId != null and stepId != ''"> and step_id like concat('%',#{stepId},'%') </if> + <if test="setpConfigId != null and setpConfigId != ''"> and setp_config_id like concat('%',#{setpConfigId},'%') </if> + <if test="actionName != null and actionName != ''"> and action_name like concat('%',#{actionName},'%') </if> + <if test="dbType != null and dbType != ''"> and db_type like concat('%',#{dbType},'%') </if> + <if test="tableName != null and tableName != ''"> and table_name like concat('%',#{tableName},'%') </if> + <if test="rowNum != null and rowNum != ''"> and row_num like concat('%',#{rowNum},'%') </if> + <if test="pageLimit != null and pageLimit != ''"> and page_limit like concat('%',#{pageLimit},'%') </if> + <if test="maxValueField != null and maxValueField != ''"> and max_value_field like concat('%',#{maxValueField},'%') </if> + <if test="createTableFlag != null and createTableFlag != ''"> and create_table_flag like concat('%',#{createTableFlag},'%') </if> + <if test="writeType != null and writeType != ''"> and write_type like concat('%',#{writeType},'%') </if> + <if test="sqlStatement != null and sqlStatement != ''"> and sql_statement like concat('%',#{sqlStatement},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowStepConfigentity_list_or" resultMap="get-SysFlowStepConfigEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity"> + select + <include refid="SysFlowStepConfigEntity_Base_Column_List" /> + from sys_flow_step_config + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="flowId != null and flowId != ''"> or flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> or step_id = #{stepId} </if> + <if test="setpConfigId != null and setpConfigId != ''"> or setp_config_id = #{setpConfigId} </if> + <if test="actionName != null and actionName != ''"> or action_name = #{actionName} </if> + <if test="dbType != null and dbType != ''"> or db_type = #{dbType} </if> + <if test="tableName != null and tableName != ''"> or table_name = #{tableName} </if> + <if test="rowNum != null and rowNum != ''"> or row_num = #{rowNum} </if> + <if test="pageLimit != null and pageLimit != ''"> or page_limit = #{pageLimit} </if> + <if test="maxValueField != null and maxValueField != ''"> or max_value_field = #{maxValueField} </if> + <if test="createTableFlag != null and createTableFlag != ''"> or create_table_flag = #{createTableFlag} </if> + <if test="writeType != null and writeType != ''"> or write_type = #{writeType} </if> + <if test="sqlStatement != null and sqlStatement != ''"> or sql_statement = #{sqlStatement} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="create_time != null"> create_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="flowId != null and flowId != ''"> flow_id , </if> + <if test="stepId != null and stepId != ''"> step_id , </if> + <if test="setpConfigId != null and setpConfigId != ''"> setp_config_id , </if> + <if test="actionName != null and actionName != ''"> action_name , </if> + <if test="dbType != null and dbType != ''"> db_type , </if> + <if test="tableName != null and tableName != ''"> table_name , </if> + <if test="rowNum != null and rowNum != ''"> row_num , </if> + <if test="pageLimit != null and pageLimit != ''"> page_limit , </if> + <if test="maxValueField != null and maxValueField != ''"> max_value_field , </if> + <if test="createTableFlag != null and createTableFlag != ''"> create_table_flag , </if> + <if test="writeType != null and writeType != ''"> write_type , </if> + <if test="sqlStatement != null and sqlStatement != ''"> sql_statement , </if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="flowId != null and flowId != ''"> #{flowId} ,</if> + <if test="stepId != null and stepId != ''"> #{stepId} ,</if> + <if test="setpConfigId != null and setpConfigId != ''"> #{setpConfigId} ,</if> + <if test="actionName != null and actionName != ''"> #{actionName} ,</if> + <if test="dbType != null and dbType != ''"> #{dbType} ,</if> + <if test="tableName != null and tableName != ''"> #{tableName} ,</if> + <if test="rowNum != null and rowNum != ''"> #{rowNum} ,</if> + <if test="pageLimit != null and pageLimit != ''"> #{pageLimit} ,</if> + <if test="maxValueField != null and maxValueField != ''"> #{maxValueField} ,</if> + <if test="createTableFlag != null and createTableFlag != ''"> #{createTableFlag} ,</if> + <if test="writeType != null and writeType != ''"> #{writeType} ,</if> + <if test="sqlStatement != null and sqlStatement != ''"> #{sqlStatement} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_step_config a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config(create_user_id, create_time, modify_user_id, modify_time, sts, flow_id, step_id, setp_config_id, action_name, db_type, table_name, row_num, page_limit, max_value_field, create_table_flag, write_type, sql_statement, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.flowId},#{entity.stepId},#{entity.setpConfigId},#{entity.actionName},#{entity.dbType},#{entity.tableName},#{entity.rowNum},#{entity.pageLimit},#{entity.maxValueField},#{entity.createTableFlag},#{entity.writeType},#{entity.sqlStatement}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_config(create_user_id, create_time, modify_user_id, modify_time, sts, flow_id, step_id, setp_config_id, action_name, db_type, table_name, row_num, page_limit, max_value_field, create_table_flag, write_type, sql_statement) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.flowId},#{entity.stepId},#{entity.setpConfigId},#{entity.actionName},#{entity.dbType},#{entity.tableName},#{entity.rowNum},#{entity.pageLimit},#{entity.maxValueField},#{entity.createTableFlag},#{entity.writeType},#{entity.sqlStatement}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + flow_id = values(flow_id), + step_id = values(step_id), + setp_config_id = values(setp_config_id), + action_name = values(action_name), + db_type = values(db_type), + table_name = values(table_name), + row_num = values(row_num), + page_limit = values(page_limit), + max_value_field = values(max_value_field), + create_table_flag = values(create_table_flag), + write_type = values(write_type), + sql_statement = values(sql_statement)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity" > +update sys_flow_step_config set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="flowId != null and flowId != ''"> flow_id = #{flowId},</if> + <if test="stepId != null and stepId != ''"> step_id = #{stepId},</if> + <if test="setpConfigId != null and setpConfigId != ''"> setp_config_id = #{setpConfigId},</if> + <if test="actionName != null and actionName != ''"> action_name = #{actionName},</if> + <if test="dbType != null and dbType != ''"> db_type = #{dbType},</if> + <if test="tableName != null and tableName != ''"> table_name = #{tableName},</if> + <if test="rowNum != null and rowNum != ''"> row_num = #{rowNum},</if> + <if test="pageLimit != null and pageLimit != ''"> page_limit = #{pageLimit},</if> + <if test="maxValueField != null and maxValueField != ''"> max_value_field = #{maxValueField},</if> + <if test="createTableFlag != null and createTableFlag != ''"> create_table_flag = #{createTableFlag},</if> + <if test="writeType != null and writeType != ''"> write_type = #{writeType},</if> + <if test="sqlStatement != null and sqlStatement != ''"> sql_statement = #{sqlStatement},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity" > +update sys_flow_step_config set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity" > +update sys_flow_step_config set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="flowId != null and flowId != ''"> and flow_id = #{flowId} </if> + <if test="stepId != null and stepId != ''"> and step_id = #{stepId} </if> + <if test="setpConfigId != null and setpConfigId != ''"> and setp_config_id = #{setpConfigId} </if> + <if test="actionName != null and actionName != ''"> and action_name = #{actionName} </if> + <if test="dbType != null and dbType != ''"> and db_type = #{dbType} </if> + <if test="tableName != null and tableName != ''"> and table_name = #{tableName} </if> + <if test="rowNum != null and rowNum != ''"> and row_num = #{rowNum} </if> + <if test="pageLimit != null and pageLimit != ''"> and page_limit = #{pageLimit} </if> + <if test="maxValueField != null and maxValueField != ''"> and max_value_field = #{maxValueField} </if> + <if test="createTableFlag != null and createTableFlag != ''"> and create_table_flag = #{createTableFlag} </if> + <if test="writeType != null and writeType != ''"> and write_type = #{writeType} </if> + <if test="sqlStatement != null and sqlStatement != ''"> and sql_statement = #{sqlStatement} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_step_config where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.java new file mode 100644 index 00000000..bbef689c --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.java @@ -0,0 +1,125 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 流程步骤信息(SysFlowStep)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public class SysFlowStepEntity extends BaseEntity { + + /** 步骤序号 */ + private Integer step; + //流程id + private String flowId; + /** 步骤类型;1定时任务2数据库3应用 */ + private String stepType; + /** 描述 */ + private String description; + /** 操作动作(名称);api名称/插件名称 */ + private String apiName; + /** 操作动作类型;api/插件 */ + private String actionType; + /** 应用id */ + private String appId; + /** 操作动作id;api_id,根据操作动作类型来决定是查api还是插件 */ + private String apiId; + /** nifi返回的应用id;刘工接口返回的nifi应用id,不确定要不要 */ + private String nifiAppId; + /** nifi的apiId */ + private String nifiApiId; + /** nifi应用排序模式;先进先出/先进后出 */ + private String sortMode; + + + public Integer getStep() { + return step; + } + + public void setStep(Integer step) { + this.step = step; + } + + public String getStepType() { + return stepType; + } + + public void setStepType(String stepType) { + this.stepType = stepType; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getApiName() { + return apiName; + } + + public void setApiName(String apiName) { + this.apiName = apiName; + } + + public String getActionType() { + return actionType; + } + + public void setActionType(String actionType) { + this.actionType = actionType; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getApiId() { + return apiId; + } + + public void setApiId(String apiId) { + this.apiId = apiId; + } + + public String getNifiAppId() { + return nifiAppId; + } + + public void setNifiAppId(String nifiAppId) { + this.nifiAppId = nifiAppId; + } + + public String getNifiApiId() { + return nifiApiId; + } + + public void setNifiApiId(String nifiApiId) { + this.nifiApiId = nifiApiId; + } + + public String getSortMode() { + return sortMode; + } + + public void setSortMode(String sortMode) { + this.sortMode = sortMode; + } + + public String getFlowId() { + return flowId; + } + + public void setFlowId(String flowId) { + this.flowId = flowId; + } +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.xml new file mode 100644 index 00000000..adc6a741 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepEntity.xml @@ -0,0 +1,312 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowStepDaoImpl"> + + <resultMap id="get-SysFlowStepEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="step" column="step" jdbcType="INTEGER"/> + <result property="stepType" column="step_type" jdbcType="VARCHAR"/> + <result property="flowId" column="flow_id" jdbcType="VARCHAR"/> + <result property="description" column="description" jdbcType="VARCHAR"/> + <result property="apiName" column="api_name" jdbcType="VARCHAR"/> + <result property="actionType" column="action_type" jdbcType="VARCHAR"/> + <result property="appId" column="app_id" jdbcType="VARCHAR"/> + <result property="apiId" column="api_id" jdbcType="VARCHAR"/> + <result property="nifiAppId" column="nifi_app_id" jdbcType="VARCHAR"/> + <result property="nifiApiId" column="nifi_api_id" jdbcType="VARCHAR"/> + <result property="sortMode" column="sort_mode" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id="SysFlowStepEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,step + ,step_type + ,flowId + ,description + ,api_name + ,action_type + ,app_id + ,api_id + ,nifi_app_id + ,nifi_api_id + ,sort_mode + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowStepEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + select + <include refid="SysFlowStepEntity_Base_Column_List"/> + from sys_flow_step + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="step != null">and step = #{step}</if> + <if test="stepType != null and stepType != ''">and step_type = #{stepType}</if> + <if test="flowId != null and flowId != ''">and flow_id = #{flowId}</if> + <if test="description != null and description != ''">and description = #{description}</if> + <if test="apiName != null and apiName != ''">and api_name = #{apiName}</if> + <if test="actionType != null and actionType != ''">and action_type = #{actionType}</if> + <if test="appId != null and appId != ''">and app_id = #{appId}</if> + <if test="apiId != null and apiId != ''">and api_id = #{apiId}</if> + <if test="nifiAppId != null and nifiAppId != ''">and nifi_app_id = #{nifiAppId}</if> + <if test="nifiApiId != null and nifiApiId != ''">and nifi_api_id = #{nifiApiId}</if> + <if test="sortMode != null and sortMode != ''">and sort_mode = #{sortMode}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询符合条件的数量 --> + <select id="entity_count" resultType="Integer" parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + select count(1) from sys_flow_step + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="step != null">and step = #{step}</if> + <if test="stepType != null and stepType != ''">and step_type = #{stepType}</if> + <if test="flowId != null and flowId != ''">and flow_id = #{flowId}</if> + <if test="description != null and description != ''">and description = #{description}</if> + <if test="apiName != null and apiName != ''">and api_name = #{apiName}</if> + <if test="actionType != null and actionType != ''">and action_type = #{actionType}</if> + <if test="appId != null and appId != ''">and app_id = #{appId}</if> + <if test="apiId != null and apiId != ''">and api_id = #{apiId}</if> + <if test="nifiAppId != null and nifiAppId != ''">and nifi_app_id = #{nifiAppId}</if> + <if test="nifiApiId != null and nifiApiId != ''">and nifi_api_id = #{nifiApiId}</if> + <if test="sortMode != null and sortMode != ''">and sort_mode = #{sortMode}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> + <select id="entity_list_like" resultMap="get-SysFlowStepEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + select + <include refid="SysFlowStepEntity_Base_Column_List"/> + from sys_flow_step + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id like concat('%',#{id},'%')</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id like + concat('%',#{create_user_id},'%') + </if> + <if test="create_time != null">and create_time like concat('%',#{create_time},'%')</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id like + concat('%',#{modify_user_id},'%') + </if> + <if test="modify_time != null">and modify_time like concat('%',#{modify_time},'%')</if> + <if test="sts != null and sts != ''">and sts like concat('%',#{sts},'%')</if> + <if test="step != null">and step like concat('%',#{step},'%')</if> + <if test="stepType != null and stepType != ''">and step_type like concat('%',#{stepType},'%')</if> + <if test="flowId != null and flowId != ''">and flow_id like concat('%',#{flowId},'%')</if> + <if test="description != null and description != ''">and description like concat('%',#{description},'%') + </if> + <if test="apiName != null and apiName != ''">and api_name like concat('%',#{apiName},'%')</if> + <if test="actionType != null and actionType != ''">and action_type like concat('%',#{actionType},'%')</if> + <if test="appId != null and appId != ''">and app_id like concat('%',#{appId},'%')</if> + <if test="apiId != null and apiId != ''">and api_id like concat('%',#{apiId},'%')</if> + <if test="nifiAppId != null and nifiAppId != ''">and nifi_app_id like concat('%',#{nifiAppId},'%')</if> + <if test="nifiApiId != null and nifiApiId != ''">and nifi_api_id like concat('%',#{nifiApiId},'%')</if> + <if test="sortMode != null and sortMode != ''">and sort_mode like concat('%',#{sortMode},'%')</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询列表 字段采用or格式 --> + <select id="SysFlowStepentity_list_or" resultMap="get-SysFlowStepEntity-result" + parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + select + <include refid="SysFlowStepEntity_Base_Column_List"/> + from sys_flow_step + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">or id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">or create_user_id = #{create_user_id}</if> + <if test="create_time != null">or create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">or modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">or modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">or sts = #{sts}</if> + <if test="step != null">or step = #{step}</if> + <if test="stepType != null and stepType != ''">or step_type = #{stepType}</if> + <if test="flowId != null and flowId != ''">or flow_id = #{flowId}</if> + <if test="description != null and description != ''">or description = #{description}</if> + <if test="apiName != null and apiName != ''">or api_name = #{apiName}</if> + <if test="actionType != null and actionType != ''">or action_type = #{actionType}</if> + <if test="appId != null and appId != ''">or app_id = #{appId}</if> + <if test="apiId != null and apiId != ''">or api_id = #{apiId}</if> + <if test="nifiAppId != null and nifiAppId != ''">or nifi_app_id = #{nifiAppId}</if> + <if test="nifiApiId != null and nifiApiId != ''">or nifi_api_id = #{nifiApiId}</if> + <if test="sortMode != null and sortMode != ''">or sort_mode = #{sortMode}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!--新增所有列--> + <insert id="entity_insert" parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity" keyProperty="id" + useGeneratedKeys="true"> + insert into sys_flow_step( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">id ,</if> + <if test="create_user_id != null and create_user_id != ''">create_user_id ,</if> + <if test="create_time != null">create_time ,</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id ,</if> + <if test="modify_time != null">modify_time ,</if> + <if test="sts != null and sts != ''">sts ,</if> + <if test="step != null">step ,</if> + <if test="stepType != null and stepType != ''">step_type ,</if> + <if test="flowId != null and flowId != ''">flow_id ,</if> + <if test="description != null and description != ''">description ,</if> + <if test="apiName != null and apiName != ''">api_name ,</if> + <if test="actionType != null and actionType != ''">action_type ,</if> + <if test="appId != null and appId != ''">app_id ,</if> + <if test="apiId != null and apiId != ''">api_id ,</if> + <if test="nifiAppId != null and nifiAppId != ''">nifi_app_id ,</if> + <if test="nifiApiId != null and nifiApiId != ''">nifi_api_id ,</if> + <if test="sortMode != null and sortMode != ''">sort_mode ,</if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">#{id} ,</if> + <if test="create_user_id != null and create_user_id != ''">#{create_user_id} ,</if> + <if test="create_time != null">#{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''">#{modify_user_id} ,</if> + <if test="modify_time != null">#{modify_time} ,</if> + <if test="sts != null and sts != ''">#{sts} ,</if> + <if test="step != null">#{step} ,</if> + <if test="stepType != null and stepType != ''">#{stepType} ,</if> + <if test="flowId != null and flowId != ''">#{flowId} ,</if> + <if test="description != null and description != ''">#{description} ,</if> + <if test="apiName != null and apiName != ''">#{apiName} ,</if> + <if test="actionType != null and actionType != ''">#{actionType} ,</if> + <if test="appId != null and appId != ''">#{appId} ,</if> + <if test="apiId != null and apiId != ''">#{apiId} ,</if> + <if test="nifiAppId != null and nifiAppId != ''">#{nifiAppId} ,</if> + <if test="nifiApiId != null and nifiApiId != ''">#{nifiApiId} ,</if> + <if test="sortMode != null and sortMode != ''">#{sortMode} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_step a + WHERE a.sts = 'Y' ),1), + </if> + <if test="sts == null ">'Y',</if> + </trim> + ) + </insert> + <!-- 批量新增 --> + <insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step(create_user_id, create_time, modify_user_id, modify_time, sts, step, + step_type,flow_id, description, api_name, action_type, app_id, api_id, nifi_app_id, nifi_api_id, sort_mode, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.step},#{entity.stepType},#{entity.flowId},#{entity.description},#{entity.apiName},#{entity.actionType},#{entity.appId},#{entity.apiId},#{entity.nifiAppId},#{entity.nifiApiId},#{entity.sortMode}, + 'Y') + </foreach> + </insert> + <!-- 批量新增或者修改--> + <insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step(create_user_id, create_time, modify_user_id, modify_time, sts, step, step_type, + flow_id,description, api_name, action_type, app_id, api_id, nifi_app_id, nifi_api_id, sort_mode) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.step},#{entity.stepType},#{entity.flowId},#{entity.description},#{entity.apiName},#{entity.actionType},#{entity.appId},#{entity.apiId},#{entity.nifiAppId},#{entity.nifiApiId},#{entity.sortMode}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + step = values(step), + step_type = values(step_type), + flow_id = values(flow_id), + description = values(description), + api_name = values(api_name), + action_type = values(action_type), + app_id = values(app_id), + api_id = values(api_id), + nifi_app_id = values(nifi_app_id), + nifi_api_id = values(nifi_api_id), + sort_mode = values(sort_mode) + </insert> + <!--通过主键修改方法--> + <update id="entity_update" parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + update sys_flow_step set + <trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''">create_user_id = #{create_user_id},</if> + <if test="create_time != null">create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null">modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''">sts = #{sts},</if> + <if test="step != null">step = #{step},</if> + <if test="stepType != null and stepType != ''">step_type = #{stepType},</if> + <if test="flowId != null and flowId != ''">flow_id = #{flowId},</if> + <if test="description != null and description != ''">description = #{description},</if> + <if test="apiName != null and apiName != ''">api_name = #{apiName},</if> + <if test="actionType != null and actionType != ''">action_type = #{actionType},</if> + <if test="appId != null and appId != ''">app_id = #{appId},</if> + <if test="apiId != null and apiId != ''">api_id = #{apiId},</if> + <if test="nifiAppId != null and nifiAppId != ''">nifi_app_id = #{nifiAppId},</if> + <if test="nifiApiId != null and nifiApiId != ''">nifi_api_id = #{nifiApiId},</if> + <if test="sortMode != null and sortMode != ''">sort_mode = #{sortMode},</if> + </trim> + where id = #{id} + </update> + <!-- 逻辑删除 --> + <update id="entity_logicDelete" parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + update sys_flow_step + set sts= 'N', + modify_time = #{modify_time}, + modify_user_id = #{modify_user_id} + where id = #{id} + </update> + <!-- 多条件逻辑删除 --> + <update id="entity_logicDelete_Multi_Condition" parameterType="com.hzya.frame.sys.flow.entity.SysFlowStepEntity"> + update sys_flow_step set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="step != null">and step = #{step}</if> + <if test="stepType != null and stepType != ''">and step_type = #{stepType}</if> + <if test="flowId != null and flowId != ''">and flow_id = #{flowId}</if> + <if test="description != null and description != ''">and description = #{description}</if> + <if test="apiName != null and apiName != ''">and api_name = #{apiName}</if> + <if test="actionType != null and actionType != ''">and action_type = #{actionType}</if> + <if test="appId != null and appId != ''">and app_id = #{appId}</if> + <if test="apiId != null and apiId != ''">and api_id = #{apiId}</if> + <if test="nifiAppId != null and nifiAppId != ''">and nifi_app_id = #{nifiAppId}</if> + <if test="nifiApiId != null and nifiApiId != ''">and nifi_api_id = #{nifiApiId}</if> + <if test="sortMode != null and sortMode != ''">and sort_mode = #{sortMode}</if> + and sts='Y' + </trim> + </update> + <!--通过主键删除--> + <delete id="entity_delete"> + delete + from sys_flow_step + where id = #{id} + </delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.java b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.java new file mode 100644 index 00000000..71db7af2 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.java @@ -0,0 +1,76 @@ +package com.hzya.frame.sys.flow.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 步骤关联关系表(SysFlowStepRelation)实体类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public class SysFlowStepRelationEntity extends BaseEntity { + + /** 输入步骤 */ + private String inputStepId; + /** 输出步骤 */ + private String outputStepId; + /** 输入nifi app id */ + private String inputNifiAppId; + /** 输出nifiidapp id */ + private String outputNifiAppId; + /** 输入nifi api id */ + private String inputNifiApiId; + /** 输出nifiidapi id */ + private String outputNifiApiId; + + + public String getInputStepId() { + return inputStepId; + } + + public void setInputStepId(String inputStepId) { + this.inputStepId = inputStepId; + } + + public String getOutputStepId() { + return outputStepId; + } + + public void setOutputStepId(String outputStepId) { + this.outputStepId = outputStepId; + } + + public String getInputNifiAppId() { + return inputNifiAppId; + } + + public void setInputNifiAppId(String inputNifiAppId) { + this.inputNifiAppId = inputNifiAppId; + } + + public String getOutputNifiAppId() { + return outputNifiAppId; + } + + public void setOutputNifiAppId(String outputNifiAppId) { + this.outputNifiAppId = outputNifiAppId; + } + + public String getInputNifiApiId() { + return inputNifiApiId; + } + + public void setInputNifiApiId(String inputNifiApiId) { + this.inputNifiApiId = inputNifiApiId; + } + + public String getOutputNifiApiId() { + return outputNifiApiId; + } + + public void setOutputNifiApiId(String outputNifiApiId) { + this.outputNifiApiId = outputNifiApiId; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.xml b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.xml new file mode 100644 index 00000000..39e19cda --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/entity/SysFlowStepRelationEntity.xml @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sys.flow.dao.impl.SysFlowStepRelationDaoImpl"> + + <resultMap id="get-SysFlowStepRelationEntity-result" type="com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="inputStepId" column="input_step_id" jdbcType="VARCHAR"/> + <result property="outputStepId" column="output_step_id" jdbcType="VARCHAR"/> + <result property="inputNifiAppId" column="input_nifi_app_id" jdbcType="VARCHAR"/> + <result property="outputNifiAppId" column="output_nifi_app_id" jdbcType="VARCHAR"/> + <result property="inputNifiApiId" column="input_nifi_api_id" jdbcType="VARCHAR"/> + <result property="outputNifiApiId" column="output_nifi_api_id" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysFlowStepRelationEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,input_step_id + ,output_step_id + ,input_nifi_app_id + ,output_nifi_app_id + ,input_nifi_api_id + ,output_nifi_api_id + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysFlowStepRelationEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity"> + select + <include refid="SysFlowStepRelationEntity_Base_Column_List" /> + from sys_flow_step_relation + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="inputStepId != null and inputStepId != ''"> and input_step_id = #{inputStepId} </if> + <if test="outputStepId != null and outputStepId != ''"> and output_step_id = #{outputStepId} </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> and input_nifi_app_id = #{inputNifiAppId} </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> and output_nifi_app_id = #{outputNifiAppId} </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> and input_nifi_api_id = #{inputNifiApiId} </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> and output_nifi_api_id = #{outputNifiApiId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity"> + select count(1) from sys_flow_step_relation + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="inputStepId != null and inputStepId != ''"> and input_step_id = #{inputStepId} </if> + <if test="outputStepId != null and outputStepId != ''"> and output_step_id = #{outputStepId} </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> and input_nifi_app_id = #{inputNifiAppId} </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> and output_nifi_app_id = #{outputNifiAppId} </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> and input_nifi_api_id = #{inputNifiApiId} </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> and output_nifi_api_id = #{outputNifiApiId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysFlowStepRelationEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity"> + select + <include refid="SysFlowStepRelationEntity_Base_Column_List" /> + from sys_flow_step_relation + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="inputStepId != null and inputStepId != ''"> and input_step_id like concat('%',#{inputStepId},'%') </if> + <if test="outputStepId != null and outputStepId != ''"> and output_step_id like concat('%',#{outputStepId},'%') </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> and input_nifi_app_id like concat('%',#{inputNifiAppId},'%') </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> and output_nifi_app_id like concat('%',#{outputNifiAppId},'%') </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> and input_nifi_api_id like concat('%',#{inputNifiApiId},'%') </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> and output_nifi_api_id like concat('%',#{outputNifiApiId},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysFlowStepRelationentity_list_or" resultMap="get-SysFlowStepRelationEntity-result" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity"> + select + <include refid="SysFlowStepRelationEntity_Base_Column_List" /> + from sys_flow_step_relation + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="inputStepId != null and inputStepId != ''"> or input_step_id = #{inputStepId} </if> + <if test="outputStepId != null and outputStepId != ''"> or output_step_id = #{outputStepId} </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> or input_nifi_app_id = #{inputNifiAppId} </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> or output_nifi_app_id = #{outputNifiAppId} </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> or input_nifi_api_id = #{inputNifiApiId} </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> or output_nifi_api_id = #{outputNifiApiId} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_relation( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="create_time != null"> create_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="inputStepId != null and inputStepId != ''"> input_step_id , </if> + <if test="outputStepId != null and outputStepId != ''"> output_step_id , </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> input_nifi_app_id , </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> output_nifi_app_id , </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> input_nifi_api_id , </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> output_nifi_api_id , </if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="inputStepId != null and inputStepId != ''"> #{inputStepId} ,</if> + <if test="outputStepId != null and outputStepId != ''"> #{outputStepId} ,</if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> #{inputNifiAppId} ,</if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> #{outputNifiAppId} ,</if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> #{inputNifiApiId} ,</if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> #{outputNifiApiId} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_flow_step_relation a WHERE a.sts = 'Y' ),1),</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_relation(create_user_id, create_time, modify_user_id, modify_time, sts, input_step_id, output_step_id, input_nifi_app_id, output_nifi_app_id, input_nifi_api_id, output_nifi_api_id, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.inputStepId},#{entity.outputStepId},#{entity.inputNifiAppId},#{entity.outputNifiAppId},#{entity.inputNifiApiId},#{entity.outputNifiApiId}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_flow_step_relation(create_user_id, create_time, modify_user_id, modify_time, sts, input_step_id, output_step_id, input_nifi_app_id, output_nifi_app_id, input_nifi_api_id, output_nifi_api_id) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.inputStepId},#{entity.outputStepId},#{entity.inputNifiAppId},#{entity.outputNifiAppId},#{entity.inputNifiApiId},#{entity.outputNifiApiId}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + input_step_id = values(input_step_id), + output_step_id = values(output_step_id), + input_nifi_app_id = values(input_nifi_app_id), + output_nifi_app_id = values(output_nifi_app_id), + input_nifi_api_id = values(input_nifi_api_id), + output_nifi_api_id = values(output_nifi_api_id)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity" > +update sys_flow_step_relation set +<trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="inputStepId != null and inputStepId != ''"> input_step_id = #{inputStepId},</if> + <if test="outputStepId != null and outputStepId != ''"> output_step_id = #{outputStepId},</if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> input_nifi_app_id = #{inputNifiAppId},</if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> output_nifi_app_id = #{outputNifiAppId},</if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> input_nifi_api_id = #{inputNifiApiId},</if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> output_nifi_api_id = #{outputNifiApiId},</if> +</trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity" > +update sys_flow_step_relation set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity" > +update sys_flow_step_relation set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="inputStepId != null and inputStepId != ''"> and input_step_id = #{inputStepId} </if> + <if test="outputStepId != null and outputStepId != ''"> and output_step_id = #{outputStepId} </if> + <if test="inputNifiAppId != null and inputNifiAppId != ''"> and input_nifi_app_id = #{inputNifiAppId} </if> + <if test="outputNifiAppId != null and outputNifiAppId != ''"> and output_nifi_app_id = #{outputNifiAppId} </if> + <if test="inputNifiApiId != null and inputNifiApiId != ''"> and input_nifi_api_id = #{inputNifiApiId} </if> + <if test="outputNifiApiId != null and outputNifiApiId != ''"> and output_nifi_api_id = #{outputNifiApiId} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_flow_step_relation where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassRuleService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassRuleService.java new file mode 100644 index 00000000..2996732c --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassRuleService.java @@ -0,0 +1,57 @@ +package com.hzya.frame.sys.flow.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 流程分类权限表(SysFlowClassRule)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowClassRuleService extends IBaseService<SysFlowClassRuleEntity, String>{ + + /** + * 新增流程分类权限 + * @param object + * @return + */ + JsonResultEntity saveFlowClassRule(JSONObject object); + + /** + * 修改流程分类权限 + * @param object + * @return + */ + JsonResultEntity updateFlowClassRule(JSONObject object); + + /** + * 删除流程分类权限 + * @param object + * @return + */ + JsonResultEntity deleteFlowClassRule(JSONObject object); + + /** + * 列表查询 + * @param object + * @return + */ + JsonResultEntity queryRuleList(JSONObject object); + + /** + * 分页查询 + * @param object + * @return + */ + JsonResultEntity queryRulePagedInfo(JSONObject object); + + /** + * 查询待分配权限的用户列表 + * @param object + * @return + */ + JsonResultEntity queryUserList(JSONObject object); +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassService.java new file mode 100644 index 00000000..d72e06a8 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowClassService.java @@ -0,0 +1,42 @@ +package com.hzya.frame.sys.flow.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.flow.entity.SysFlowClassEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 流程分类;对应数环通项目分类(SysFlowClass)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowClassService extends IBaseService<SysFlowClassEntity, String>{ + + /** + * 根据Id查询 + * @param object + * @return + */ + JsonResultEntity getFlowClass(JSONObject object); + /** + * 新增流程分类 + * @param object + * @return + */ + JsonResultEntity saveFlowClass(JSONObject object); + + /** + * 修改流程分类 + * @param object + * @return + */ + JsonResultEntity updateFlowClass(JSONObject object); + + /** + * 删除流程分类 + * @param object + * @return + */ + JsonResultEntity deleteFlowClass(JSONObject object); +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowNifiConstantService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowNifiConstantService.java new file mode 100644 index 00000000..17c8d90a --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowNifiConstantService.java @@ -0,0 +1,43 @@ +package com.hzya.frame.sys.flow.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * nifi常量(SysFlowNifiConstant)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowNifiConstantService extends IBaseService<SysFlowNifiConstantEntity, String>{ + + /** + * 详情 + * @param object + * @return + */ + JsonResultEntity getNifiConstant(JSONObject object); + + /** + * 保存nifi常量 + * @param object + * @return + */ + JsonResultEntity saveNifiConstant(JSONObject object); + + /** + * 更新nifi常量 + * @param object + * @return + */ + JsonResultEntity updateNifiConstant(JSONObject object); + + /** + * 更新nifi常量 + * @param object + * @return + */ + JsonResultEntity deleteNifiConstant(JSONObject object); +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowService.java new file mode 100644 index 00000000..e2792bff --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowService.java @@ -0,0 +1,49 @@ +package com.hzya.frame.sys.flow.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.flow.entity.SysFlowEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 流程主表;流程就是数环通的Linkup(SysFlow)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:24 + */ +public interface ISysFlowService extends IBaseService<SysFlowEntity, String>{ + /** + * 保存流程主表 + * @param object + * @return + */ + JsonResultEntity saveFlow(JSONObject object); + + /** + * 更新流程主表 + * @param object + * @return + */ + JsonResultEntity updateFlow(JSONObject object); + + /** + * 删除流程主表 + * @param object + * @return + */ + JsonResultEntity deleteFlow(JSONObject object); + + /** + * 列表查询 + * @param object + * @return + */ + JsonResultEntity queryFlowList(JSONObject object); + + /** + * 分页查询 + * @param object + * @return + */ + JsonResultEntity queryFlowPagedInfo(JSONObject object); +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepAccountService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepAccountService.java new file mode 100644 index 00000000..eb7f5df1 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepAccountService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.sys.flow.service; + +import com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * 流程步骤账户表(SysFlowStepAccount)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepAccountService extends IBaseService<SysFlowStepAccountEntity, String>{ +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigBService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigBService.java new file mode 100644 index 00000000..80f74441 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigBService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.sys.flow.service; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * 映射信息表体(SysFlowStepConfigB)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepConfigBService extends IBaseService<SysFlowStepConfigBEntity, String>{ +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigService.java new file mode 100644 index 00000000..385d92c4 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepConfigService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.sys.flow.service; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * 映射信息主表(SysFlowStepConfig)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepConfigService extends IBaseService<SysFlowStepConfigEntity, String>{ +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepRelationService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepRelationService.java new file mode 100644 index 00000000..f5358083 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepRelationService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.sys.flow.service; + +import com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * 步骤关联关系表(SysFlowStepRelation)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +public interface ISysFlowStepRelationService extends IBaseService<SysFlowStepRelationEntity, String>{ +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepService.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepService.java new file mode 100644 index 00000000..9d3e226f --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/ISysFlowStepService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.sys.flow.service; + +import com.hzya.frame.sys.flow.entity.SysFlowStepEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * 流程步骤信息(SysFlowStep)表服务接口 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +public interface ISysFlowStepService extends IBaseService<SysFlowStepEntity, String>{ +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassRuleServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassRuleServiceImpl.java new file mode 100644 index 00000000..ed3a58c8 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassRuleServiceImpl.java @@ -0,0 +1,193 @@ +package com.hzya.frame.sys.flow.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowClassRuleDao; +import com.hzya.frame.sys.flow.service.ISysFlowClassRuleService; +import com.hzya.frame.sysnew.user.dao.ISysUserDao; +import com.hzya.frame.sysnew.user.entity.SysUserEntity; +import com.hzya.frame.uuid.UUIDUtils; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * 流程分类权限表(SysFlowClassRule)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Service(value = "sysFlowClassRuleService") +public class SysFlowClassRuleServiceImpl extends BaseService<SysFlowClassRuleEntity, String> implements ISysFlowClassRuleService { + + private ISysFlowClassRuleDao sysFlowClassRuleDao; + @Autowired + private ISysUserDao sysUserDao; + @Autowired + public void setSysFlowClassRuleDao(ISysFlowClassRuleDao dao) { + this.sysFlowClassRuleDao = dao; + this.dao = dao; + } + + + /** + * 新增流程分类权限 + * + * @param object + * @return + */ + @Override + public JsonResultEntity saveFlowClassRule(JSONObject object) { + SysFlowClassRuleEntity ruleEntity = getData("jsonStr",object,SysFlowClassRuleEntity.class); + try { + this.checkParams(ruleEntity,"save"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + addRule(ruleEntity); + return BaseResult.getSuccessMessageEntity("保存成功"); + } + + //保存 + private void addRule(SysFlowClassRuleEntity ruleEntity) { + List<SysFlowClassRuleEntity> ruleList = ruleEntity.getRuleList(); + for (SysFlowClassRuleEntity r : ruleList) { + r.setId(UUIDUtils.getUUID()); + r.setCreate_time(Convert.toDate(ruleEntity.getCreate_time(),ruleEntity.getModify_time())); + r.setCreate_user_id(Convert.toStr(ruleEntity.getCreate_user_id(),ruleEntity.getModify_user_id())); + r.setModify_time(r.getCreate_time()); + r.setModify_user_id(r.getCreate_user_id()); + r.setFlowClassId(ruleEntity.getFlowClassId()); + sysFlowClassRuleDao.save(r); + } + } + + /** + * 修改流程分类权限 + * + * @param object + * @return + */ + @Override + public JsonResultEntity updateFlowClassRule(JSONObject object) { + SysFlowClassRuleEntity ruleEntity = getData("jsonStr",object,SysFlowClassRuleEntity.class); + try { + this.checkParams(ruleEntity,"update"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + //先删除 再重新保存 + SysFlowClassRuleEntity rule = new SysFlowClassRuleEntity(); + rule.setFlowClassId(ruleEntity.getFlowClassId()); + sysFlowClassRuleDao.logicRemoveMultiCondition(rule); + addRule(ruleEntity); + return BaseResult.getSuccessMessageEntity("更新成功"); + } + + /** + * 删除流程分类权限 + * + * @param object + * @return + */ + @Override + public JsonResultEntity deleteFlowClassRule(JSONObject object) { + SysFlowClassRuleEntity ruleEntity = getData("jsonStr",object,SysFlowClassRuleEntity.class); + try { + this.checkParams(ruleEntity,"delete"); + }catch (Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + SysFlowClassRuleEntity deleteRuleEntity = new SysFlowClassRuleEntity(); + deleteRuleEntity.setFlowClassId(ruleEntity.getFlowClassId()); + deleteRuleEntity.setUserId(ruleEntity.getUserId()); + sysFlowClassRuleDao.logicRemoveMultiCondition(deleteRuleEntity); + return BaseResult.getSuccessMessageEntity("删除成功"); + } + + /** + * 列表查询 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryRuleList(JSONObject object) { + SysFlowClassRuleEntity ruleEntity = getData("jsonStr",object,SysFlowClassRuleEntity.class); + try { + checkParams(ruleEntity,"queryList"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + List<SysFlowClassRuleEntity> sysFlowClassRuleEntities = sysFlowClassRuleDao.queryByLike(ruleEntity); + SysFlowClassRuleEntity reuslt = new SysFlowClassRuleEntity(); + reuslt.setFlowClassId(ruleEntity.getFlowClassId()); + reuslt.setRuleList(sysFlowClassRuleEntities); + return BaseResult.getSuccessMessageEntity("查询数据成功",reuslt); + } + + /** + * 分页查询 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryRulePagedInfo(JSONObject object) { + SysFlowClassRuleEntity ruleEntity = getData("jsonStr",object,SysFlowClassRuleEntity.class); + try { + checkParams(ruleEntity,"queryPaged"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + PageHelper.startPage(ruleEntity.getPageNum(), ruleEntity.getPageSize()); + List<SysFlowClassRuleEntity> queryByLike = this.dao.queryByLike(ruleEntity); + PageInfo pageInfo = new PageInfo(queryByLike); + return BaseResult.getSuccessMessageEntity("查询数据成功",pageInfo); + } + /** + * 查询待分配权限的用户列表 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryUserList(JSONObject object) { + SysUserEntity userEntity = getData("jsonStr",object,SysUserEntity.class); + if (StrUtil.isEmpty(userEntity.getFlowClassId())){ + return BaseResult.getFailureMessageEntity("flowClassId不能为空"); + } + List<SysUserEntity> sysUserEntities = sysUserDao.queryList(userEntity, "com.hzya.frame.sysnew.user.dao.impl.SysUserDaoImpl.entity_list_notin_sys_flowClass"); + return BaseResult.getSuccessMessageEntity("查询成功",sysUserEntities); + } + /** + * 检查参数 + * @param entity 参数对象 + * @param type 操作;类型 + */ + private void checkParams(SysFlowClassRuleEntity entity,String type){ + Assert.notNull(entity,"请求参数不能为空"); + Assert.notEmpty(entity.getFlowClassId(),"flowClassId不能为空"); + if ("save".equals(type)){ + Assert.notEmpty(entity.getRuleList(),"ruleList不能为空"); + }else if ("update".equals(type)){ + Assert.notEmpty(entity.getRuleList(),"ruleList不能为空"); + }else if ("delete".equals(type)){ + + }else if ("queryPaged".equals(type)){ + Assert.notNull(entity.getPageNum(),"pageNum不能为空"); + Assert.notNull(entity.getPageSize(),"pageSize不能为空"); + } + + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassServiceImpl.java new file mode 100644 index 00000000..ced25510 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowClassServiceImpl.java @@ -0,0 +1,179 @@ +package com.hzya.frame.sys.flow.service.impl; + +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.dictionaryshopNew.service.ISysDictionaryshopNewService; +import com.hzya.frame.sys.flow.dao.ISysFlowClassRuleDao; +import com.hzya.frame.sys.flow.dao.ISysFlowDao; +import com.hzya.frame.sys.flow.entity.SysFlowClassEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowClassDao; +import com.hzya.frame.sys.flow.entity.SysFlowClassRuleEntity; +import com.hzya.frame.sys.flow.entity.SysFlowEntity; +import com.hzya.frame.sys.flow.service.ISysFlowClassService; +import com.hzya.frame.sysnew.user.dao.ISysUserDao; +import com.hzya.frame.sysnew.user.entity.SysUserEntity; +import com.hzya.frame.uuid.UUIDLong; +import com.hzya.frame.uuid.UUIDUtils; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.Date; +import java.util.List; + +/** + * 流程分类;对应数环通项目分类(SysFlowClass)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Service(value = "sysFlowClassService") +public class SysFlowClassServiceImpl extends BaseService<SysFlowClassEntity, String> implements ISysFlowClassService { + + private ISysFlowClassDao sysFlowClassDao; + @Autowired + private ISysFlowDao sysFlowDao; + @Autowired + private ISysFlowClassRuleDao flowClassRuleDao; + @Autowired + private ISysUserDao sysUserDao; + @Autowired + public void setSysFlowClassDao(ISysFlowClassDao dao) { + this.sysFlowClassDao = dao; + this.dao = dao; + } + + /** + * 根据Id查询 + * + * @param object + * @return + */ + @Override + public JsonResultEntity getFlowClass(JSONObject object) { + SysFlowClassEntity flowClass = getData("jsonStr",object,SysFlowClassEntity.class); + try { + this.checkParams(flowClass,"get"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + SysFlowClassEntity sysFlowClassEntity = sysFlowClassDao.queryOne(flowClass); + return BaseResult.getSuccessMessageEntity("查询详情成功",sysFlowClassEntity); + } + + /** + * 新增流程分类 + * + * @param object + * @return + */ + @Override + public JsonResultEntity saveFlowClass(JSONObject object) { + SysFlowClassEntity flowClass = getData("jsonStr",object,SysFlowClassEntity.class); + try { + this.checkParams(flowClass,"add"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + flowClass.setId(UUIDUtils.getUUID()); + sysFlowClassDao.save(flowClass); + //给创建分类的用户保存一下权限 + SysUserEntity sysUserEntity = sysUserDao.get(flowClass.getCreate_user_id()); + SysFlowClassRuleEntity ruleEntity = new SysFlowClassRuleEntity(); + ruleEntity.setFlowClassId(flowClass.getId()); + ruleEntity.setUserId(flowClass.getCreate_user_id()); + if (null != sysUserEntity){ + ruleEntity.setUserName(sysUserEntity.getPersonName()); + ruleEntity.setUserCode(sysUserEntity.getPersonCode()); + } + ruleEntity.setCreate_time(new Date()); + ruleEntity.setModify_time(new Date()); + ruleEntity.setCreate_user_id(flowClass.getCreate_user_id()); + ruleEntity.setModify_user_id(flowClass.getModify_user_id()); + ruleEntity.setId(UUIDUtils.getUUID()); + flowClassRuleDao.save(ruleEntity); + return BaseResult.getSuccessMessageEntity("新增成功"); + } + + /** + * 修改流程分类 + * + * @param object + * @return + */ + @Override + public JsonResultEntity updateFlowClass(JSONObject object) { + SysFlowClassEntity flowClass = getData("jsonStr",object,SysFlowClassEntity.class); + try { + this.checkParams(flowClass,"update"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowClassDao.update(flowClass); + return BaseResult.getSuccessMessageEntity("更新成功"); + } + + /** + * 删除流程分类 + * + * @param object + * @return + */ + @Override + public JsonResultEntity deleteFlowClass(JSONObject object) { + SysFlowClassEntity flowClass = getData("jsonStr",object,SysFlowClassEntity.class); + try { + this.checkParams(flowClass,"delete"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowClassDao.logicRemove(flowClass); + return BaseResult.getSuccessMessageEntity("删除成功"); + } + /** + * 参数检查 + * @param flowClass + * @param type + */ + private void checkParams(SysFlowClassEntity flowClass,String type){ + Assert.notNull(flowClass,"请求参数不能为空"); + if ("add".equals(type)){//新增 + Assert.notEmpty(flowClass.getName(),"名称不能为空"); + //查询是否有同名的 + SysFlowClassEntity flowQuery = new SysFlowClassEntity(); + flowQuery.setName(flowClass.getName()); + List<SysFlowClassEntity> query = sysFlowClassDao.query(flowQuery); + if (CollectionUtils.isNotEmpty(query)){ + throw new BaseSystemException(flowClass.getName()+"已存在"); + } + }else if ("update".equals(type)){//更新 + Assert.notEmpty(flowClass.getId(),"id不能为空"); + //查一下有没有同名的 + SysFlowClassEntity flowQuery = new SysFlowClassEntity(); + flowQuery.setName(flowClass.getName()); + List<SysFlowClassEntity> query = sysFlowClassDao.query(flowQuery); + if (CollectionUtils.isNotEmpty(query)){ + for (SysFlowClassEntity f : query) { + if (!f.getId().equals(flowClass.getId())){ + throw new BaseSystemException(flowClass.getName()+"已存在"); + } + } + } + }else if ("delete".equals(type)){//删除 + Assert.notEmpty(flowClass.getId(),"id不能为空"); + //查一下这个分类有没有被引用 + SysFlowEntity sysFlowEntity = new SysFlowEntity(); + sysFlowEntity.setClassId(flowClass.getId()); + List<SysFlowEntity> query = sysFlowDao.query(sysFlowEntity); + if (CollectionUtils.isNotEmpty(query)){ + throw new BaseSystemException("该分类已被引用,删除失败"); + } + }else if ("get".equals(type)){//查询详情 + Assert.notEmpty(flowClass.getId(),"id不能为空"); + } + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowNifiConstantServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowNifiConstantServiceImpl.java new file mode 100644 index 00000000..17c5778d --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowNifiConstantServiceImpl.java @@ -0,0 +1,155 @@ +package com.hzya.frame.sys.flow.service.impl; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sys.flow.entity.SysFlowNifiConstantEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowNifiConstantDao; +import com.hzya.frame.sys.flow.service.ISysFlowNifiConstantService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * nifi常量(SysFlowNifiConstant)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Service(value = "sysFlowNifiConstantService") +public class SysFlowNifiConstantServiceImpl extends BaseService<SysFlowNifiConstantEntity, String> implements ISysFlowNifiConstantService { + + private ISysFlowNifiConstantDao sysFlowNifiConstantDao; + + @Autowired + public void setSysFlowNifiConstantDao(ISysFlowNifiConstantDao dao) { + this.sysFlowNifiConstantDao = dao; + this.dao = dao; + } + + /** + * 详情 + * + * @param object + * @return + */ + @Override + public JsonResultEntity getNifiConstant(JSONObject object) { + SysFlowNifiConstantEntity sysFlowNifiConstantEntity = null; + try { + sysFlowNifiConstantEntity = preCheck(object,"get"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + SysFlowNifiConstantEntity nifiConstant = sysFlowNifiConstantDao.queryOne(sysFlowNifiConstantEntity); + return BaseResult.getSuccessMessageEntity("查询详情成功",nifiConstant); + } + + /** + * 保存nifi常量 + * + * @param object + * @return + */ + @Override + public JsonResultEntity saveNifiConstant(JSONObject object) { + SysFlowNifiConstantEntity sysFlowNifiConstantEntity = null; + try { + sysFlowNifiConstantEntity = preCheck(object,"save"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowNifiConstantDao.save(sysFlowNifiConstantEntity); + return BaseResult.getSuccessMessageEntity("保存成功"); + } + + /** + * 更新nifi常量 + * + * @param object + * @return + */ + @Override + public JsonResultEntity updateNifiConstant(JSONObject object) { + SysFlowNifiConstantEntity sysFlowNifiConstantEntity = null; + try { + sysFlowNifiConstantEntity = preCheck(object,"update"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowNifiConstantDao.update(sysFlowNifiConstantEntity); + return BaseResult.getSuccessMessageEntity("更新成功"); + } + + /** + * 更新nifi常量 + * + * @param object + * @return + */ + @Override + public JsonResultEntity deleteNifiConstant(JSONObject object) { + SysFlowNifiConstantEntity sysFlowNifiConstantEntity = null; + try { + sysFlowNifiConstantEntity = preCheck(object,"delete"); + }catch(Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowNifiConstantDao.logicRemove(sysFlowNifiConstantEntity); + return BaseResult.getSuccessMessageEntity("删除成功"); + } + + + /** + * 参数校验 + * @param entity + * @param type + */ + private void checkParams(SysFlowNifiConstantEntity entity,String type){ + Assert.notNull(entity,"请求参数不能为空"); + if ("save".equals(type)){ + Assert.notEmpty(entity.getNifiKey(),"nifiKey不能为空"); + Assert.notEmpty(entity.getNifiValue(),"nifiValue不能为空"); + //检查是否有重名的key + SysFlowNifiConstantEntity nifi = new SysFlowNifiConstantEntity(); + nifi.setNifiKey(entity.getNifiKey()); + List<SysFlowNifiConstantEntity> query = sysFlowNifiConstantDao.query(nifi); + if (CollectionUtils.isNotEmpty(query)){ + throw new BaseSystemException(nifi.getNifiKey()+"重复"); + } + }else if ("update".equals(type)){ + Assert.notEmpty(entity.getId(),"id不能为空"); + Assert.notEmpty(entity.getNifiKey(),"key不能为空"); + Assert.notEmpty(entity.getNifiValue(),"value不能为空"); + SysFlowNifiConstantEntity nifi = new SysFlowNifiConstantEntity(); + nifi.setNifiKey(entity.getNifiKey()); + List<SysFlowNifiConstantEntity> query = sysFlowNifiConstantDao.query(nifi); + if (CollectionUtils.isNotEmpty(query)){ + for (SysFlowNifiConstantEntity n : query) { + if (!n.getId().equals(entity.getId())){ + throw new BaseSystemException(entity.getNifiKey()+"重复"); + } + } + } + }else if ("delete".equals(type)){ + Assert.notEmpty(entity.getId(),"id不能为空"); + }else if ("get".equals(type)){ + Assert.notEmpty(entity.getId(),"id不能为空"); + } + } + + //前置操作 + private SysFlowNifiConstantEntity preCheck(JSONObject object,String type){ + SysFlowNifiConstantEntity entity = getData("jsonStr", object,SysFlowNifiConstantEntity.class); + checkParams(entity,type); + return entity; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowServiceImpl.java new file mode 100644 index 00000000..3411b427 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowServiceImpl.java @@ -0,0 +1,190 @@ +package com.hzya.frame.sys.flow.service.impl; + +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.hzya.frame.sys.dictionaryshopNew.entity.SysDictionaryshopNew; +import com.hzya.frame.sys.dictionaryshopNew.service.ISysDictionaryshopNewService; +import com.hzya.frame.sys.flow.entity.SysFlowEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowDao; +import com.hzya.frame.sys.flow.service.ISysFlowService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * 流程主表;流程就是数环通的Linkup(SysFlow)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:26 + */ +@Service(value = "sysFlowService") +public class SysFlowServiceImpl extends BaseService<SysFlowEntity, String> implements ISysFlowService { + + private ISysFlowDao sysFlowDao; + @Autowired + private ISysDictionaryshopNewService sysDictionaryshopNewService; + @Autowired + public void setSysFlowDao(ISysFlowDao dao) { + this.sysFlowDao = dao; + this.dao = dao; + } + + /** + * 保存流程主表 + * + * @param object + * @return + */ + @Override + public JsonResultEntity saveFlow(JSONObject object) { + SysFlowEntity flowEntity = getData("jsonStr",object,SysFlowEntity.class); + try { + checkParams(flowEntity,"save"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowDao.save(flowEntity); + return BaseResult.getSuccessMessageEntity("保存成功"); + } + + /** + * 更新流程主表 + * + * @param object + * @return + */ + @Override + public JsonResultEntity updateFlow(JSONObject object) { + SysFlowEntity flowEntity = getData("jsonStr",object,SysFlowEntity.class); + try { + checkParams(flowEntity,"update"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysFlowDao.update(flowEntity); + return BaseResult.getSuccessMessageEntity("更新成功"); + } + + /** + * 删除流程主表 + * + * @param object + * @return + */ + @Override + public JsonResultEntity deleteFlow(JSONObject object) { + SysFlowEntity flowEntity = getData("jsonStr",object,SysFlowEntity.class); + try { + checkParams(flowEntity,"delete"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + //删除主表 + sysFlowDao.logicRemove(flowEntity); + //删除子表 + return BaseResult.getSuccessMessageEntity("删除成功"); + } + + /** + * 列表查询 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryFlowList(JSONObject object) { + SysFlowEntity flowEntity = getData("jsonStr",object,SysFlowEntity.class); + try { + checkParams(flowEntity,"queryList"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + List<SysFlowEntity> list = sysFlowDao.query(flowEntity); + if (CollectionUtils.isNotEmpty(list)){ + for (SysFlowEntity sysFlowEntity : list) { + transferDictionary(sysFlowEntity); + } + } + return BaseResult.getSuccessMessageEntity("查询数据成功",list); + } + + /** + * 分页查询 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryFlowPagedInfo(JSONObject object) { + SysFlowEntity flowEntity = getData("jsonStr",object,SysFlowEntity.class); + try { + checkParams(flowEntity,"queryPaged"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + PageHelper.startPage(flowEntity.getPageNum(),flowEntity.getPageSize()); + List<SysFlowEntity> queryByLike = sysFlowDao.queryByLike(flowEntity); + if (CollectionUtils.isNotEmpty(queryByLike)){ + for (SysFlowEntity sysFlowEntity : queryByLike) { + transferDictionary(sysFlowEntity); + } + } + PageInfo pageInfo = new PageInfo(queryByLike); + return BaseResult.getSuccessMessageEntity("pageInfo",pageInfo); + } + + /** + * 参数检查 + * @param entity + * @param type + */ + private void checkParams(SysFlowEntity entity,String type){ + Assert.notNull(entity,"请求参数不能为空"); + if ("save".equals(type)){ + Assert.notEmpty(entity.getClassId(),"classId不能为空"); + Assert.notEmpty(entity.getName(),"name不能为空"); + SysFlowEntity flow = new SysFlowEntity(); + flow.setName(entity.getName()); + List<SysFlowEntity> flowList = sysFlowDao.query(flow); + if (CollectionUtils.isNotEmpty(flowList)){ + throw new BaseSystemException(entity.getName()+"重复"); + } + }else if("update".equals(type)){ + Assert.notEmpty(entity.getId(),"Id不能为空"); + SysFlowEntity flow = new SysFlowEntity(); + flow.setName(entity.getName()); + List<SysFlowEntity> flowList = sysFlowDao.query(flow); + if (CollectionUtils.isNotEmpty(flowList)){ + for (SysFlowEntity sysFlowEntity : flowList) { + if (!sysFlowEntity.getId().equals(entity.getId())){ + throw new BaseSystemException(entity.getName()+"重复"); + } + } + } + }else if ("delete".equals(type)){ + Assert.notEmpty(entity.getId(),"Id不能为空"); + + }else if ("queryPaged".equals(type)){ + Assert.notNull(entity.getPageNum(),"pageNum不能为空"); + Assert.notNull(entity.getPageSize(),"pageSize不能为空"); + } + } + + private void transferDictionary(SysFlowEntity sysFlowEntity){ + if (null != sysFlowEntity){ + SysDictionaryshopNew dictionaryshopByValue = sysDictionaryshopNewService.getDictionaryshopByValue("sys_flow", "trigger_mode_id", sysFlowEntity.getTriggerModeId()); + if (null != dictionaryshopByValue){ + sysFlowEntity.setTriggerModeName(dictionaryshopByValue.getColumnContent()); + } + } + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepAccountServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepAccountServiceImpl.java new file mode 100644 index 00000000..a82cac3a --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepAccountServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.sys.flow.service.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepAccountEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepAccountDao; +import com.hzya.frame.sys.flow.service.ISysFlowStepAccountService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 流程步骤账户表(SysFlowStepAccount)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Service(value = "sysFlowStepAccountService") +public class SysFlowStepAccountServiceImpl extends BaseService<SysFlowStepAccountEntity, String> implements ISysFlowStepAccountService { + + private ISysFlowStepAccountDao sysFlowStepAccountDao; + + @Autowired + public void setSysFlowStepAccountDao(ISysFlowStepAccountDao dao) { + this.sysFlowStepAccountDao = dao; + this.dao = dao; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigBServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigBServiceImpl.java new file mode 100644 index 00000000..3addfd52 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigBServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.sys.flow.service.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigBEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepConfigBDao; +import com.hzya.frame.sys.flow.service.ISysFlowStepConfigBService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 映射信息表体(SysFlowStepConfigB)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Service(value = "sysFlowStepConfigBService") +public class SysFlowStepConfigBServiceImpl extends BaseService<SysFlowStepConfigBEntity, String> implements ISysFlowStepConfigBService { + + private ISysFlowStepConfigBDao sysFlowStepConfigBDao; + + @Autowired + public void setSysFlowStepConfigBDao(ISysFlowStepConfigBDao dao) { + this.sysFlowStepConfigBDao = dao; + this.dao = dao; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigServiceImpl.java new file mode 100644 index 00000000..4c06c479 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepConfigServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.sys.flow.service.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepConfigEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepConfigDao; +import com.hzya.frame.sys.flow.service.ISysFlowStepConfigService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 映射信息主表(SysFlowStepConfig)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Service(value = "sysFlowStepConfigService") +public class SysFlowStepConfigServiceImpl extends BaseService<SysFlowStepConfigEntity, String> implements ISysFlowStepConfigService { + + private ISysFlowStepConfigDao sysFlowStepConfigDao; + + @Autowired + public void setSysFlowStepConfigDao(ISysFlowStepConfigDao dao) { + this.sysFlowStepConfigDao = dao; + this.dao = dao; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepRelationServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepRelationServiceImpl.java new file mode 100644 index 00000000..a34d3d43 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepRelationServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.sys.flow.service.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepRelationEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepRelationDao; +import com.hzya.frame.sys.flow.service.ISysFlowStepRelationService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 步骤关联关系表(SysFlowStepRelation)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:28 + */ +@Service(value = "sysFlowStepRelationService") +public class SysFlowStepRelationServiceImpl extends BaseService<SysFlowStepRelationEntity, String> implements ISysFlowStepRelationService { + + private ISysFlowStepRelationDao sysFlowStepRelationDao; + + @Autowired + public void setSysFlowStepRelationDao(ISysFlowStepRelationDao dao) { + this.sysFlowStepRelationDao = dao; + this.dao = dao; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepServiceImpl.java new file mode 100644 index 00000000..0c9a1b29 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sys/flow/service/impl/SysFlowStepServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.sys.flow.service.impl; + +import com.hzya.frame.sys.flow.entity.SysFlowStepEntity; +import com.hzya.frame.sys.flow.dao.ISysFlowStepDao; +import com.hzya.frame.sys.flow.service.ISysFlowStepService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 流程步骤信息(SysFlowStep)表服务实现类 + * + * @author xiang2lin + * @since 2025-04-29 10:16:27 + */ +@Service(value = "sysFlowStepService") +public class SysFlowStepServiceImpl extends BaseService<SysFlowStepEntity, String> implements ISysFlowStepService { + + private ISysFlowStepDao sysFlowStepDao; + + @Autowired + public void setSysFlowStepDao(ISysFlowStepDao dao) { + this.sysFlowStepDao = dao; + this.dao = dao; + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/entity/SysApplicationApiEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/entity/SysApplicationApiEntity.xml index 089b6eb5..cc0d29be 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/entity/SysApplicationApiEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/entity/SysApplicationApiEntity.xml @@ -42,6 +42,7 @@ <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> <result property="sts" column="sts" jdbcType="VARCHAR"/> <result property="org_id" column="org_id" jdbcType="VARCHAR"/> + <result property="appName" column="app_name" jdbcType="VARCHAR"/> </resultMap> <!-- 查询的字段--> <sql id="SysApplicationApiEntity_Base_Column_List"> @@ -83,6 +84,7 @@ <!--api联查应用表,like查询 --> <sql id="SysApplicationApiEntity_join_sysApp_like_Column_Lis"> sys_application_api.id, + sys_application.id as app_id, sys_application.app_id as app_code, sys_application_api.api_code, sys_application_api.api_name, @@ -156,52 +158,87 @@ WHERE <select id="entity_list_base" resultMap="get-SysApplicationApiEntity-result" parameterType="com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity"> select - <include refid="SysApplicationApiEntity_Base_Column_List"/> - from sys_application_api + api.id + ,api.api_status + ,api.api_code + ,api.api_path + ,api.app_id + ,api.catalogue_id + ,api.api_name + ,api.api_remark + ,api.need_Login + ,api.authentication_port + ,api.parameter_passing_mode + ,api.destination_address + ,api.request_coding + ,api.request_method + ,api.timeout_period + ,api.current_limiting + ,api.header_in + ,api.query_in + ,api.body_in_type + ,api.body_in + ,api.body_out + ,api.bean_name + ,api.return_msg + ,api.return_success_field + ,api.return_success_value + ,api.fun_name + ,api.extension_api + ,api.sorts + ,api.create_user_id + ,api.create_time + ,api.modify_user_id + ,api.modify_time + ,api.sts + ,api.org_id + ,app.name as app_name + from sys_application_api api + left join sys_application app on api.app_id = app.id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''">and id = #{id}</if> - <if test="apiStatus != null and apiStatus != ''">and api_status = #{apiStatus}</if> - <if test="apiCode != null ">and api_code = #{apiCode}</if> - <if test="apiPath != null and apiPath != ''">and api_path = #{apiPath}</if> - <if test="appId != null and appId != ''">and app_id = #{appId}</if> - <if test="catalogueId != null and catalogueId != ''">and catalogue_id = #{catalogueId}</if> - <if test="apiName != null and apiName != ''">and api_name = #{apiName}</if> - <if test="apiRemark != null and apiRemark != ''">and api_remark = #{apiRemark}</if> - <if test="needLogin != null and needLogin != ''">and need_Login = #{needLogin}</if> - <if test="authenticationPort != null and authenticationPort != ''">and authentication_port = + <if test="id != null and id != ''">and api.id = #{id}</if> + <if test="apiStatus != null and apiStatus != ''">and api.api_status = #{apiStatus}</if> + <if test="apiCode != null ">and api.api_code = #{apiCode}</if> + <if test="apiPath != null and apiPath != ''">and api.api_path = #{apiPath}</if> + <if test="appId != null and appId != ''">and api.app_id = #{appId}</if> + <if test="catalogueId != null and catalogueId != ''">and api.catalogue_id = #{catalogueId}</if> + <if test="apiName != null and apiName != ''">and api.api_name = #{apiName}</if> + <if test="apiRemark != null and apiRemark != ''">and api.api_remark = #{apiRemark}</if> + <if test="needLogin != null and needLogin != ''">and api.need_Login = #{needLogin}</if> + <if test="authenticationPort != null and authenticationPort != ''">and api.authentication_port = #{authenticationPort} </if> - <if test="parameterPassingMode != null and parameterPassingMode != ''">and parameter_passing_mode = + <if test="parameterPassingMode != null and parameterPassingMode != ''">and api.parameter_passing_mode = #{parameterPassingMode} </if> - <if test="destinationAddress != null and destinationAddress != ''">and destination_address = + <if test="destinationAddress != null and destinationAddress != ''">and api.destination_address = #{destinationAddress} </if> - <if test="requestCoding != null and requestCoding != ''">and request_coding = #{requestCoding}</if> - <if test="requestMethod != null and requestMethod != ''">and request_method = #{requestMethod}</if> - <if test="timeoutPeriod != null and timeoutPeriod != ''">and timeout_period = #{timeoutPeriod}</if> - <if test="currentLimiting != null and currentLimiting != ''">and current_limiting = #{currentLimiting}</if> - <if test="headerIn != null and headerIn != ''">and header_in = #{headerIn}</if> - <if test="queryIn != null and queryIn != ''">and query_in = #{queryIn}</if> - <if test="bodyInType != null and bodyInType != ''">and body_in_type = #{bodyInType}</if> - <if test="bodyIn != null and bodyIn != ''">and body_in = #{bodyIn}</if> - <if test="bodyOut != null and bodyOut != ''">and body_out = #{bodyOut}</if> - <if test="beanName != null and beanName != ''">and bean_name = #{beanName}</if> - <if test="returnMsg != null and returnMsg != ''">and return_msg = #{returnMsg}</if> - <if test="returnSuccessField != null and returnSuccessField != ''">and return_success_field = #{returnSuccessField}</if> - <if test="returnSuccessValue != null and returnSuccessValue != ''">and return_success_value = #{returnSuccessValue}</if> - <if test="funName != null and funName != ''">and fun_name = #{funName}</if> - <if test="extensionApi != null and extensionApi != ''">and extension_api = #{extensionApi}</if> - <if test="sorts != null">and sorts = #{sorts}</if> - <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> - <if test="create_time != null">and create_time = #{create_time}</if> - <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> - <if test="modify_time != null">and modify_time = #{modify_time}</if> - <if test="sts != null and sts != ''">and sts = #{sts}</if> - <if test="org_id != null and org_id != ''">and org_id = #{org_id}</if> - and sts='Y' + <if test="requestCoding != null and requestCoding != ''">and api.request_coding = #{requestCoding}</if> + <if test="requestMethod != null and requestMethod != ''">and api.request_method = #{requestMethod}</if> + <if test="timeoutPeriod != null and timeoutPeriod != ''">and api.timeout_period = #{timeoutPeriod}</if> + <if test="currentLimiting != null and currentLimiting != ''">and api.current_limiting = #{currentLimiting}</if> + <if test="headerIn != null and headerIn != ''">and api.header_in = #{headerIn}</if> + <if test="queryIn != null and queryIn != ''">and api.query_in = #{queryIn}</if> + <if test="bodyInType != null and bodyInType != ''">and api.body_in_type = #{bodyInType}</if> + <if test="bodyIn != null and bodyIn != ''">and api.body_in = #{bodyIn}</if> + <if test="bodyOut != null and bodyOut != ''">and api.body_out = #{bodyOut}</if> + <if test="beanName != null and beanName != ''">and api.bean_name = #{beanName}</if> + <if test="returnMsg != null and returnMsg != ''">and api.return_msg = #{returnMsg}</if> + <if test="returnSuccessField != null and returnSuccessField != ''">and api.return_success_field = #{returnSuccessField}</if> + <if test="returnSuccessValue != null and returnSuccessValue != ''">and api.return_success_value = #{returnSuccessValue}</if> + <if test="funName != null and funName != ''">and api.fun_name = #{funName}</if> + <if test="extensionApi != null and extensionApi != ''">and api.extension_api = #{extensionApi}</if> + <if test="sorts != null">and api.sorts = #{sorts}</if> + <if test="create_user_id != null and create_user_id != ''">and api.create_user_id = #{create_user_id}</if> + <if test="create_time != null">and api.create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and api.modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and api.modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and api.sts = #{sts}</if> + <if test="org_id != null and org_id != ''">and api.org_id = #{org_id}</if> + and api.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort == null or sort == ''.toString() ">order by api.sorts asc</if> <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> </select> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/ISysApplicationApiService.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/ISysApplicationApiService.java index 2218bf04..52272f22 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/ISysApplicationApiService.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/ISysApplicationApiService.java @@ -24,6 +24,8 @@ public interface ISysApplicationApiService extends IBaseService<SysApplicationAp **/ JsonResultEntity queryEntity(JSONObject jsonObject); + JsonResultEntity queryMultiAppPage(JSONObject jsonObject); + /** * 模糊查询,联查sys_app * @param entity diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/impl/SysApplicationApiServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/impl/SysApplicationApiServiceImpl.java index 488d88f6..5bf964a3 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/impl/SysApplicationApiServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/api/service/impl/SysApplicationApiServiceImpl.java @@ -1,10 +1,13 @@ package com.hzya.frame.sysnew.application.api.service.impl; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity; import com.hzya.frame.sysnew.application.api.dao.ISysApplicationApiDao; import com.hzya.frame.sysnew.application.api.service.ISysApplicationApiService; import com.hzya.frame.sysnew.application.plugin.entity.SysApplicationPluginEntity; +import com.hzya.frame.sysnew.messageTemplate.entity.SysMessageTemplateEntity; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.springframework.stereotype.Service; @@ -12,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import com.hzya.frame.basedao.service.impl.BaseService; +import java.util.ArrayList; import java.util.List; /** @@ -49,6 +53,42 @@ public class SysApplicationApiServiceImpl extends BaseService<SysApplicationApiE return BaseResult.getSuccessMessageEntity("查询数据成功", list); } + @Override + public JsonResultEntity queryMultiAppPage(JSONObject jsonObject){ + SysApplicationApiEntity entity = getData("jsonStr", jsonObject, SysApplicationApiEntity.class); + //判断分页 + if (entity == null || entity.getPageNum() == null || entity.getPageSize() == null) { + return BaseResult.getFailureMessageEntity("分页查询参数不存在"); + } + int pageNum = entity.getPageNum(); + int pageSize = entity.getPageSize(); + //查询时不分页 + entity.setPageNum(null); + entity.setPageSize(null); + String appIds = entity.getAppId(); + if(appIds == null || "".equals(appIds.trim())){ + return BaseResult.getFailureMessageEntity("应用ID不能为空"); + } + String[] appIdList = appIds.split(","); + List<SysApplicationApiEntity> resultList = new ArrayList<>(); + for (int i = 0; i < appIdList.length; i++) { + entity.setAppId(appIdList[i]); + List<SysApplicationApiEntity> list = sysApplicationApiDao.queryBase(entity); + resultList.addAll(list); + } + //手动分页 + int total = resultList.size(); + int fromIndex = (pageNum - 1) * pageSize; + int toIndex = Math.min(fromIndex + pageSize, total); + List<SysApplicationApiEntity> pageList = resultList.subList(fromIndex, toIndex); + + PageInfo<SysApplicationApiEntity> pageInfo = new PageInfo<>(pageList); + pageInfo.setTotal(total); + pageInfo.setPages((total + pageSize - 1) / pageSize); + + return BaseResult.getSuccessMessageEntity("查询数据成功", pageInfo); + } + /** * 模糊查询,联查sys_app * diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/ISysApplicationAccountDao.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/ISysApplicationAccountDao.java new file mode 100644 index 00000000..598bfc10 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/ISysApplicationAccountDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sysnew.application.appAcount.dao; + +import com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 应用账户表(sys_application_account: table)表数据库访问层 + * + * @author xiang2lin + * @since 2025-05-10 15:52:21 + */ +public interface ISysApplicationAccountDao extends IBaseDao<SysApplicationAccountEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/impl/SysApplicationAccountDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/impl/SysApplicationAccountDaoImpl.java new file mode 100644 index 00000000..359a8503 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/dao/impl/SysApplicationAccountDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sysnew.application.appAcount.dao.impl; + +import com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity; +import com.hzya.frame.sysnew.application.appAcount.dao.ISysApplicationAccountDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 应用账户表(SysApplicationAccount)表数据库访问层 + * + * @author xiang2lin + * @since 2025-05-10 15:52:23 + */ +@Repository(value = "SysApplicationAccountDaoImpl") +public class SysApplicationAccountDaoImpl extends MybatisGenericDao<SysApplicationAccountEntity, String> implements ISysApplicationAccountDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.java new file mode 100644 index 00000000..3542e200 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.java @@ -0,0 +1,137 @@ +package com.hzya.frame.sysnew.application.appAcount.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 应用账户表(SysApplicationAccount)实体类 + * + * @author xiang2lin + * @since 2025-05-10 15:52:24 + */ +public class SysApplicationAccountEntity extends BaseEntity { + + /** + * 应用id + */ + private String appId; + /** 账户名称 */ + private String name; + /** ip地址 */ + private String ipAddress; + /** 端口 */ + private String port; + /** 数据库名称 */ + private String dbName; + /** 用户名 */ + private String userName; + /** 密码 */ + private String password; + /** 数据库类型 */ + private String dbType; + /** 应用key */ + private String appKey; + /** 应用密钥 */ + private String appSecret; + /** 企业id */ + private String corpid; + /** 应用id */ + private String agentid; + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIpAddress() { + return ipAddress; + } + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + public String getPort() { + return port; + } + + public void setPort(String port) { + this.port = port; + } + + public String getDbName() { + return dbName; + } + + public void setDbName(String dbName) { + this.dbName = dbName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getDbType() { + return dbType; + } + + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAppSecret() { + return appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } + + public String getCorpid() { + return corpid; + } + + public void setCorpid(String corpid) { + this.corpid = corpid; + } + + public String getAgentid() { + return agentid; + } + + public void setAgentid(String agentid) { + this.agentid = agentid; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.xml new file mode 100644 index 00000000..b29ae0fe --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/entity/SysApplicationAccountEntity.xml @@ -0,0 +1,333 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sysnew.application.appAcount.dao.impl.SysApplicationAccountDaoImpl"> + + <resultMap id="get-SysApplicationAccountEntity-result" + type="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="sorts" column="sorts" jdbcType="INTEGER"/> + <result property="appId" column="app_id" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="ipAddress" column="ip_address" jdbcType="VARCHAR"/> + <result property="port" column="port" jdbcType="VARCHAR"/> + <result property="dbName" column="db_name" jdbcType="VARCHAR"/> + <result property="userName" column="user_name" jdbcType="VARCHAR"/> + <result property="password" column="password" jdbcType="VARCHAR"/> + <result property="dbType" column="db_type" jdbcType="VARCHAR"/> + <result property="appKey" column="app_key" jdbcType="VARCHAR"/> + <result property="appSecret" column="app_secret" jdbcType="VARCHAR"/> + <result property="corpid" column="corpId" jdbcType="VARCHAR"/> + <result property="agentid" column="agentId" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id="SysApplicationAccountEntity_Base_Column_List"> + id + ,create_user_id + ,create_time + ,modify_user_id + ,modify_time + ,sts + ,sorts + ,appId + ,name + ,ip_address + ,port + ,db_name + ,user_name + ,password + ,db_type + ,app_key + ,app_secret + ,corpId + ,agentId + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysApplicationAccountEntity-result" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + select + <include refid="SysApplicationAccountEntity_Base_Column_List"/> + from sys_application_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="sorts != null">and sorts = #{sorts}</if> + <if test="appId != null and appId != ''">and app_id = #{appId}</if> + <if test="name != null and name != ''">and name = #{name}</if> + <if test="ipAddress != null and ipAddress != ''">and ip_address = #{ipAddress}</if> + <if test="port != null and port != ''">and port = #{port}</if> + <if test="dbName != null and dbName != ''">and db_name = #{dbName}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="password != null and password != ''">and password = #{password}</if> + <if test="dbType != null and dbType != ''">and db_type = #{dbType}</if> + <if test="appKey != null and appKey != ''">and app_key = #{appKey}</if> + <if test="appSecret != null and appSecret != ''">and app_secret = #{appSecret}</if> + <if test="corpid != null and corpid != ''">and corpId = #{corpid}</if> + <if test="agentid != null and agentid != ''">and agentId = #{agentid}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询符合条件的数量 --> + <select id="entity_count" resultType="Integer" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + select count(1) from sys_application_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id = #{create_user_id}</if> + <if test="create_time != null">and create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">and modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="sorts != null">and sorts = #{sorts}</if> + <if test="appId != null and appId != ''">and app_id = #{appId}</if> + <if test="name != null and name != ''">and name = #{name}</if> + <if test="ipAddress != null and ipAddress != ''">and ip_address = #{ipAddress}</if> + <if test="port != null and port != ''">and port = #{port}</if> + <if test="dbName != null and dbName != ''">and db_name = #{dbName}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="password != null and password != ''">and password = #{password}</if> + <if test="dbType != null and dbType != ''">and db_type = #{dbType}</if> + <if test="appKey != null and appKey != ''">and app_key = #{appKey}</if> + <if test="appSecret != null and appSecret != ''">and app_secret = #{appSecret}</if> + <if test="corpid != null and corpid != ''">and corpId = #{corpid}</if> + <if test="agentid != null and agentid != ''">and agentId = #{agentid}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> + <select id="entity_list_like" resultMap="get-SysApplicationAccountEntity-result" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + select + <include refid="SysApplicationAccountEntity_Base_Column_List"/> + from sys_application_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id like concat('%',#{id},'%')</if> + <if test="create_user_id != null and create_user_id != ''">and create_user_id like + concat('%',#{create_user_id},'%') + </if> + <if test="create_time != null">and create_time like concat('%',#{create_time},'%')</if> + <if test="modify_user_id != null and modify_user_id != ''">and modify_user_id like + concat('%',#{modify_user_id},'%') + </if> + <if test="modify_time != null">and modify_time like concat('%',#{modify_time},'%')</if> + <if test="sts != null and sts != ''">and sts like concat('%',#{sts},'%')</if> + <if test="sorts != null">and sorts like concat('%',#{sorts},'%')</if> + <if test="name != null and name != ''">and name like concat('%',#{name},'%')</if> + <if test="appId != null and appId != ''">and app_id like concat('%',#{appId},'%')</if> + <if test="ipAddress != null and ipAddress != ''">and ip_address like concat('%',#{ipAddress},'%')</if> + <if test="port != null and port != ''">and port like concat('%',#{port},'%')</if> + <if test="dbName != null and dbName != ''">and db_name like concat('%',#{dbName},'%')</if> + <if test="userName != null and userName != ''">and user_name like concat('%',#{userName},'%')</if> + <if test="password != null and password != ''">and password like concat('%',#{password},'%')</if> + <if test="dbType != null and dbType != ''">and db_type like concat('%',#{dbType},'%')</if> + <if test="appKey != null and appKey != ''">and app_key like concat('%',#{appKey},'%')</if> + <if test="appSecret != null and appSecret != ''">and app_secret like concat('%',#{appSecret},'%')</if> + <if test="corpid != null and corpid != ''">and corpId like concat('%',#{corpid},'%')</if> + <if test="agentid != null and agentid != ''">and agentId like concat('%',#{agentid},'%')</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!-- 查询列表 字段采用or格式 --> + <select id="SysApplicationAccountentity_list_or" resultMap="get-SysApplicationAccountEntity-result" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + select + <include refid="SysApplicationAccountEntity_Base_Column_List"/> + from sys_application_account + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">or id = #{id}</if> + <if test="create_user_id != null and create_user_id != ''">or create_user_id = #{create_user_id}</if> + <if test="create_time != null">or create_time = #{create_time}</if> + <if test="modify_user_id != null and modify_user_id != ''">or modify_user_id = #{modify_user_id}</if> + <if test="modify_time != null">or modify_time = #{modify_time}</if> + <if test="sts != null and sts != ''">or sts = #{sts}</if> + <if test="sorts != null">or sorts = #{sorts}</if> + <if test="name != null and name != ''">or name = #{name}</if> + <if test="ipAddress != null and ipAddress != ''">or ip_address = #{ipAddress}</if> + <if test="port != null and port != ''">or port = #{port}</if> + <if test="dbName != null and dbName != ''">or db_name = #{dbName}</if> + <if test="userName != null and userName != ''">or user_name = #{userName}</if> + <if test="password != null and password != ''">or password = #{password}</if> + <if test="dbType != null and dbType != ''">or db_type = #{dbType}</if> + <if test="appKey != null and appKey != ''">or app_key = #{appKey}</if> + <if test="appSecret != null and appSecret != ''">or app_secret = #{appSecret}</if> + <if test="corpid != null and corpid != ''">or corpId = #{corpid}</if> + <if test="agentid != null and agentid != ''">or agentId = #{agentid}</if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> + </select> + + <!--新增所有列--> + <insert id="entity_insert" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity" + keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_account( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">id ,</if> + <if test="create_user_id != null and create_user_id != ''">create_user_id ,</if> + <if test="create_time != null">create_time ,</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id ,</if> + <if test="modify_time != null">modify_time ,</if> + <if test="sts != null and sts != ''">sts ,</if> + <if test="sorts != null">sorts ,</if> + <if test="name != null and name != ''">name ,</if> + <if test="ipAddress != null and ipAddress != ''">ip_address ,</if> + <if test="port != null and port != ''">port ,</if> + <if test="dbName != null and dbName != ''">db_name ,</if> + <if test="userName != null and userName != ''">user_name ,</if> + <if test="password != null and password != ''">password ,</if> + <if test="dbType != null and dbType != ''">db_type ,</if> + <if test="appKey != null and appKey != ''">app_key ,</if> + <if test="appSecret != null and appSecret != ''">app_secret ,</if> + <if test="corpid != null and corpid != ''">corpId ,</if> + <if test="agentid != null and agentid != ''">agentId ,</if> + <if test="sorts == null ">sorts,</if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''">#{id} ,</if> + <if test="create_user_id != null and create_user_id != ''">#{create_user_id} ,</if> + <if test="create_time != null">#{create_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''">#{modify_user_id} ,</if> + <if test="modify_time != null">#{modify_time} ,</if> + <if test="sts != null and sts != ''">#{sts} ,</if> + <if test="sorts != null">#{sorts} ,</if> + <if test="name != null and name != ''">#{name} ,</if> + <if test="ipAddress != null and ipAddress != ''">#{ipAddress} ,</if> + <if test="port != null and port != ''">#{port} ,</if> + <if test="dbName != null and dbName != ''">#{dbName} ,</if> + <if test="userName != null and userName != ''">#{userName} ,</if> + <if test="password != null and password != ''">#{password} ,</if> + <if test="dbType != null and dbType != ''">#{dbType} ,</if> + <if test="appKey != null and appKey != ''">#{appKey} ,</if> + <if test="appSecret != null and appSecret != ''">#{appSecret} ,</if> + <if test="corpid != null and corpid != ''">#{corpid} ,</if> + <if test="agentid != null and agentid != ''">#{agentid} ,</if> + <if test="sorts == null ">COALESCE((select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_application_account a + WHERE a.sts = 'Y' )1), + </if> + <if test="sts == null ">'Y',</if> + </trim> + ) + </insert> + <!-- 批量新增 --> + <insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_account(create_user_id, create_time, modify_user_id, modify_time, sts, sorts, name, + ip_address, port, db_name, user_name, password, db_type, app_key, app_secret, corpId, agentId, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.sorts},#{entity.name},#{entity.ipAddress},#{entity.port},#{entity.dbName},#{entity.userName},#{entity.password},#{entity.dbType},#{entity.appKey},#{entity.appSecret},#{entity.corpid},#{entity.agentid}, + 'Y') + </foreach> + </insert> + <!-- 批量新增或者修改--> + <insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_account(create_user_id, create_time, modify_user_id, modify_time, sts, sorts, name, + ip_address, port, db_name, user_name, password, db_type, app_key, app_secret, corpId, agentId) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.sorts},#{entity.name},#{entity.ipAddress},#{entity.port},#{entity.dbName},#{entity.userName},#{entity.password},#{entity.dbType},#{entity.appKey},#{entity.appSecret},#{entity.corpid},#{entity.agentid}) + </foreach> + on duplicate key update + create_user_id = values(create_user_id), + create_time = values(create_time), + modify_user_id = values(modify_user_id), + modify_time = values(modify_time), + sts = values(sts), + sorts = values(sorts), + name = values(name), + ip_address = values(ip_address), + port = values(port), + db_name = values(db_name), + user_name = values(user_name), + password = values(password), + db_type = values(db_type), + app_key = values(app_key), + app_secret = values(app_secret), + corpId = values(corpId), + agentId = values(agentId) + </insert> + <!--通过主键修改方法--> + <update id="entity_update" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + update sys_application_account set + <trim suffix="" suffixOverrides=","> + <if test="create_user_id != null and create_user_id != ''">create_user_id = #{create_user_id},</if> + <if test="create_time != null">create_time = #{create_time},</if> + <if test="modify_user_id != null and modify_user_id != ''">modify_user_id = #{modify_user_id},</if> + <if test="modify_time != null">modify_time = #{modify_time},</if> + <if test="sts != null and sts != ''">sts = #{sts},</if> + <if test="sorts != null">sorts = #{sorts},</if> + <if test="name != null and name != ''">name = #{name},</if> + <if test="ipAddress != null and ipAddress != ''">ip_address = #{ipAddress},</if> + <if test="port != null and port != ''">port = #{port},</if> + <if test="dbName != null and dbName != ''">db_name = #{dbName},</if> + <if test="userName != null and userName != ''">user_name = #{userName},</if> + <if test="password != null and password != ''">password = #{password},</if> + <if test="dbType != null and dbType != ''">db_type = #{dbType},</if> + <if test="appKey != null and appKey != ''">app_key = #{appKey},</if> + <if test="appSecret != null and appSecret != ''">app_secret = #{appSecret},</if> + <if test="corpid != null and corpid != ''">corpId = #{corpid},</if> + <if test="agentid != null and agentid != ''">agentId = #{agentid},</if> + </trim> + where id = #{id} + </update> + <!-- 逻辑删除 --> + <update id="entity_logicDelete" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + update sys_application_account + set sts= 'N', + modify_time = #{modify_time}, + modify_user_id = #{modify_user_id} + where id = #{id} + </update> + <!-- 多条件逻辑删除 --> + <update id="entity_logicDelete_Multi_Condition" + parameterType="com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity"> + update sys_application_account set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and id = #{id}</if> + <if test="sts != null and sts != ''">and sts = #{sts}</if> + <if test="sorts != null">and sorts = #{sorts}</if> + <if test="name != null and name != ''">and name = #{name}</if> + <if test="ipAddress != null and ipAddress != ''">and ip_address = #{ipAddress}</if> + <if test="port != null and port != ''">and port = #{port}</if> + <if test="dbName != null and dbName != ''">and db_name = #{dbName}</if> + <if test="userName != null and userName != ''">and user_name = #{userName}</if> + <if test="password != null and password != ''">and password = #{password}</if> + <if test="dbType != null and dbType != ''">and db_type = #{dbType}</if> + <if test="appKey != null and appKey != ''">and app_key = #{appKey}</if> + <if test="appSecret != null and appSecret != ''">and app_secret = #{appSecret}</if> + <if test="corpid != null and corpid != ''">and corpId = #{corpid}</if> + <if test="agentid != null and agentid != ''">and agentId = #{agentid}</if> + and sts='Y' + </trim> + </update> + <!--通过主键删除--> + <delete id="entity_delete"> + delete + from sys_application_account + where id = #{id} + </delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/ISysApplicationAccountService.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/ISysApplicationAccountService.java new file mode 100644 index 00000000..c06d2ed8 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/ISysApplicationAccountService.java @@ -0,0 +1,57 @@ +package com.hzya.frame.sysnew.application.appAcount.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 应用账户表(SysApplicationAccount)表服务接口 + * + * @author xiang2lin + * @since 2025-05-10 15:52:25 + */ +public interface ISysApplicationAccountService extends IBaseService<SysApplicationAccountEntity, String>{ + + /** + * 保存账户信息 + * @param object + * @return + */ + JsonResultEntity saveAccount(JSONObject object); + + /** + * 更新账户信息 + * @param object + * @return + */ + JsonResultEntity updateAccount(JSONObject object); + + /** + * 删除账户信息 + * @param object + * @return + */ + JsonResultEntity deleteAccount(JSONObject object); + + /** + * 查询账户详情 + * @param object + * @return + */ + JsonResultEntity getAccount(JSONObject object); + + /** + * 查询账户列表数据 + * @param object + * @return + */ + JsonResultEntity queryAccountList(JSONObject object); + + /** + * 查询账户分页数据 + * @param object + * @return + */ + JsonResultEntity queryAccountPaged(JSONObject object); +} diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/impl/SysApplicationAccountServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/impl/SysApplicationAccountServiceImpl.java new file mode 100644 index 00000000..486e4526 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/appAcount/service/impl/SysApplicationAccountServiceImpl.java @@ -0,0 +1,107 @@ +package com.hzya.frame.sysnew.application.appAcount.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.appAcount.entity.SysApplicationAccountEntity; +import com.hzya.frame.sysnew.application.appAcount.dao.ISysApplicationAccountDao; +import com.hzya.frame.sysnew.application.appAcount.service.ISysApplicationAccountService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * 应用账户表(SysApplicationAccount)表服务实现类 + * + * @author xiang2lin + * @since 2025-05-10 15:52:26 + */ +@Service(value = "sysApplicationAccountService") +public class SysApplicationAccountServiceImpl extends BaseService<SysApplicationAccountEntity, String> implements ISysApplicationAccountService { + + private ISysApplicationAccountDao sysApplicationAccountDao; + + @Autowired + public void setSysApplicationAccountDao(ISysApplicationAccountDao dao) { + this.sysApplicationAccountDao = dao; + this.dao = dao; + } + + /** + * 保存账户信息 + * + * @param object + * @return + */ + @Override + public JsonResultEntity saveAccount(JSONObject object) { + SysApplicationAccountEntity entity = getData("jsonStr", object, SysApplicationAccountEntity.class); + try { + checkParam(entity,"save"); + }catch (Exception e){ + return BaseResult.getFailureMessageEntity(e.getMessage()); + } + sysApplicationAccountDao.save(entity); + return BaseResult.getSuccessMessageEntity("新增成功"); + } + + /** + * 更新账户信息 + * + * @param object + * @return + */ + @Override + public JsonResultEntity updateAccount(JSONObject object) { + return null; + } + + /** + * 删除账户信息 + * + * @param object + * @return + */ + @Override + public JsonResultEntity deleteAccount(JSONObject object) { + return null; + } + + /** + * 查询账户详情 + * + * @param object + * @return + */ + @Override + public JsonResultEntity getAccount(JSONObject object) { + return null; + } + + /** + * 查询账户列表数据 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryAccountList(JSONObject object) { + return null; + } + + /** + * 查询账户分页数据 + * + * @param object + * @return + */ + @Override + public JsonResultEntity queryAccountPaged(JSONObject object) { + return null; + } + + //数据检查 + private void checkParam(SysApplicationAccountEntity entity,String type){ + + } +} diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationDto.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationDto.java index e619ae21..87e28f54 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationDto.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationDto.java @@ -61,6 +61,8 @@ public class SysApplicationDto { private List<SysApplicationApiParaEntity> apiParas; /** 系统类型 1、致远OA 2、用友U8C 3、用友BIP */ private String appType; + //nifi的id + private String nifiAppId; //数据源 private SysApplicationDatabaseEntity databaseEntity; private Integer pageNum; @@ -271,5 +273,13 @@ public class SysApplicationDto { public void setAppType(String appType) { this.appType = appType; } + + public String getNifiAppId() { + return nifiAppId; + } + + public void setNifiAppId(String nifiAppId) { + this.nifiAppId = nifiAppId; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.java index 3eb1ff34..ee1f05fe 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.java @@ -42,6 +42,18 @@ public class SysApplicationEntity extends BaseEntity { private String interfaceStatus; /** 数据源是否启用(1、开启 2、关闭) */ private String dbStatus; + /** 新消息数 */ + private int newMessageCount; + //nifi的appid + private String nifiAppId; + + public int getNewMessageCount() { + return newMessageCount; + } + + public void setNewMessageCount(int newMessageCount) { + this.newMessageCount = newMessageCount; + } /** 系统类型 1、致远OA 2、用友U8C 3、用友BIP */ private String appType; @@ -201,5 +213,13 @@ public class SysApplicationEntity extends BaseEntity { public void setAppType(String appType) { this.appType = appType; } + + public String getNifiAppId() { + return nifiAppId; + } + + public void setNifiAppId(String nifiAppId) { + this.nifiAppId = nifiAppId; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.xml index e9852749..ecfc0d3f 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/entity/SysApplicationEntity.xml @@ -23,6 +23,7 @@ <result property="interfaceStatus" column="interface_status" jdbcType="VARCHAR"/> <result property="dbStatus" column="db_status" jdbcType="VARCHAR"/> <result property="appType" column="app_type" jdbcType="VARCHAR"/> + <result property="nifiAppId" column="nifi_app_id" jdbcType="VARCHAR"/> <result property="sorts" column="sorts" jdbcType="INTEGER"/> <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="sts" column="sts" jdbcType="VARCHAR"/> @@ -53,6 +54,7 @@ ,interface_status ,db_status ,app_type + ,nifi_app_id ,sorts ,org_id ,sts @@ -93,6 +95,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> and interface_status = #{interfaceStatus} </if> <if test="dbStatus != null and dbStatus != ''"> and db_status = #{dbStatus} </if> <if test="appType != null and appType != ''"> and app_type = #{appType} </if> + <if test="nifiAppId != null and nifiAppId != ''"> and nifi_app_id = #{nifiAppId} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="sts != null and sts != ''"> and sts = #{sts} </if> @@ -130,6 +133,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> and interface_status = #{interfaceStatus} </if> <if test="dbStatus != null and dbStatus != ''"> and db_status = #{dbStatus} </if> <if test="appType != null and appType != ''"> and app_type = #{appType} </if> + <if test="nifiAppId != null and nifiAppId != ''"> and nifi_app_id = #{nifiAppId} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="sts != null and sts != ''"> and sts = #{sts} </if> @@ -169,6 +173,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> and interface_status like concat('%',#{interfaceStatus},'%') </if> <if test="dbStatus != null and dbStatus != ''"> and db_status like concat('%',#{dbStatus},'%') </if> <if test="appType != null and appType != ''"> and app_type like concat('%',#{appType},'%') </if> + <if test="nifiAppId != null and nifiAppId != ''"> and nifi_app_id like concat('%',#{nifiAppId},'%') </if> <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> @@ -208,6 +213,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> or interface_status = #{interfaceStatus} </if> <if test="dbStatus != null and dbStatus != ''"> or db_status = #{dbStatus} </if> <if test="appType != null and appType != ''"> or app_type = #{appType} </if> + <if test="nifiAppId != null and nifiAppId != ''"> or nifi_app_id = #{nifiAppId} </if> <if test="sorts != null"> or sorts = #{sorts} </if> <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if> <if test="sts != null and sts != ''"> or sts = #{sts} </if> @@ -246,6 +252,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> interface_status , </if> <if test="dbStatus != null and dbStatus != ''"> db_status , </if> <if test="appType != null and appType != ''"> app_type , </if> + <if test="nifiAppId != null and nifiAppId != ''"> nifi_app_id , </if> <if test="sorts != null"> sorts , </if> <if test="org_id != null and org_id != ''"> org_id , </if> <if test="sts != null and sts != ''"> sts , </if> @@ -278,6 +285,7 @@ <if test="interfaceStatus != null and interfaceStatus != ''"> #{interfaceStatus} ,</if> <if test="dbStatus != null and dbStatus != ''"> #{dbStatus} ,</if> <if test="appType != null and appType != ''"> #{appType} ,</if> + <if test="nifiAppId != null and nifiAppId != ''"> #{nifiAppId} ,</if> <if test="sorts != null"> #{sorts} ,</if> <if test="org_id != null and org_id != ''"> #{org_id} ,</if> <if test="sts != null and sts != ''"> #{sts} ,</if> @@ -291,18 +299,18 @@ </insert> <!-- 批量新增 --> <insert id="entityInsertBatch" > - insert into sys_application(app_logo, app_status, name, version_number, app_id, system_address, access_mode, affiliation_field, manufacturer, app_introduction, client_path, web_path, program_path, public_key, secret_key, interface_address, interface_status, db_status,app_type, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id, sts) + insert into sys_application(app_logo, app_status, name, version_number, app_id, system_address, access_mode, affiliation_field, manufacturer, app_introduction, client_path, web_path, program_path, public_key, secret_key, interface_address, interface_status, db_status,app_type,nifi_app_id, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id, sts) values <foreach collection="entities" item="entity" separator=","> - (#{entity.appLogo},#{entity.appStatus},#{entity.name},#{entity.versionNumber},#{entity.appId},#{entity.systemAddress},#{entity.accessMode},#{entity.affiliationField},#{entity.manufacturer},#{entity.appIntroduction},#{entity.clientPath},#{entity.webPath},#{entity.programPath},#{entity.publicKey},#{entity.secretKey},#{entity.interfaceAddress},#{entity.interfaceStatus},#{entity.dbStatus},#{entity.appType},#{entity.sorts},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}, 'Y') + (#{entity.appLogo},#{entity.appStatus},#{entity.name},#{entity.versionNumber},#{entity.appId},#{entity.systemAddress},#{entity.accessMode},#{entity.affiliationField},#{entity.manufacturer},#{entity.appIntroduction},#{entity.clientPath},#{entity.webPath},#{entity.programPath},#{entity.publicKey},#{entity.secretKey},#{entity.interfaceAddress},#{entity.interfaceStatus},#{entity.dbStatus},#{entity.appType},#{entity.nifiAppId},#{entity.sorts},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}, 'Y') </foreach> </insert> <!-- 批量新增或者修改--> <insert id="entityInsertOrUpdateBatch" > - insert into sys_application(app_logo, app_status, name, version_number,app_id,system_address, access_mode, affiliation_field, manufacturer, app_introduction, client_path, web_path, program_path, public_key, secret_key, interface_address, interface_status, db_status,app_type, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) + insert into sys_application(app_logo, app_status, name, version_number,app_id,system_address, access_mode, affiliation_field, manufacturer, app_introduction, client_path, web_path, program_path, public_key, secret_key, interface_address, interface_status, db_status,app_type,nifi_app_id, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) values <foreach collection="entities" item="entity" separator=","> - (#{entity.appLogo},#{entity.appStatus},#{entity.name},#{entity.versionNumber},#{entity.appId},#{entity.systemAddress},#{entity.accessMode},#{entity.affiliationField},#{entity.manufacturer},#{entity.appIntroduction},#{entity.clientPath},#{entity.webPath},#{entity.programPath},#{entity.publicKey},#{entity.secretKey},#{entity.interfaceAddress},#{entity.interfaceStatus},#{entity.dbStatus},#{entity.appType},#{entity.sorts},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}) + (#{entity.appLogo},#{entity.appStatus},#{entity.name},#{entity.versionNumber},#{entity.appId},#{entity.systemAddress},#{entity.accessMode},#{entity.affiliationField},#{entity.manufacturer},#{entity.appIntroduction},#{entity.clientPath},#{entity.webPath},#{entity.programPath},#{entity.publicKey},#{entity.secretKey},#{entity.interfaceAddress},#{entity.interfaceStatus},#{entity.dbStatus},#{entity.appType},#{entity.nifiAppId},#{entity.sorts},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}) </foreach> on duplicate key update app_logo = values(app_logo), @@ -324,6 +332,7 @@ interface_status = values(interface_status), db_status = values(db_status), app_type = values(app_type), + nifi_app_id = values(nifi_app_id), sorts = values(sorts), org_id = values(org_id), sts = values(sts), @@ -354,6 +363,7 @@ update sys_application set <if test="interfaceStatus != null and interfaceStatus != ''"> interface_status = #{interfaceStatus},</if> <if test="dbStatus != null and dbStatus != ''"> db_status = #{dbStatus},</if> <if test="appType != null and appType != ''"> app_type = #{appType},</if> + <if test="nifiAppId != null and nifiAppId != ''"> nifi_app_id = #{nifiAppId},</if> <if test="sorts != null"> sorts = #{sorts},</if> <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> <if test="sts != null and sts != ''"> sts = #{sts},</if> @@ -393,6 +403,7 @@ update sys_application set sts= 'N' ,modify_time = #{modify_time},modify_user_i <if test="interfaceStatus != null and interfaceStatus != ''"> and interface_status = #{interfaceStatus} </if> <if test="dbStatus != null and dbStatus != ''"> and db_status = #{dbStatus} </if> <if test="appType != null and appType != ''"> and app_type = #{appType} </if> + <if test="nifiAppId != null and nifiAppId != ''"> and nifi_app_id = #{nifiAppId} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="sts != null and sts != ''"> and sts = #{sts} </if> and sts='Y' @@ -421,6 +432,7 @@ update sys_application set sts= 'N' ,modify_time = #{modify_time},modify_user_i ,a.interface_status as interfaceStatus ,a.db_status as dbStatus ,a.app_type as appType + ,a.nifi_app_id as nifiAppId from sys_application a <trim prefix="where" prefixOverrides="and"> <if test="affiliationField != null and affiliationField != ''"> and a.affiliation_field = #{affiliationField} </if> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginDto.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginDto.java index 54a3dc3f..8825215f 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginDto.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginDto.java @@ -20,6 +20,16 @@ public class SysApplicationPluginDto { private Integer pageNum; private Integer pageSize; + private String typeId; + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + public String getAppId() { return appId; } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java index 5929e14b..79b8c326 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java @@ -22,13 +22,33 @@ public class SysApplicationPluginEntity extends BaseEntity { private String pluginVersion; /** 描述 */ private String pluginRemark; + /** 插件类型id */ + private String typeId; + /** 插件类型名称 */ + private String typeName; /** 发布日期 */ private Date releaseDate; /** 启用停用(1启用2停用) */ private String pluginStatus; - + /** 附件id */ private String attachmentId; + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + public String getPluginPackageName() { return pluginPackageName; } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml index 90b5444d..5ba4c199 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml @@ -20,6 +20,8 @@ <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="attachmentId" column="attachment_id" jdbcType="VARCHAR"/> <result property="pluginPackageName" column="plugin_package_name" jdbcType="VARCHAR"/> + <result property="typeId" column="type_id" jdbcType="VARCHAR"/> + <result property="typeName" column="type_name" jdbcType="VARCHAR"/> </resultMap> <!-- 查询的字段--> <sql id = "SysApplicationPluginEntity_Base_Column_List"> @@ -40,6 +42,7 @@ ,org_id ,attachment_id ,plugin_package_name + ,type_id </sql> <!--通过ID获取数据 --> <select id="entity_get" resultMap="get-SysApplicationPluginEntity-result"> @@ -70,6 +73,7 @@ <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="attachmentId != null and attachmentId != ''"> and attachment_id = #{attachmentId} </if> <if test="pluginPackageName != null and pluginPackageName != ''"> and plugin_package_name = #{pluginPackageName} </if> + <if test="typeId != null and typeId != ''"> and type_id = #{typeId} </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -105,30 +109,34 @@ <!-- 分页查询列表 采用like格式 --> <select id="entity_list_like" resultMap="get-SysApplicationPluginEntity-result" parameterType = "com.hzya.frame.sysnew.application.plugin.entity.SysApplicationPluginEntity"> - select - <include refid="SysApplicationPluginEntity_Base_Column_List" /> - from sys_application_plugin + SELECT + p.*, + type.NAME AS type_name + FROM + sys_application_plugin p + LEFT JOIN sys_application_plugin_type type ON p.type_id = type.id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> - <if test="appId != null and appId != ''"> and app_id like concat('%',#{appId},'%') </if> - <if test="pluginName != null and pluginName != ''"> and plugin_name like concat('%',#{pluginName},'%') </if> - <if test="pluginCode != null and pluginCode != ''"> and plugin_code like concat('%',#{pluginCode},'%') </if> - <if test="pluginVersion != null and pluginVersion != ''"> and plugin_version like concat('%',#{pluginVersion},'%') </if> - <if test="pluginRemark != null and pluginRemark != ''"> and plugin_remark like concat('%',#{pluginRemark},'%') </if> - <if test="releaseDate != null"> and release_date like concat('%',#{releaseDate},'%') </if> - <if test="pluginStatus != null and pluginStatus != ''"> and plugin_status like concat('%',#{pluginStatus},'%') </if> - <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> - <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> - <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> - <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> - <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> - <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> - <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> - <if test="attachmentId != null and attachmentId != ''"> and attachment_id like concat('%',#{attachmentId},'%') </if> - <if test="pluginPackageName != null and pluginPackageName != ''"> and plugin_package_name like concat('%',#{pluginPackageName},'%') </if> - and sts='Y' + <if test="id != null and id != ''"> and p.id like concat('%',#{id},'%') </if> + <if test="appId != null and appId != ''"> and p.app_id like concat('%',#{appId},'%') </if> + <if test="pluginName != null and pluginName != ''"> and p.plugin_name like concat('%',#{pluginName},'%') </if> + <if test="pluginCode != null and pluginCode != ''"> and p.plugin_code like concat('%',#{pluginCode},'%') </if> + <if test="pluginVersion != null and pluginVersion != ''"> and p.plugin_version like concat('%',#{pluginVersion},'%') </if> + <if test="pluginRemark != null and pluginRemark != ''"> and p.plugin_remark like concat('%',#{pluginRemark},'%') </if> + <if test="releaseDate != null"> and p.release_date like concat('%',#{releaseDate},'%') </if> + <if test="pluginStatus != null and pluginStatus != ''"> and p.plugin_status like concat('%',#{pluginStatus},'%') </if> + <if test="sorts != null"> and p.sorts like concat('%',#{sorts},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and p.create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and p.create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and p.modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and p.modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and p.sts like concat('%',#{sts},'%') </if> + <if test="org_id != null and org_id != ''"> and p.org_id like concat('%',#{org_id},'%') </if> + <if test="attachmentId != null and attachmentId != ''"> and p.attachment_id like concat('%',#{attachmentId},'%') </if> + <if test="pluginPackageName != null and pluginPackageName != ''"> and p.plugin_package_name like concat('%',#{pluginPackageName},'%') </if> + <if test="typeId != null and typeId != ''"> and p.type_id like concat('%',#{typeId},'%') </if> + and p.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort == null or sort == ''.toString() "> order by p.sorts asc</if> <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> </select> @@ -182,6 +190,7 @@ <if test="org_id != null and org_id != ''"> org_id , </if> <if test="attachmentId != null and attachmentId != ''"> attachment_id , </if> <if test="pluginPackageName != null and pluginPackageName != ''"> plugin_package_name , </if> + <if test="typeId != null and typeId != ''"> type_id , </if> <if test="sts == null ">sts,</if> </trim> )values( @@ -203,6 +212,7 @@ <if test="org_id != null and org_id != ''"> #{org_id} ,</if> <if test="attachmentId != null and attachmentId != ''"> #{attachmentId} ,</if> <if test="pluginPackageName != null and pluginPackageName != ''"> #{pluginPackageName} ,</if> + <if test="typeId != null and typeId != ''"> #{typeId} ,</if> <if test="sts == null ">'Y',</if> </trim> ) @@ -254,9 +264,10 @@ update sys_application_plugin set <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> <if test="modify_time != null"> modify_time = #{modify_time},</if> <if test="sts != null and sts != ''"> sts = #{sts},</if> - <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> + <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> <if test="attachmentId != null and attachmentId != ''"> attachment_id = #{attachmentId},</if> <if test="pluginPackageName != null and pluginPackageName != ''"> plugin_package_name = #{pluginPackageName},</if> + <if test="typeId != null and typeId != ''"> type_id = #{typeId},</if> </trim> where id = #{id} </update> @@ -291,16 +302,20 @@ update sys_application_plugin set sts= 'N' ,modify_time = #{modify_time},modify <!-- 分页查询列表 采用like格式 --> <select id="queryListlike" resultMap="get-SysApplicationPluginEntity-result" parameterType = "com.hzya.frame.sysnew.application.plugin.entity.SysApplicationPluginDto"> - select - <include refid="SysApplicationPluginEntity_Base_Column_List" /> - from sys_application_plugin + SELECT + p.*, + type.NAME AS type_name + FROM + sys_application_plugin p + LEFT JOIN sys_application_plugin_type type ON p.type_id = type.id <trim prefix="where" prefixOverrides="and"> - <if test="appId != null and appId != ''"> and app_id = #{appId} </if> - <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> - <if test="name != null and name != ''"> and ( plugin_name like concat('%',#{name},'%') or plugin_code like concat('%',#{name},'%') or plugin_version like concat('%',#{name},'%') )</if> - and sts='Y' + <if test="appId != null and appId != ''"> and p.app_id = #{appId} </if> + <if test="id != null and id != ''"> and p.id like concat('%',#{id},'%') </if> + <if test="name != null and name != ''"> and ( p.plugin_name like concat('%',#{name},'%') or p.plugin_code like concat('%',#{name},'%') or p.plugin_version like concat('%',#{name},'%') )</if> + <if test="typeId != null and typeId != ''"> and p.type_id like concat('%',#{typeId},'%')</if> + and p.sts='Y' </trim> - order by sorts asc + order by p.sorts asc </select> </mapper> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/ISysApplicationPluginTypeDao.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/ISysApplicationPluginTypeDao.java new file mode 100644 index 00000000..2578639c --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/ISysApplicationPluginTypeDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.sysnew.application.pluginType.dao; + +import com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * 插件类型表(sys_application_plugin_type: table)表数据库访问层 + * + * @author makejava + * @since 2024-09-19 09:56:24 + */ +public interface ISysApplicationPluginTypeDao extends IBaseDao<SysApplicationPluginTypeEntity, String> { + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/impl/SysApplicationPluginTypeDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/impl/SysApplicationPluginTypeDaoImpl.java new file mode 100644 index 00000000..78e7ac17 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/dao/impl/SysApplicationPluginTypeDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.sysnew.application.pluginType.dao.impl; + +import com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity; +import com.hzya.frame.sysnew.application.pluginType.dao.ISysApplicationPluginTypeDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * 插件类型表(SysApplicationPluginType)表数据库访问层 + * + * @author makejava + * @since 2024-09-19 09:56:24 + */ +@Repository(value = "SysApplicationPluginTypeDaoImpl") +public class SysApplicationPluginTypeDaoImpl extends MybatisGenericDao<SysApplicationPluginTypeEntity, String> implements ISysApplicationPluginTypeDao{ + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.java new file mode 100644 index 00000000..b8362993 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.java @@ -0,0 +1,25 @@ +package com.hzya.frame.sysnew.application.pluginType.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +/** + * 插件类型表(SysApplicationPluginType)实体类 + * + * @author makejava + * @since 2024-09-19 09:56:24 + */ +public class SysApplicationPluginTypeEntity extends BaseEntity { + + /** 插件类型名称 */ + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.xml new file mode 100644 index 00000000..f48b07c9 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/entity/SysApplicationPluginTypeEntity.xml @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.sysnew.application.pluginType.dao.impl.SysApplicationPluginTypeDaoImpl"> + + <resultMap id="get-SysApplicationPluginTypeEntity-result" type="com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="sorts" column="sorts" jdbcType="INTEGER"/> + <result property="org_id" column="org_id" jdbcType="VARCHAR"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + </resultMap> + <!-- 查询的字段--> + <sql id = "SysApplicationPluginTypeEntity_Base_Column_List"> + id + ,name + ,sorts + ,org_id + ,sts + ,create_time + ,create_user_id + ,modify_time + ,modify_user_id + </sql> + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-SysApplicationPluginTypeEntity-result" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity"> + select + <include refid="SysApplicationPluginTypeEntity_Base_Column_List" /> + from sys_application_plugin_type + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="sorts != null"> and sorts = #{sorts} </if> + <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询符合条件的数量 --> +<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity"> + select count(1) from sys_application_plugin_type + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="sorts != null"> and sorts = #{sorts} </if> + <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + <if test="create_time != null"> and create_time = #{create_time} </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> + <if test="modify_time != null"> and modify_time = #{modify_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> + </select> + + <!-- 分页查询列表 采用like格式 --> +<select id="entity_list_like" resultMap="get-SysApplicationPluginTypeEntity-result" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity"> + select + <include refid="SysApplicationPluginTypeEntity_Base_Column_List" /> + from sys_application_plugin_type + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> + <if test="name != null and name != ''"> and name like concat('%',#{name},'%') </if> + <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> + <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> + <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> + <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!-- 查询列表 字段采用or格式 --> +<select id="SysApplicationPluginTypeentity_list_or" resultMap="get-SysApplicationPluginTypeEntity-result" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity"> + select + <include refid="SysApplicationPluginTypeEntity_Base_Column_List" /> + from sys_application_plugin_type + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> or id = #{id} </if> + <if test="appId != null and appId != ''"> or app_id = #{appId} </if> + <if test="name != null and name != ''"> or name = #{name} </if> + <if test="sorts != null"> or sorts = #{sorts} </if> + <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if> + <if test="sts != null and sts != ''"> or sts = #{sts} </if> + <if test="create_time != null"> or create_time = #{create_time} </if> + <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> + <if test="modify_time != null"> or modify_time = #{modify_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if> + and sts='Y' + </trim> + <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +</select> + +<!--新增所有列--> +<insert id="entity_insert" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity" keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_plugin_type( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> id , </if> + <if test="name != null and name != ''"> name , </if> + <if test="sorts != null"> sorts , </if> + <if test="org_id != null and org_id != ''"> org_id , </if> + <if test="sts != null and sts != ''"> sts , </if> + <if test="create_time != null"> create_time , </if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> + <if test="modify_time != null"> modify_time , </if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if> + <if test="sts == null ">sts,</if> + </trim> + )values( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id != ''"> #{id} ,</if> + <if test="name != null and name != ''"> #{name} ,</if> + <if test="sorts != null"> #{sorts} ,</if> + <if test="org_id != null and org_id != ''"> #{org_id} ,</if> + <if test="sts != null and sts != ''"> #{sts} ,</if> + <if test="create_time != null"> #{create_time} ,</if> + <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> + <if test="modify_time != null"> #{modify_time} ,</if> + <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if> + <if test="sts == null ">'Y',</if> + </trim> + ) +</insert> +<!-- 批量新增 --> +<insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_plugin_type(app_id, name, org_id, sts, create_time, create_user_id, modify_time, modify_user_id, sts) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.appId},#{entity.name},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}, 'Y') + </foreach> +</insert> +<!-- 批量新增或者修改--> +<insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> + insert into sys_application_plugin_type(app_id, name, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) + values + <foreach collection="entities" item="entity" separator=","> + (#{entity.appId},#{entity.name},#{entity.org_id},#{entity.sts},#{entity.create_time},#{entity.create_user_id},#{entity.modify_time},#{entity.modify_user_id}) + </foreach> + on duplicate key update + app_id = values(app_id), + name = values(name), + org_id = values(org_id), + sts = values(sts), + create_time = values(create_time), + create_user_id = values(create_user_id), + modify_time = values(modify_time), + modify_user_id = values(modify_user_id)</insert> +<!--通过主键修改方法--> +<update id="entity_update" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity" > +update sys_application_plugin_type set +<trim suffix="" suffixOverrides=","> + <if test="name != null and name != ''"> name = #{name},</if> + <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> + <if test="sts != null and sts != ''"> sts = #{sts},</if> + <if test="create_time != null"> create_time = #{create_time},</if> + <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> + <if test="modify_time != null"> modify_time = #{modify_time},</if> + <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if> + </trim> +where id = #{id} +</update> +<!-- 逻辑删除 --> +<update id="entity_logicDelete" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity" > +update sys_application_plugin_type set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} +</update> +<!-- 多条件逻辑删除 --> +<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity" > +update sys_application_plugin_type set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''"> and id = #{id} </if> + <if test="name != null and name != ''"> and name = #{name} </if> + <if test="sorts != null"> and sorts = #{sorts} </if> + <if test="sts != null and sts != ''"> and sts = #{sts} </if> + and sts='Y' + </trim> +</update> +<!--通过主键删除--> +<delete id="entity_delete"> + delete from sys_application_plugin_type where id = #{id} +</delete> + +</mapper> + diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/ISysApplicationPluginTypeService.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/ISysApplicationPluginTypeService.java new file mode 100644 index 00000000..dfee99d3 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/ISysApplicationPluginTypeService.java @@ -0,0 +1,22 @@ +package com.hzya.frame.sysnew.application.pluginType.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 插件类型表(SysApplicationPluginType)表服务接口 + * + * @author makejava + * @since 2024-09-19 09:56:24 + */ +public interface ISysApplicationPluginTypeService extends IBaseService<SysApplicationPluginTypeEntity, String>{ + JsonResultEntity queryPluginType(JSONObject jsonObject); + + JsonResultEntity savePluginType(JSONObject jsonObject); + + JsonResultEntity updatePluginType(JSONObject jsonObject); + + JsonResultEntity deletePluginType(JSONObject jsonObject); +} diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/impl/SysApplicationPluginTypeServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/impl/SysApplicationPluginTypeServiceImpl.java new file mode 100644 index 00000000..d6c00bc1 --- /dev/null +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/pluginType/service/impl/SysApplicationPluginTypeServiceImpl.java @@ -0,0 +1,106 @@ +package com.hzya.frame.sysnew.application.pluginType.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.plugin.dao.ISysApplicationPluginDao; +import com.hzya.frame.sysnew.application.plugin.entity.SysApplicationPluginEntity; +import com.hzya.frame.sysnew.application.pluginType.entity.SysApplicationPluginTypeEntity; +import com.hzya.frame.sysnew.application.pluginType.dao.ISysApplicationPluginTypeDao; +import com.hzya.frame.sysnew.application.pluginType.service.ISysApplicationPluginTypeService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 插件类型表(SysApplicationPluginType)表服务实现类 + * + * @author makejava + * @since 2024-09-19 09:56:24 + */ +@Service(value = "sysApplicationPluginTypeService") +public class SysApplicationPluginTypeServiceImpl extends BaseService<SysApplicationPluginTypeEntity, String> implements ISysApplicationPluginTypeService { + + private ISysApplicationPluginTypeDao sysApplicationPluginTypeDao; + + @Resource + private ISysApplicationPluginDao sysApplicationPluginDao; + + @Autowired + public void setSysApplicationPluginTypeDao(ISysApplicationPluginTypeDao dao) { + this.sysApplicationPluginTypeDao = dao; + this.dao = dao; + } + + @Override + public JsonResultEntity queryPluginType(JSONObject jsonObject){ + SysApplicationPluginTypeEntity entity = getData("jsonStr", jsonObject, SysApplicationPluginTypeEntity.class); + if(entity == null){ + entity = new SysApplicationPluginTypeEntity(); + } + List<SysApplicationPluginTypeEntity> list = sysApplicationPluginTypeDao.queryByLike(entity); + return BaseResult.getSuccessMessageEntity("查询数据成功",list); + } + + @Override + public JsonResultEntity savePluginType(JSONObject jsonObject) { + SysApplicationPluginTypeEntity entity = getData("jsonStr", jsonObject, SysApplicationPluginTypeEntity.class); + if(entity == null){ + return BaseResult.getFailureMessageEntity("参数错误"); + } + if(entity.getName() == null || "".equals(entity.getName())){ + return BaseResult.getFailureMessageEntity("插件类型名称不能为空"); + } + entity.setCreate(); + sysApplicationPluginTypeDao.save(entity); + return BaseResult.getSuccessMessageEntity("保存数据成功",entity); + } + + @Override + public JsonResultEntity updatePluginType(JSONObject jsonObject) { + SysApplicationPluginTypeEntity entity = getData("jsonStr", jsonObject, SysApplicationPluginTypeEntity.class); + if(entity == null){ + return BaseResult.getFailureMessageEntity("参数错误"); + } + if(entity.getId() == null || "".equals(entity.getId())){ + return BaseResult.getFailureMessageEntity("ID不能为空"); + } + if(entity.getName() == null || "".equals(entity.getName())){ + return BaseResult.getFailureMessageEntity("插件类型名称不能为空"); + } + entity.setUpdate(); + sysApplicationPluginTypeDao.update(entity); + return BaseResult.getSuccessMessageEntity("更新数据成功",entity); + } + + @Transactional + @Override + public JsonResultEntity deletePluginType(JSONObject jsonObject) { + SysApplicationPluginTypeEntity entity = getData("jsonStr", jsonObject, SysApplicationPluginTypeEntity.class); + if(entity == null){ + return BaseResult.getFailureMessageEntity("参数错误"); + } + if(entity.getId() == null || "".equals(entity.getId())){ + return BaseResult.getFailureMessageEntity("ID不能为空"); + } + // 同步删除匹配插件中的插件类型,将其赋值为null + SysApplicationPluginEntity pluginEntity = new SysApplicationPluginEntity(); + pluginEntity.setTypeId(entity.getId()); + List<SysApplicationPluginEntity> pluginList = sysApplicationPluginDao.queryBase(pluginEntity); + for(SysApplicationPluginEntity plugin : pluginList){ + plugin.setTypeId("无"); + plugin.setUpdate(); + sysApplicationPluginDao.update(plugin); + } + entity.setUpdate(); + sysApplicationPluginTypeDao.logicRemove(entity); + return BaseResult.getSuccessMessageEntity("删除数据成功"); + } + + +} diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java index 25ec9090..363f69c4 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java @@ -3,6 +3,7 @@ package com.hzya.frame.sysnew.application.service; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; import com.hzya.frame.sysnew.messageManageLog.entity.SysMessageManageLogEntity; import com.hzya.frame.web.entity.JsonResultEntity; @@ -308,6 +309,7 @@ public interface ISysApplicationService extends IBaseService<SysApplicationEntit JsonResultEntity enableOrDisableAppDatasource(JSONObject jsonObject); JsonResultEntity externalCallInterface(ServletRequest servletRequest, ServletResponse servletResponse); + JsonResultEntity externalCallInterfacefileUpload(ServletRequest servletRequest, ServletResponse servletResponse); JsonResultEntity externalCallInterfaceResend(SysMessageManageLogEntity resendLogEntity); @@ -432,4 +434,8 @@ public interface ISysApplicationService extends IBaseService<SysApplicationEntit * @return com.hzya.frame.web.entity.JsonResultEntity **/ JsonResultEntity externalCallInterfaceToESB(ServletRequest servletRequest, ServletResponse servletResponse); + + SysExtensionApiEntity setDDtoken(SysExtensionApiEntity sysExtensionApiEntity); + SysExtensionApiEntity setDDUserId(SysExtensionApiEntity sysExtensionApiEntity); + } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java index b6ad01cd..5afcadef 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java @@ -55,23 +55,36 @@ import com.hzya.frame.web.action.ApplicationContextUtil; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.conn.ssl.TrustAllStrategy; import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.task.TaskExecutor; +import org.springframework.http.client.MultipartBodyBuilder; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.annotation.Resource; +import javax.net.ssl.SSLContext; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import java.io.File; import java.io.IOException; import java.lang.reflect.Method; import java.nio.file.Files; @@ -125,7 +138,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, @Resource private ApplicationCache applicationCache; - @Value("${savefile.tomcatpath}") + @Value("${savefile.tomcatpath:}") public String TOMCATPATH; //多线程请求加锁 HttpRequest 构造方法是静态的 private final Object lock = new Object(); @@ -705,6 +718,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, sysApplicationEntity.setSts("Y"); sysApplicationEntity.setModify_user_id(StpUtil.getLoginIdAsString()); sysApplicationEntity.setModify_time(new Date()); + sysApplicationEntity.setNifiAppId(entity.getNifiAppId()); sysApplicationDao.update(sysApplicationEntity); applicationCache.reloadData("1"); return sysApplicationEntity; @@ -1687,7 +1701,6 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, @Override @DSTransactional() public JsonResultEntity externalCallInterface(ServletRequest servletRequest, ServletResponse servletResponse) { - //例如:A应用发送数据到中台,中台转发到B应用 HttpServletRequest request = (HttpServletRequest) servletRequest; String oldbodys = ServletUtil.getBody(servletRequest); @@ -1881,9 +1894,28 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, if ("POST".equals(method)) { + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient - CloseableHttpClient closeableHttpClient = httpClientBuilder.disableCookieManagement().build(); + //CloseableHttpClient closeableHttpClient = httpClientBuilder.disableCookieManagement().build(); + // 创建一个 CloseableHttpClient 并配置 SSL 上下文和主机名验证器 + // 创建一个信任所有证书的 SSLContext + SSLContext sslContext = null; + try { + sslContext = new SSLContextBuilder() + .loadTrustMaterial(null, TrustAllStrategy.INSTANCE) + .build(); + } catch (Exception e) { + + } + CloseableHttpClient closeableHttpClient = HttpClients.custom() + .setSSLContext(sslContext) + .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) + .build(); + + //HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + // HttpClient + //CloseableHttpClient closeableHttpClient = httpClientBuilder.disableCookieManagement().build(); HttpPost post = new HttpPost(url.toString()); CloseableHttpResponse response = null; @@ -1954,17 +1986,29 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ return BaseResult.getSuccessMessageEntity("转发成功", jsonObject); }else { - return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), jsonObject); + }else { + return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + } } } else { if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ return BaseResult.getSuccessMessageEntity("转发成功", body); }else { - return BaseResult.getFailureMessageEntity("转发失败", body); + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } } } } else { - return BaseResult.getFailureMessageEntity("转发失败", body); + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } } } else {//GET @@ -1986,6 +2030,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, boolean flag = true; try { + response = closeableHttpClient.execute(get); HttpEntity entity = response.getEntity(); synchronized (lock) { @@ -2035,13 +2080,407 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ return BaseResult.getSuccessMessageEntity("转发成功", jsonObject); }else { - return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), jsonObject); + }else { + return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + } } } else { if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ return BaseResult.getSuccessMessageEntity("转发成功", body); }else { - return BaseResult.getFailureMessageEntity("转发失败", body); + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } + } + } + } else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } + } + } + + /** + * @param servletRequest + * @param servletResponse + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Author lvleigang + * @Description 外部系统调用接口 + * @Date 4:21 下午 2023/10/19 + **/ + @Override + @DSTransactional() + public JsonResultEntity externalCallInterfacefileUpload(ServletRequest servletRequest, ServletResponse servletResponse) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) servletRequest; + // 获取普通表单参数 + HttpServletRequest request = (HttpServletRequest) servletRequest; + Map<String, String> oldheaderMap = ServletUtil.getHeaderMap(request); + //应用key + String publicKey = request.getHeader("publicKey"); + //应用密钥 + String secretKey = request.getHeader("secretKey"); + //appId + String appId = request.getHeader("appId"); + //apiCode + String apiCode = request.getHeader("apiCode"); + + Enumeration<String> bodyname = multipartRequest.getParameterNames(); + JSONObject bodysss = new JSONObject(); + if (bodyname.hasMoreElements()) { + while (bodyname.hasMoreElements()) { + String headerName = bodyname.nextElement(); + String headerValue = multipartRequest.getParameter(headerName); + bodysss.put( headerName,headerValue); + } + } + String oldquerys = multipartRequest.getQueryString(); + String oldbodys = bodysss.toJSONString(); + Iterator<String> filenemes = multipartRequest.getFileNames(); + Map<String, List<MultipartFile>> files = new HashMap<>(); + + if (filenemes.hasNext()) { + filenemes.forEachRemaining(element -> files.put(element,multipartRequest.getFiles(element))); + } + + String ip = IPHelper.getIpAddr(multipartRequest); + if (publicKey == null || "".equals(publicKey)) { + return BaseResult.getFailureMessageEntity("请先传递公钥"); + } + if (secretKey == null || "".equals(secretKey)) { + return BaseResult.getFailureMessageEntity("请先传递密钥"); + } + if (appId == null || "".equals(appId)) { + return BaseResult.getFailureMessageEntity("请先传递接收方应用"); + } + if (apiCode == null || "".equals(apiCode)) { + return BaseResult.getFailureMessageEntity("请先传递发送接口"); + } + + logger.info("请求参数:publicKey:【" + publicKey + "】secretKey:【" + secretKey + "】appId:【" + appId + "】apiCode:【" + apiCode); + //根据请求a应用的公钥、密钥是否能查找到一条数据 + + SysApplicationEntity sendApp = getAppByPublicKeySecretKey(publicKey, secretKey); + if (sendApp == null) { + return BaseResult.getFailureMessageEntity("公钥、密钥错误,请联系管理员"); + } + //判断应用是否启用 + if (sendApp.getAppStatus() == null || !"1".equals(sendApp.getAppStatus())) { + saveLog(sendApp, new SysApplicationEntity(), new SysApplicationApiEntity(), oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,sendApp.getName() + "应用未启用"); + return BaseResult.getFailureMessageEntity(sendApp.getName() + "应用未启用,请联系管理员"); + } + + + SysApplicationEntity receiveApp = getAppByAppId(appId); + if (receiveApp == null) { + saveLog(sendApp, new SysApplicationEntity(), new SysApplicationApiEntity(), oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,"根据appId:" + appId + "未匹配到应用"); + return BaseResult.getFailureMessageEntity("根据appId:" + appId + "未匹配到应用,请联系管理员"); + } + //判断应用是否启用 + if (receiveApp.getAppStatus() == null || !"1".equals(receiveApp.getAppStatus())) { + saveLog(sendApp, receiveApp, new SysApplicationApiEntity(), oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApp.getName() + "应用未启用" ); + return BaseResult.getFailureMessageEntity(receiveApp.getName() + "应用未启用,请联系管理员"); + } + //判断应用接口是否启用 + if (receiveApp.getInterfaceStatus() == null || !"1".equals(receiveApp.getInterfaceStatus())) { + saveLog(sendApp, receiveApp, new SysApplicationApiEntity(), oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApp.getName() + "应用接口环境未启用" ); + return BaseResult.getFailureMessageEntity(receiveApp.getName() + "应用接口环境未启用,请联系管理员"); + } + + SysApplicationApiEntity receiveApi = getApiByAppIdApiCode(receiveApp.getId(), apiCode); + if (receiveApi == null) { + saveLog(sendApp, receiveApp, new SysApplicationApiEntity(), oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApp.getName() + ":" + apiCode + "未启用或者未创建" ); + return BaseResult.getFailureMessageEntity(receiveApp.getName() + ":" + apiCode + "未启用或者未创建"); + } + + SysApplicationApiAuthEntity sysApplicationApiAuthEntity = getApiAuthByNameAppId(sendApp.getId(), receiveApp.getId()); + if (sysApplicationApiAuthEntity == null) { + saveLog(sendApp, receiveApp, receiveApi, oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApp.getName() + "应用权限配置错误" ); + return BaseResult.getFailureMessageEntity(receiveApp.getName() + "应用权限配置错误"); + } + if (sysApplicationApiAuthEntity.getSystemAddress() != null && !"".equals(sysApplicationApiAuthEntity.getSystemAddress()) + && !sysApplicationApiAuthEntity.getSystemAddress().contains(ip)) { + saveLog(sendApp, receiveApp, receiveApi, oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApp.getName() + "发送应用" + receiveApp.getName() + "的ip白名单配置错误" ); + return BaseResult.getFailureMessageEntity(receiveApp.getName() + "发送应用" + receiveApp.getName() + "的ip白名单配置错误"); + } + + SysApplicationApiAuthDetailEntity sysApplicationApiAuthDetailEntity = getApiAuthDetailByAppIdApiIdTripartiteSystemId(receiveApp.getId(), receiveApi.getId(), sysApplicationApiAuthEntity.getId()); + if (sysApplicationApiAuthDetailEntity == null) { + saveLog(sendApp, receiveApp, receiveApi, oldbodys, null, oldheaderMap, null, null, oldquerys, null, null, false,receiveApi.getApiName() + "未授权给" + sendApp.getName() ); + return BaseResult.getFailureMessageEntity(receiveApi.getApiName() + "未授权给" + sendApp.getName() + ",请联系管理员"); + } + SysExtensionApiEntity sysExtensionApiEntity = new SysExtensionApiEntity(); + + + List<String> a = Arrays.asList(new String[]{"apicode", "appid", "secretkey", "publickey", "x-forwarded-for", "cookie", "x-forwarded-proto", "x-real-ip", "content-length", "accept-language", "host", "content-type", "connection", "cache-control", "accept-encoding", "pragma", "accept", "user-agent"}); + Map<String, String> headers = new HashMap<>(); + if (receiveApi.getHeaderIn() != null && !"".equals(receiveApi.getHeaderIn())) { + JSONArray jsonArray = JSONArray.parseArray(receiveApi.getHeaderIn()); + if (jsonArray != null && jsonArray.size() > 0) { + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject object1 = jsonArray.getJSONObject(i); + headers.put(object1.getString("parameterName"), object1.getString("example")); + } + } + } + if (oldheaderMap != null && oldheaderMap.size() > 0) { + for (Map.Entry<String, String> entry : oldheaderMap.entrySet()) { + if (!a.contains(entry.getKey())) { + headers.put(entry.getKey(), entry.getValue()); + } + } + } + + + + sysExtensionApiEntity.setSendApp(sendApp); + sysExtensionApiEntity.setReceiveApp(receiveApp); + sysExtensionApiEntity.setReceiveApi(receiveApi); + sysExtensionApiEntity.setHeaders(headers); + sysExtensionApiEntity.setQuerys(oldquerys); + sysExtensionApiEntity.setBodys(oldbodys); + Method[] methods = null; + Object object = null; + + + + + // 判断是否有内部api 是否扩展api 1、启用 2、停用 + if (receiveApi.getExtensionApi() != null && "1".equals(receiveApi.getExtensionApi()) + && receiveApi.getBeanName() != null && !"".equals(receiveApi.getBeanName()) + && receiveApi.getFunName() != null && !"".equals(receiveApi.getFunName()) + ) { + //获取类 + try { + object = ApplicationContextUtil.getBeanByName(receiveApi.getBeanName()); + } catch (SecurityException e) { + + } + //获取类下面的方法 + methods = object.getClass().getMethods(); + if (methods == null || methods.length == 0) { + return BaseResult.getFailureMessageEntity("未找到内部方法,请联系管理员"); + } + for (Method m : methods) { + if (null != m) { + if (m.getName().equals(receiveApi.getFunName().trim())) { + try { + logger.info("invoke开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + sysExtensionApiEntity = (SysExtensionApiEntity) m.invoke(object, sysExtensionApiEntity); + logger.info("invoke结束>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + break; + } catch (Exception e) { + logger.error("invokeException{}", e.getMessage()); + return BaseResult.getFailureMessageEntity("内部方法执行错误,请联系管理员"); + } + } + } + } + + } + headers = sysExtensionApiEntity.getHeaders(); + String querys = sysExtensionApiEntity.getQuerys(); + String bodys = sysExtensionApiEntity.getBodys(); + //设置参数获取参数 + StringBuffer url = new StringBuffer(); + if(!receiveApi.getDestinationAddress().toLowerCase().startsWith("http")){ + url.append(receiveApp.getInterfaceAddress()); + } + url.append(receiveApi.getDestinationAddress()); + if (querys != null) { + url.append("?"); + url.append(querys); + } + Integer outTime = 6000; + if (receiveApi.getTimeoutPeriod() != null && !"".equals(receiveApi.getTimeoutPeriod())) { + outTime = Integer.valueOf(receiveApi.getTimeoutPeriod()); + } + //1、POST 2、GET + String method = "POST"; + if ("2".equals(receiveApi.getRequestMethod())) { + method = "GET"; + } + + if ("POST".equals(method)) { + StringBuilder body = new StringBuilder(); + boolean flag = true; + + try { + HttpPost httpPost = new HttpPost(url.toString()); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + if(!files.isEmpty()){ + for (Map.Entry<String, List<MultipartFile>> entry : files.entrySet()) { + String key = entry.getKey(); + List<MultipartFile> multipartFile = entry.getValue(); + if(multipartFile != null && multipartFile.size() > 0){ + for (int i = 0; i < multipartFile.size(); i++) { + File file = new File(multipartFile.get(i).getOriginalFilename()); + Files.write(Paths.get(file.getAbsolutePath()), multipartFile.get(i).getBytes()); + builder.addBinaryBody(key, file, ContentType.APPLICATION_OCTET_STREAM, file.getName()); + } + } + } + } + if (headers != null && headers.size() > 0) { + for (String key : headers.keySet()) { + httpPost.setHeader(key, headers.get(key)); + } + } + //if (bodys != null && !"".equals(bodys)) { + // builder.addTextBody("fileFlag", "true", ContentType.TEXT_PLAIN); + // builder.addTextBody("businessType", "application", ContentType.TEXT_PLAIN); + //} + HttpEntity entity = builder.build(); + httpPost.setEntity(entity); + + HttpResponse response = null; + response = HttpClientBuilder.create().build().execute(httpPost); + + HttpEntity entity1 = response.getEntity(); + synchronized (lock) { + body.append(EntityUtils.toString(entity1,"UTF-8")); + } + flag = true; + logger.info("返回结果:" + body); + } catch (Exception e) { + logger.error("请求错误:" + e.getMessage()); + body.append(e.getMessage()); + flag = false; + } + logger.info("保存日志开始"); + SysMessageManageLogEntity sysMessageManageLogEntity = saveLog(sendApp, receiveApp, receiveApi, oldbodys,bodys, oldheaderMap,headers, headers, oldquerys,querys, body.toString(),true,null); + if (methods != null && methods.length > 0) { + for (Method m : methods) { + if (null != m) { + if (m.getName().equals(receiveApi.getFunName().trim()+"CallBack")) { + try { + logger.info("invoke开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + m.invoke(object, sysMessageManageLogEntity); + logger.info("invoke结束>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + } catch (Exception e) { + logger.error("invokeException{}", e.getMessage()); + } + } + } + } + } + logger.info("保存日志结束"); + if (flag) { + if (JSONUtil.isTypeJSON(body.toString())) { + JSONObject jsonObject = JSONObject.parseObject(body.toString()); + if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ + return BaseResult.getSuccessMessageEntity("转发成功", jsonObject); + }else { + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), jsonObject); + }else { + return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + } + } + } else { + if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ + return BaseResult.getSuccessMessageEntity("转发成功", body); + }else { + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } + } + } + } else { + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } + } + } else {//GET + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + // HttpClient + CloseableHttpClient closeableHttpClient = httpClientBuilder.disableCookieManagement().build(); + HttpGet get = new HttpGet(url.toString()); + CloseableHttpResponse response = null; + + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(outTime).build(); + get.setConfig(requestConfig);//设置请求参数【超时时间】 + if (headers != null && headers.size() > 0) { + for (String key : headers.keySet()) { + get.setHeader(key, headers.get(key)); + } + } + StringBuilder body = new StringBuilder(); + + boolean flag = true; + try { + + response = closeableHttpClient.execute(get); + HttpEntity entity = response.getEntity(); + synchronized (lock) { + body.append(EntityUtils.toString(entity,"UTF-8")); + } + flag = true; + logger.info("返回结果:" + body); + } catch (Exception e) { + logger.error("请求错误:" + e.getMessage()); + body.append(e.getMessage()); + flag = false; + } finally { + try { + // 关闭响应对象 + if (response != null) { + response.close(); + } + // 关闭响应对象 + if (closeableHttpClient != null) { + closeableHttpClient.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + logger.info("保存日志开始"); + SysMessageManageLogEntity sysMessageManageLogEntity = saveLog(sendApp, receiveApp, receiveApi, oldbodys,bodys, oldheaderMap,headers, headers, oldquerys,querys, body.toString(), true,null); + if (methods != null && methods.length > 0) { + for (Method m : methods) { + if (null != m) { + if (m.getName().equals(receiveApi.getFunName().trim()+"CallBack")) { + try { + logger.info("invoke开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + m.invoke(object, sysMessageManageLogEntity); + logger.info("invoke结束>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + } catch (Exception e) { + logger.error("invokeException{}", e.getMessage()); + } + } + } + } + } + logger.info("保存日志结束"); + if (flag) { + if (JSONUtil.isTypeJSON(body.toString())) { + JSONObject jsonObject = JSONObject.parseObject(body.toString()); + if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ + return BaseResult.getSuccessMessageEntity("转发成功", jsonObject); + }else { + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), jsonObject); + }else { + return BaseResult.getFailureMessageEntity("转发失败", jsonObject); + } + } + } else { + if(sysMessageManageLogEntity.getStatus() != null && "3".equals(sysMessageManageLogEntity.getStatus())){ + return BaseResult.getSuccessMessageEntity("转发成功", body); + }else { + if(sysMessageManageLogEntity.getReturnMsg()!= null&& !"".equals(sysMessageManageLogEntity.getReturnMsg())){ + return BaseResult.getFailureMessageEntity("转发失败:"+sysMessageManageLogEntity.getReturnMsg(), body); + }else { + return BaseResult.getFailureMessageEntity("转发失败", body); + } } } } else { @@ -2598,6 +3037,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, sysMessageManageLogEntity.setStatus("4");//返回信息 if (receiveApi.getReturnMsg() != null && !"".equals(receiveApi.getReturnMsg())) { String returnMsg = cheackdatas.getString(receiveApi.getReturnMsg()); + sysMessageManageLogEntity.setReturnMsg(returnMsg);//返回信息 sysMessageManageLogEntity.setRemark("接口调用失败,返回值错误,返回信息如下:" + returnMsg);//返回信息 } else { sysMessageManageLogEntity.setRemark("接口调用失败,返回值错误");//返回信息 @@ -2608,6 +3048,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, sysMessageManageLogEntity.setStatus("4");//返回信息 if (receiveApi.getReturnMsg() != null && !"".equals(receiveApi.getReturnMsg())) { String returnMsg = cheackdatas.getString(receiveApi.getReturnMsg()); + sysMessageManageLogEntity.setReturnMsg(returnMsg);//返回信息 sysMessageManageLogEntity.setRemark("接口调用失败,返回值错误,返回信息如下:" + returnMsg);//返回信息 } else { sysMessageManageLogEntity.setRemark("接口调用失败,返回值错误");//返回信息 @@ -2624,6 +3065,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, if (JSONUtil.isTypeJSON(body)) { JSONObject cheackdatas = JSONObject.parseObject(body); String checkdata = cheackdatas.getString(receiveApi.getReturnMsg()); + sysMessageManageLogEntity.setReturnMsg(checkdata);//返回信息 sysMessageManageLogEntity.setRemark("接口调用失败,api返回信息字段未配置,返回信息如下:" + checkdata);//返回信息 } else { sysMessageManageLogEntity.setRemark("接口调用失败,返回格式错误,不是JSON");//返回信息 @@ -2649,7 +3091,7 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, sysPushMessageEntity.setReceiveApiCode(receiveApi.getApiCode()); sysPushMessageEntity.setReturnData(sysMessageManageLogEntity.getReturnData()); sysPushMessageEntity.setStatus(sysMessageManageLogEntity.getStatus()); - //taskExecutor.execute(() -> sendMssage(sysPushMessageEntity)); + taskExecutor.execute(() -> sendMssage(sysPushMessageEntity)); return sysMessageManageLogEntity; } @@ -3478,4 +3920,39 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity, } } } + + @Override + public SysExtensionApiEntity setDDtoken(SysExtensionApiEntity sysExtensionApiEntity) { + SysApplicationApiEntity sysApplicationApiEntity = sysExtensionApiEntity.getReceiveApi(); + StringBuilder stringBuilder = new StringBuilder(); + + if (sysApplicationApiEntity.getQueryIn() != null && !"".equals(sysApplicationApiEntity.getQueryIn())) { + JSONArray jsonArray = JSONArray.parseArray(sysApplicationApiEntity.getQueryIn()); + if (jsonArray != null && jsonArray.size() > 0) { + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject object1 = jsonArray.getJSONObject(i); + if(i > 0){ + stringBuilder.append("&"); + } + stringBuilder.append(object1.getString("parameterName")).append("=").append(object1.getString("example")); + } + } + } + sysExtensionApiEntity.setQuerys(stringBuilder.toString()); + return sysExtensionApiEntity; + } + + @Override + public SysExtensionApiEntity setDDUserId(SysExtensionApiEntity sysExtensionApiEntity) { + String bodys = sysExtensionApiEntity.getBodys(); + StringBuilder stringBuilder = new StringBuilder(); + JSONObject jsonObject = JSONObject.parseObject(bodys); + stringBuilder.append("userid=").append(jsonObject.getString("userid")); + stringBuilder.append("&"); + stringBuilder.append("access_token=").append(jsonObject.getString("access_token")); + sysExtensionApiEntity.setQuerys(stringBuilder.toString()); + return sysExtensionApiEntity; + } + + } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTask/service/impl/SysIntegratedForegroundTaskServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTask/service/impl/SysIntegratedForegroundTaskServiceImpl.java index 7ca8544c..5a9fa93e 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTask/service/impl/SysIntegratedForegroundTaskServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTask/service/impl/SysIntegratedForegroundTaskServiceImpl.java @@ -106,17 +106,24 @@ public class SysIntegratedForegroundTaskServiceImpl extends BaseService<SysInteg sysIntegratedForegroundTaskParameterEntity.setFormmainId(entity.getId()); sysIntegratedForegroundTaskParameterEntity.setInParameter(jsonObject.toJSONString()); sysIntegratedForegroundTaskParameterEntity.setCreate(); + sysIntegratedForegroundTaskParameterEntity.setStatus("1"); sysIntegratedForegroundTaskParameterDao.save(sysIntegratedForegroundTaskParameterEntity); PluginBaseEntity pluginBaseEntity = PluginUtils.getPluginsById(entity.getPlugId()); if(pluginBaseEntity != null ){ taskExecutor.execute(() -> { try { pluginBaseEntity.executeBusiness(jsonObject); + sysIntegratedForegroundTaskParameterEntity.setStatus("2"); + sysIntegratedForegroundTaskParameterEntity.setModify_time(new Date()); + sysIntegratedForegroundTaskParameterDao.update(sysIntegratedForegroundTaskParameterEntity); } catch (Exception e) { logger.error("插件:"+entity.getPlugId()+"执行失败:"+e.getMessage()); } }); }else { + sysIntegratedForegroundTaskParameterEntity.setStatus("2"); + sysIntegratedForegroundTaskParameterEntity.setModify_time(new Date()); + sysIntegratedForegroundTaskParameterDao.update(sysIntegratedForegroundTaskParameterEntity); return BaseResult.getSuccessMessageEntity("提交成功,当前任务执行失败,请联系系统管理员"); } return BaseResult.getSuccessMessageEntity("提交成功,执行结果请去查看任务日志"); @@ -171,17 +178,25 @@ public class SysIntegratedForegroundTaskServiceImpl extends BaseService<SysInteg sysIntegratedForegroundTaskParameterEntity.setFormmainId(entity.getId()); sysIntegratedForegroundTaskParameterEntity.setInParameter(jsonObject.toJSONString()); sysIntegratedForegroundTaskParameterEntity.setCreate(); + sysIntegratedForegroundTaskParameterEntity.setStatus("1"); + sysIntegratedForegroundTaskParameterDao.save(sysIntegratedForegroundTaskParameterEntity); PluginBaseEntity pluginBaseEntity = PluginUtils.getPluginsById(entity.getPlugId()); if(pluginBaseEntity != null ){ taskExecutor.execute(() -> { try { pluginBaseEntity.executeBusiness(jsonObject); + sysIntegratedForegroundTaskParameterEntity.setStatus("2"); + sysIntegratedForegroundTaskParameterEntity.setModify_time(new Date()); + sysIntegratedForegroundTaskParameterDao.update(sysIntegratedForegroundTaskParameterEntity); } catch (Exception e) { logger.error("插件:"+entity.getPlugId()+"执行失败:"+e.getMessage()); } }); }else { + sysIntegratedForegroundTaskParameterEntity.setStatus("2"); + sysIntegratedForegroundTaskParameterEntity.setModify_time(new Date()); + sysIntegratedForegroundTaskParameterDao.update(sysIntegratedForegroundTaskParameterEntity); return BaseResult.getSuccessMessageEntity("提交成功,当前任务执行失败,请联系系统管理员"); } return BaseResult.getSuccessMessageEntity("提交成功,执行结果请去查看任务日志"); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.java index 3ae60fda..f4907e2b 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.java @@ -20,7 +20,8 @@ public class SysIntegratedForegroundTaskParameterEntity extends BaseEntity { private String inParameter; /** 备注 */ private String remark; - + /** 任务状态 1、执行中 2、执行完成 */ + private String status; public String getFormmainId() { return formmainId; @@ -53,5 +54,13 @@ public class SysIntegratedForegroundTaskParameterEntity extends BaseEntity { this.setCreate_time(new Date()); this.setModify_time(new Date()); } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.xml index 4421e1d0..fc6a59bf 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/integratedForegroundTaskParameter/entity/SysIntegratedForegroundTaskParameterEntity.xml @@ -7,7 +7,9 @@ <result property="formmainId" column="formmain_id" jdbcType="VARCHAR"/> <result property="inParameter" column="in_parameter" jdbcType="VARCHAR"/> <result property="remark" column="remark" jdbcType="VARCHAR"/> - <result property="sorts" column="sorts" jdbcType="INTEGER"/> + <result property="status" column="status" jdbcType="VARCHAR"/> + + <result property="sorts" column="sorts" jdbcType="INTEGER"/> <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> @@ -21,7 +23,8 @@ ,formmain_id ,in_parameter ,remark - ,sorts + ,status + ,sorts ,create_user_id ,create_time ,modify_user_id @@ -39,6 +42,7 @@ <if test="formmainId != null and formmainId != ''"> and formmain_id = #{formmainId} </if> <if test="inParameter != null and inParameter != ''"> and in_parameter = #{inParameter} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> + <if test="status != null and status != ''"> and status = #{status} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> <if test="create_time != null"> and create_time = #{create_time} </if> @@ -60,6 +64,7 @@ <if test="formmainId != null and formmainId != ''"> and formmain_id = #{formmainId} </if> <if test="inParameter != null and inParameter != ''"> and in_parameter = #{inParameter} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> + <if test="status != null and status != ''"> and status = #{status} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> <if test="create_time != null"> and create_time = #{create_time} </if> @@ -83,6 +88,7 @@ <if test="formmainId != null and formmainId != ''"> and formmain_id like concat('%',#{formmainId},'%') </if> <if test="inParameter != null and inParameter != ''"> and in_parameter like concat('%',#{inParameter},'%') </if> <if test="remark != null and remark != ''"> and remark like concat('%',#{remark},'%') </if> + <if test="status != null and status != ''"> and status like concat('%',#{status},'%') </if> <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> @@ -106,6 +112,7 @@ <if test="formmainId != null and formmainId != ''"> or formmain_id = #{formmainId} </if> <if test="inParameter != null and inParameter != ''"> or in_parameter = #{inParameter} </if> <if test="remark != null and remark != ''"> or remark = #{remark} </if> + <if test="status != null and status != ''"> or status = #{status} </if> <if test="sorts != null"> or sorts = #{sorts} </if> <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if> <if test="create_time != null"> or create_time = #{create_time} </if> @@ -127,6 +134,7 @@ <if test="formmainId != null and formmainId != ''"> formmain_id , </if> <if test="inParameter != null and inParameter != ''"> in_parameter , </if> <if test="remark != null and remark != ''"> remark , </if> + <if test="status != null and status != ''"> status , </if> <if test="sorts != null"> sorts , </if> <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if> <if test="create_time != null"> create_time , </if> @@ -142,6 +150,7 @@ <if test="formmainId != null and formmainId != ''"> #{formmainId} ,</if> <if test="inParameter != null and inParameter != ''"> #{inParameter} ,</if> <if test="remark != null and remark != ''"> #{remark} ,</if> + <if test="status != null and status != ''"> #{status} ,</if> <if test="sorts != null"> #{sorts} ,</if> <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if> <if test="create_time != null"> #{create_time} ,</if> @@ -155,23 +164,24 @@ </insert> <!-- 批量新增 --> <insert id="entityInsertBatch" > - insert into sys_integrated_foreground_task_parameter(formmain_id, in_parameter, remark, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, sts) + insert into sys_integrated_foreground_task_parameter(formmain_id, in_parameter, remark, status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, sts) values <foreach collection="entities" item="entity" separator=","> - (#{entity.formmainId},#{entity.inParameter},#{entity.remark},#{entity.sorts},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id}, 'Y') + (#{entity.formmainId},#{entity.inParameter},#{entity.remark},#{entity.status},#{entity.sorts},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id}, 'Y') </foreach> </insert> <!-- 批量新增或者修改--> <insert id="entityInsertOrUpdateBatch" > - insert into sys_integrated_foreground_task_parameter(formmain_id, in_parameter, remark, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) + insert into sys_integrated_foreground_task_parameter(formmain_id, in_parameter, remark,status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) values <foreach collection="entities" item="entity" separator=","> - (#{entity.formmainId},#{entity.inParameter},#{entity.remark},#{entity.sorts},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id}) + (#{entity.formmainId},#{entity.inParameter},#{entity.remark},#{entity.status},#{entity.sorts},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id}) </foreach> on duplicate key update formmain_id = values(formmain_id), in_parameter = values(in_parameter), remark = values(remark), + status = values(status), sorts = values(sorts), create_user_id = values(create_user_id), create_time = values(create_time), @@ -186,6 +196,7 @@ update sys_integrated_foreground_task_parameter set <if test="formmainId != null and formmainId != ''"> formmain_id = #{formmainId},</if> <if test="inParameter != null and inParameter != ''"> in_parameter = #{inParameter},</if> <if test="remark != null and remark != ''"> remark = #{remark},</if> + <if test="status != null and status != ''"> status = #{status},</if> <if test="sorts != null"> sorts = #{sorts},</if> <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if> <if test="create_time != null"> create_time = #{create_time},</if> @@ -209,6 +220,7 @@ update sys_integrated_foreground_task_parameter set sts= 'N' ,modify_time = #{m <if test="formmainId != null and formmainId != ''"> and formmain_id = #{formmainId} </if> <if test="inParameter != null and inParameter != ''"> and in_parameter = #{inParameter} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> + <if test="status != null and status != ''"> and status = #{status} </if> <if test="sorts != null"> and sorts = #{sorts} </if> <if test="sts != null and sts != ''"> and sts = #{sts} </if> and sts='Y' @@ -226,6 +238,7 @@ update sys_integrated_foreground_task_parameter set sts= 'N' ,modify_time = #{m ,a.formmain_id ,a.in_parameter ,a.remark + ,a.status ,a.sorts ,p.person_name as create_user_id ,a.create_time @@ -241,6 +254,7 @@ update sys_integrated_foreground_task_parameter set sts= 'N' ,modify_time = #{m <if test="formmainId != null and formmainId != ''"> and a.formmain_id = #{formmainId} </if> <if test="inParameter != null and inParameter != ''"> and a.in_parameter = #{inParameter} </if> <if test="remark != null and remark != ''"> and a.remark = #{remark} </if> + <if test="status != null and status != ''"> and a.status = #{status} </if> <if test="sorts != null"> and a.sorts = #{sorts} </if> <if test="create_user_id != null and create_user_id != ''"> and a.create_user_id = #{create_user_id} </if> <if test="create_time != null"> and a.create_time = #{create_time} </if> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/login/ILoginService.java b/base-service/src/main/java/com/hzya/frame/sysnew/login/ILoginService.java index 90f9bfa0..69b63c81 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/login/ILoginService.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/login/ILoginService.java @@ -15,4 +15,13 @@ public interface ILoginService { * @throws Exception */ JsonResultEntity doLogin(JSONObject jsonObject)throws Exception; +/**** + * 移动端登录 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2024-09-14 10:51 + * @param + * @return com.hzya.frame.web.entity.JsonResultEntity + **/ + JsonResultEntity appDoLogin(JSONObject jsonObject) ; } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/login/impl/LoginServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/login/impl/LoginServiceImpl.java index 3b0bf5be..211a2be2 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/login/impl/LoginServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/login/impl/LoginServiceImpl.java @@ -2,7 +2,18 @@ package com.hzya.frame.sysnew.login.impl; import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiGettokenRequest; +import com.dingtalk.api.request.OapiV2UserGetRequest; +import com.dingtalk.api.request.OapiV2UserGetuserinfoRequest; +import com.dingtalk.api.response.OapiGettokenResponse; +import com.dingtalk.api.response.OapiV2UserGetResponse; +import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse; import com.hzya.frame.sysnew.application.dao.ISysApplicationDao; import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; import com.hzya.frame.sysnew.login.ILoginService; @@ -21,11 +32,16 @@ import com.hzya.frame.sysnew.userRoles.entity.SysUserRolesEntity; import com.hzya.frame.util.AESUtil; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; +import com.hzya.frame.web.exception.BaseSystemException; import org.checkerframework.checker.units.qual.C; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; /** @@ -35,6 +51,7 @@ import java.util.List; **/ @Service(value = "loginService") public class LoginServiceImpl implements ILoginService { + private final Logger logger = LoggerFactory.getLogger(LoginServiceImpl.class); @Resource private ISysUserDao sysUserDao; @@ -42,7 +59,8 @@ public class LoginServiceImpl implements ILoginService { private ISysPersonDao sysPersonDao; @Resource private ISysOrganDao sysOrganDao; - + @Value("${zt.url}") + private String url ; @Resource private ISysApplicationDao sysApplicationDao; @Resource @@ -67,7 +85,10 @@ public class LoginServiceImpl implements ILoginService { return BaseResult.getFailureMessageEntity("请输入用户名或密码"); } entity.setPassword(AESUtil.encrypt(entity.getLoginCode() + "-" + entity.getPassword())); - SysUserEntity sysUserEntity = sysUserDao.queryOne(entity); + SysUserEntity sysUserEntity = new SysUserEntity(); + sysUserEntity.setLoginCode(entity.getLoginCode()); + sysUserEntity.setPassword(entity.getPassword()); + sysUserEntity = sysUserDao.queryOne(sysUserEntity); if (sysUserEntity == null || sysUserEntity.getId() == null || "".equals(sysUserEntity.getId())) { return BaseResult.getFailureMessageEntity("用户名或密码错误"); } @@ -113,6 +134,14 @@ public class LoginServiceImpl implements ILoginService { //} //登录 StpUtil.login(sysUserEntity.getId()); + //修改ddid或者修改微信id + if((entity.getDdUserId() != null && !"".equals(entity.getDdUserId())) + || (entity.getWxUserId() != null && !"".equals(entity.getWxUserId())) ){ + sysUserEntity.setDdUserId(entity.getDdUserId()); + sysUserEntity.setWxUserId(entity.getWxUserId()); + sysUserDao.update(sysUserEntity); + } + //获取token SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); String token = tokenInfo.getTokenValue(); @@ -122,7 +151,7 @@ public class LoginServiceImpl implements ILoginService { List<SysOrganEntity> sysOrganEntities = sysOrganDao.queryUserCompany(sysOrganEntity); //返回值 JSONObject res = new JSONObject(); - res.put("token", token); + res.put("zt-token", token); res.put("userInfo", sysUserEntity); res.put("company", sysOrganEntities); @@ -131,6 +160,160 @@ public class LoginServiceImpl implements ILoginService { return BaseResult.getSuccessMessageEntity("登录成功", res); } + /**** + * 移动端登录地址 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2024-09-14 11:14 + * @param + * @return com.hzya.frame.web.entity.JsonResultEntity + **/ + @Override + public JsonResultEntity appDoLogin(JSONObject jsonObject) { + //移动端类型 + JSONObject entity = getData("jsonStr", jsonObject, JSONObject.class); + logger.error(entity.toString()); + //boolean f = true; + //if(f){ + // return BaseResult.getFailureMessageEntity("cuowu",entity); + //} + //DD,weChat + String appType = entity.getString("appType"); + String appId = entity.getString("appId"); + String apiCode = entity.getString("apiCode"); + String userApiCode = entity.getString("userApiCode"); + SysUserEntity userEntity = new SysUserEntity(); + switch (appType){ + case "DD": + String code = entity.getString("code");//授权码 + String requestType = entity.getString("UserAgent");// pc端还是移动端 + JSONObject bodyParams = new JSONObject(); + bodyParams.put("code",code); + String result = HttpRequest.post(url). + header("appId",appId). + header("apiCode",userApiCode). + header("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj"). + header("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). + body(bodyParams.toJSONString()). + execute(). + body(); + JSONObject resultJson = JSONObject.parseObject(result); + boolean flag = resultJson.getBoolean("flag"); + if(!flag){ + return BaseResult.getFailureMessageEntity("请求错误:"+resultJson.getString("msg")); + } + String userid = resultJson.getJSONObject("attribute").getJSONObject("result").getString("userid"); + if(StrUtil.isEmpty(userid)){ + return BaseResult.getFailureMessageEntity("认证失败!获取钉钉userid错误","1006"); + } + userEntity.setDdUserId( userid); + userEntity = sysUserDao.queryOne(userEntity); + if(null == userEntity ){ + JSONObject object = new JSONObject(); + object.put("userid",userid); + return BaseResult.getFailureMessageEntity("认证失败!当前用户未绑定钉钉","1005",object); + } + break; + case "weChat": + String authCode = entity.getString("code");//授权码 + JSONObject params = new JSONObject(); + params.put("code",authCode); + params.put("corpid",entity.getString("corpid")); + params.put("corpsecret",entity.getString("corpsecret")); + params.put("access_token",entity.getString("access_token")); + String res = HttpRequest.post(url). + header("appId",appId). + header("apiCode",userApiCode). + header("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj"). + header("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). + body(params.toJSONString()). + execute(). + body(); + JSONObject resJsonObject = JSONObject.parseObject(res); + JSONObject attribute = resJsonObject.getJSONObject("attribute"); + String attributeCode = attribute.getString("code"); + String attributeMsg = attribute.getString("msg"); + if(!"200".equals(attributeCode)){ + return BaseResult.getFailureMessageEntity("请求错误:"+attributeMsg); + } + String weComUserid = attribute.getString("data"); + userEntity.setWxUserId(weComUserid); + userEntity = sysUserDao.queryOne(userEntity); + if(null == userEntity ){ + JSONObject object = new JSONObject(); + object.put("userid",weComUserid); + return BaseResult.getFailureMessageEntity("认证失败!当前用户未绑定企业微信","1005",object); + } + break; + default: + return BaseResult.getFailureMessageEntity("错误的App类型:"+appType+" 支持的app类型有:DD,weChat"); + + } + //登录 + StpUtil.login(userEntity.getId()); + //获取token + SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); + String token = tokenInfo.getTokenValue(); + //获取公司 + SysOrganEntity sysOrganEntity = new SysOrganEntity(); + sysOrganEntity.setUserId(userEntity.getId()); + List<SysOrganEntity> sysOrganEntities = sysOrganDao.queryUserCompany(sysOrganEntity); + //返回值 + JSONObject res = new JSONObject(); + res.put("token", token); + res.put("userInfo", userEntity); + res.put("company", sysOrganEntities); + //切换数据源查询 + + return BaseResult.getSuccessMessageEntity("登录成功", res); + + //校验当前登陆人是否有权限 + //boolean flag = false; + //SysInterfaceEntity sysInterfaceEntity = (SysInterfaceEntity) interfaceCache.get("6","beanNameloginServiceinterfacNamedoLogin"); + //if(sysInterfaceEntity == null || sysInterfaceEntity.getId() == null){ + // return BaseResult.getFailureMessageEntity("用户无访问权限,请联系管理员"); + //} + ////查询用户权限 + //if(!flag){ + // SysPopedomInterfaceEntity userPopedomInterfaceEntity = (SysPopedomInterfaceEntity) interfaceCache.get("4","userId"+sysUserEntity.getId()+"interfaceId"+sysInterfaceEntity.getId()); + // if(userPopedomInterfaceEntity != null && userPopedomInterfaceEntity.getId() != null ){ + // flag = true; + // } + //} + ////查询用户角色的权限 + //if(!flag){ + // List<SysUserRolesEntity> userRoleMap = (List<SysUserRolesEntity>) interfaceCache.get("3",null); + // if(userRoleMap != null && userRoleMap.size() > 0){ + // for (SysUserRolesEntity sysUserRolesEntity : userRoleMap) { + // if(sysUserRolesEntity.getUserId().equals(sysUserEntity.getId())){ + // SysPopedomInterfaceEntity sysPopedomInterfaceEntity = (SysPopedomInterfaceEntity) interfaceCache.get("5","roleId"+sysUserRolesEntity.getRoleId()+"interfaceId"+sysInterfaceEntity.getId()); + // if(sysPopedomInterfaceEntity != null && sysPopedomInterfaceEntity.getId() != null ){ + // flag = true; + // break; + // } + // } + // } + // } + //} + //if(!flag){ + // return BaseResult.getFailureMessageEntity("用户无访问权限,请联系管理员"); + //} + + } + + private JSONObject getAccess_token(String appId,String apiCode) { + String result = HttpRequest.post(url). + header("appId",appId). + header("apiCode",apiCode). + header("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj"). + header("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). + execute(). + body(); + JSONObject resultJson = JSONObject.parseObject(result); + return resultJson; + } + + protected <T> T getData(String key, JSONObject jsonObject, Class<T> clz) { if (checkStr(jsonObject.getString(key))) { return jsonObject.getJSONObject(key).toJavaObject(clz); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.java index c6218dc0..191aa706 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.java @@ -21,7 +21,9 @@ public class SysMessageManageLogEntity extends BaseEntity { private String messageCode; /** 发送者应用 */ private String sendApp; - /** 发送者 */ + private String sendAppName; + + /** 发送者 */ private String sendApi; /** 接收者编码 */ private String receiveCode; @@ -39,6 +41,7 @@ public class SysMessageManageLogEntity extends BaseEntity { private String status; /** 备注 */ private String remark; + private String returnMsg; /** 返回解析类型 */ private String returnType; /** 失败状态(1、需要重新发送 2、不需要重新发送) */ @@ -196,5 +199,21 @@ public class SysMessageManageLogEntity extends BaseEntity { public void setCreateTimeEnd(Date createTimeEnd) { this.createTimeEnd = createTimeEnd; } + + public String getSendAppName() { + return sendAppName; + } + + public void setSendAppName(String sendAppName) { + this.sendAppName = sendAppName; + } + + public String getReturnMsg() { + return returnMsg; + } + + public void setReturnMsg(String returnMsg) { + this.returnMsg = returnMsg; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.xml index 5c02e0bb..990d106a 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/entity/SysMessageManageLogEntity.xml @@ -566,7 +566,8 @@ where id = #{id} a.status AS status, a.remark AS remark, a.create_time AS createTime, - a.modify_time AS modifyTime + a.modify_time AS modifyTime, + receiveApi.api_name AS receiveApiName FROM <choose> <when test=" status != null and status.trim() != '' and status == 3"> @@ -577,6 +578,7 @@ where id = #{id} </otherwise> </choose> LEFT JOIN sys_application sendApp ON a.send_app = sendApp.id AND sendApp.sts = 'Y' + LEFT JOIN sys_application_api receiveApi ON a.receive_code = receiveApi.api_code AND receiveApi.sts = 'Y' <trim prefix="where" prefixOverrides="and"> <if test="ids != null and ids.size>0"> AND a.id in diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/service/impl/SysMessageManageLogServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/service/impl/SysMessageManageLogServiceImpl.java index e8fbb850..2813a75e 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/service/impl/SysMessageManageLogServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageManageLog/service/impl/SysMessageManageLogServiceImpl.java @@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.sysnew.application.dao.ISysApplicationDao; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; import com.hzya.frame.sysnew.messageManageLogBack.detail.server.ISysMessageManageLogDetailBackService; import com.hzya.frame.sysnew.messageManageLogBack.service.ISysMessageManageLogBackService; import com.hzya.frame.sysnew.messageManageLogDetail.dao.ISysMessageManageLogDetailDao; @@ -41,7 +43,8 @@ public class SysMessageManageLogServiceImpl extends BaseService<SysMessageManage private ISysMessageManageLogDao sysMessageManageLogDao; @Resource private IEsbService esbService; - + @Resource + private ISysApplicationDao sysApplicationDao; @Resource private ISysMessageManageLogBackService sysMessageManageLogBackService; @Resource @@ -222,6 +225,14 @@ public class SysMessageManageLogServiceImpl extends BaseService<SysMessageManage } entity = sysMessageManageLogDao.queryOne(entity); if (entity != null && entity.getId() != null) { + if(entity.getSendApp()!= null){ + SysApplicationEntity sysApplicationEntity = new SysApplicationEntity(); + sysApplicationEntity.setId(entity.getSendApp()); + sysApplicationEntity = sysApplicationDao.queryOne(sysApplicationEntity); + if(sysApplicationEntity!= null && sysApplicationEntity.getName() != null){ + entity.setSendAppName(sysApplicationEntity.getName()); + } + } return BaseResult.getSuccessMessageEntity("查询数据成功", entity); } else { return BaseResult.getFailureMessageEntity("未查询到数据"); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.java index 5cda5ede..5a1ba2a6 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.java @@ -12,8 +12,6 @@ public class SysMessageTemplateEntity extends BaseEntity { /** 公司id */ private String companyId; - /** 调用单据类型 */ - private String billKindId; /** 模版类型 */ private String templateType; /** 模版名称 */ @@ -26,14 +24,8 @@ public class SysMessageTemplateEntity extends BaseEntity { private String btns; /** 数据源 */ private String dataSource; - /** 创建时间 */ - private Date createDate; - /** 创建人 */ - private String createPersonId; - /** 状态 */ + /** 状态 0:停用 1:启用 */ private String state; - /** 删除标志 */ - private Integer isdelete; public String getCompanyId() { @@ -44,14 +36,6 @@ public class SysMessageTemplateEntity extends BaseEntity { this.companyId = companyId; } - public String getBillKindId() { - return billKindId; - } - - public void setBillKindId(String billKindId) { - this.billKindId = billKindId; - } - public String getTemplateType() { return templateType; } @@ -99,23 +83,6 @@ public class SysMessageTemplateEntity extends BaseEntity { public void setDataSource(String dataSource) { this.dataSource = dataSource; } - - public Date getCreateDate() { - return createDate; - } - - public void setCreateDate(Date createDate) { - this.createDate = createDate; - } - - public String getCreatePersonId() { - return createPersonId; - } - - public void setCreatePersonId(String createPersonId) { - this.createPersonId = createPersonId; - } - public String getState() { return state; } @@ -123,14 +90,5 @@ public class SysMessageTemplateEntity extends BaseEntity { public void setState(String state) { this.state = state; } - - public Integer getIsdelete() { - return isdelete; - } - - public void setIsdelete(Integer isdelete) { - this.isdelete = isdelete; - } - } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.xml index 80002b16..e1cf60d5 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/entity/SysMessageTemplateEntity.xml @@ -12,17 +12,13 @@ <result property="sts" column="sts" jdbcType="VARCHAR"/> <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="companyId" column="company_id" jdbcType="VARCHAR"/> - <result property="billKindId" column="bill_kind_id" jdbcType="VARCHAR"/> <result property="templateType" column="template_type" jdbcType="VARCHAR"/> <result property="templateName" column="template_name" jdbcType="VARCHAR"/> <result property="messageTitle" column="message_title" jdbcType="VARCHAR"/> <result property="messageContents" column="message_contents" jdbcType="VARCHAR"/> <result property="btns" column="btns" jdbcType="VARCHAR"/> <result property="dataSource" column="data_source" jdbcType="VARCHAR"/> - <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/> - <result property="createPersonId" column="create_person_id" jdbcType="VARCHAR"/> <result property="state" column="state" jdbcType="VARCHAR"/> - <result property="isdelete" column="isdelete" jdbcType="INTEGER"/> </resultMap> <!-- 查询的字段--> <sql id = "SysMessageTemplateEntity_Base_Column_List"> @@ -34,18 +30,14 @@ ,modify_time ,sts ,org_id - ,company_id - ,bill_kind_id + ,company_id ,template_type ,template_name ,message_title ,message_contents ,btns - ,data_source - ,create_date - ,create_person_id - ,state - ,isdelete + ,data_source + ,state </sql> <!--通过ID获取数据 --> @@ -70,17 +62,13 @@ <if test="sts != null and sts != ''"> and sts = #{sts} </if> <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> - <if test="billKindId != null and billKindId != ''"> and bill_kind_id = #{billKindId} </if> <if test="templateType != null and templateType != ''"> and template_type = #{templateType} </if> <if test="templateName != null and templateName != ''"> and template_name = #{templateName} </if> <if test="messageTitle != null and messageTitle != ''"> and message_title = #{messageTitle} </if> <if test="messageContents != null and messageContents != ''"> and message_contents = #{messageContents} </if> <if test="btns != null and btns != ''"> and btns = #{btns} </if> <if test="dataSource != null and dataSource != ''"> and data_source = #{dataSource} </if> - <if test="createDate != null"> and create_date = #{createDate} </if> - <if test="createPersonId != null and createPersonId != ''"> and create_person_id = #{createPersonId} </if> <if test="state != null and state != ''"> and state = #{state} </if> - <if test="isdelete != null"> and isdelete = #{isdelete} </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -100,15 +88,12 @@ <if test="sts != null and sts != ''"> and sts = #{sts} </if> <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> - <if test="billKindId != null and billKindId != ''"> and bill_kind_id = #{billKindId} </if> <if test="templateType != null and templateType != ''"> and template_type = #{templateType} </if> <if test="templateName != null and templateName != ''"> and template_name = #{templateName} </if> <if test="messageTitle != null and messageTitle != ''"> and message_title = #{messageTitle} </if> <if test="messageContents != null and messageContents != ''"> and message_contents = #{messageContents} </if> <if test="btns != null and btns != ''"> and btns = #{btns} </if> <if test="dataSource != null and dataSource != ''"> and data_source = #{dataSource} </if> - <if test="createDate != null"> and create_date = #{createDate} </if> - <if test="createPersonId != null and createPersonId != ''"> and create_person_id = #{createPersonId} </if> <if test="state != null and state != ''"> and state = #{state} </if> <if test="isdelete != null"> and isdelete = #{isdelete} </if> and sts='Y' @@ -132,17 +117,13 @@ <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if> - <if test="billKindId != null and billKindId != ''"> and bill_kind_id like concat('%',#{billKindId},'%') </if> <if test="templateType != null and templateType != ''"> and template_type like concat('%',#{templateType},'%') </if> <if test="templateName != null and templateName != ''"> and template_name like concat('%',#{templateName},'%') </if> <if test="messageTitle != null and messageTitle != ''"> and message_title like concat('%',#{messageTitle},'%') </if> <if test="messageContents != null and messageContents != ''"> and message_contents like concat('%',#{messageContents},'%') </if> <if test="btns != null and btns != ''"> and btns like concat('%',#{btns},'%') </if> <if test="dataSource != null and dataSource != ''"> and data_source like concat('%',#{dataSource},'%') </if> - <if test="createDate != null"> and create_date like concat('%',#{createDate},'%') </if> - <if test="createPersonId != null and createPersonId != ''"> and create_person_id like concat('%',#{createPersonId},'%') </if> <if test="state != null and state != ''"> and state like concat('%',#{state},'%') </if> - <if test="isdelete != null"> and isdelete like concat('%',#{isdelete},'%') </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -164,15 +145,12 @@ <if test="sts != null and sts != ''"> or sts = #{sts} </if> <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if> - <if test="billKindId != null and billKindId != ''"> or bill_kind_id = #{billKindId} </if> <if test="templateType != null and templateType != ''"> or template_type = #{templateType} </if> <if test="templateName != null and templateName != ''"> or template_name = #{templateName} </if> <if test="messageTitle != null and messageTitle != ''"> or message_title = #{messageTitle} </if> <if test="messageContents != null and messageContents != ''"> or message_contents = #{messageContents} </if> <if test="btns != null and btns != ''"> or btns = #{btns} </if> <if test="dataSource != null and dataSource != ''"> or data_source = #{dataSource} </if> - <if test="createDate != null"> or create_date = #{createDate} </if> - <if test="createPersonId != null and createPersonId != ''"> or create_person_id = #{createPersonId} </if> <if test="state != null and state != ''"> or state = #{state} </if> <if test="isdelete != null"> or isdelete = #{isdelete} </if> and sts='Y' @@ -194,17 +172,13 @@ <if test="sts != null and sts != ''"> sts , </if> <if test="org_id != null and org_id != ''"> org_id , </if> <if test="companyId != null and companyId != ''"> company_id , </if> - <if test="billKindId != null and billKindId != ''"> bill_kind_id , </if> <if test="templateType != null and templateType != ''"> template_type , </if> <if test="templateName != null and templateName != ''"> template_name , </if> <if test="messageTitle != null and messageTitle != ''"> message_title , </if> <if test="messageContents != null and messageContents != ''"> message_contents , </if> <if test="btns != null and btns != ''"> btns , </if> <if test="dataSource != null and dataSource != ''"> data_source , </if> - <if test="createDate != null"> create_date , </if> - <if test="createPersonId != null and createPersonId != ''"> create_person_id , </if> <if test="state != null and state != ''"> state , </if> - <if test="isdelete != null"> isdelete , </if> <if test="sts == null ">sts,</if> </trim> )values( @@ -218,17 +192,13 @@ <if test="sts != null and sts != ''"> #{sts} ,</if> <if test="org_id != null and org_id != ''"> #{org_id} ,</if> <if test="companyId != null and companyId != ''"> #{companyId} ,</if> - <if test="billKindId != null and billKindId != ''"> #{billKindId} ,</if> <if test="templateType != null and templateType != ''"> #{templateType} ,</if> <if test="templateName != null and templateName != ''"> #{templateName} ,</if> <if test="messageTitle != null and messageTitle != ''"> #{messageTitle} ,</if> <if test="messageContents != null and messageContents != ''"> #{messageContents} ,</if> <if test="btns != null and btns != ''"> #{btns} ,</if> <if test="dataSource != null and dataSource != ''"> #{dataSource} ,</if> - <if test="createDate != null"> #{createDate} ,</if> - <if test="createPersonId != null and createPersonId != ''"> #{createPersonId} ,</if> <if test="state != null and state !=''"> #{state} ,</if> - <if test="isdelete != null"> #{isdelete} ,</if> <if test="sts == null ">'Y',</if> </trim> ) @@ -278,17 +248,13 @@ update sys_message_template set <if test="sts != null and sts != ''"> sts = #{sts},</if> <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if> - <if test="billKindId != null and billKindId != ''"> bill_kind_id = #{billKindId},</if> <if test="templateType != null and templateType != ''"> template_type = #{templateType},</if> <if test="templateName != null and templateName != ''"> template_name = #{templateName},</if> <if test="messageTitle != null and messageTitle != ''"> message_title = #{messageTitle},</if> <if test="messageContents != null and messageContents != ''"> message_contents = #{messageContents},</if> <if test="btns != null and btns != ''"> btns = #{btns},</if> <if test="dataSource != null and dataSource != ''"> data_source = #{dataSource},</if> - <if test="createDate != null"> create_date = #{createDate},</if> - <if test="createPersonId != null and createPersonId != ''"> create_person_id = #{createPersonId},</if> <if test="state != null and state !=''"> state = #{state},</if> - <if test="isdelete != null"> isdelete = #{isdelete},</if> </trim> where id = #{id} </update> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/service/impl/SysMessageTemplateServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/service/impl/SysMessageTemplateServiceImpl.java index 7f4db12a..6930fd2c 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/service/impl/SysMessageTemplateServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/messageTemplate/service/impl/SysMessageTemplateServiceImpl.java @@ -9,11 +9,15 @@ import com.hzya.frame.sysnew.messageTemplate.dao.ISysMessageTemplateDao; import com.hzya.frame.sysnew.messageTemplate.service.ISysMessageTemplateService; import com.hzya.frame.sysnew.person.dao.ISysPersonDao; import com.hzya.frame.sysnew.user.entity.SysUserEntity; +import com.hzya.frame.sysnew.warningConfig.dao.ISysWarningConfigDao; +import com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; + import javax.annotation.Resource; + import com.hzya.frame.basedao.service.impl.BaseService; import java.sql.*; @@ -28,178 +32,178 @@ import java.util.List; */ @Service(value = "sysMessageTemplateService") public class SysMessageTemplateServiceImpl extends BaseService<SysMessageTemplateEntity, String> implements ISysMessageTemplateService { - + private ISysMessageTemplateDao sysMessageTemplateDao; - @Resource - public IExecSqlService execSqlService; - + @Resource + private ISysWarningConfigDao sysWarningConfigDao; + + @Resource + public IExecSqlService execSqlService; + @Autowired - public void setSysMessageTemplateDao(ISysMessageTemplateDao dao) { - this.sysMessageTemplateDao = dao; - this.dao = dao; - } + public void setSysMessageTemplateDao(ISysMessageTemplateDao dao) { + this.sysMessageTemplateDao = dao; + this.dao = dao; + } - @Override - public JsonResultEntity queryEntityPage(JSONObject jsonObject) { - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - //判断分页 - if (entity == null || entity.getPageNum() == null || entity.getPageSize() == null) { - return BaseResult.getFailureMessageEntity("分页查询参数不存在"); - } - PageHelper.startPage(entity.getPageNum(), entity.getPageSize()); - List<SysMessageTemplateEntity> list = sysMessageTemplateDao.queryByLike(entity); - PageInfo<SysMessageTemplateEntity> pageInfo = new PageInfo(list); - return BaseResult.getSuccessMessageEntity("查询数据成功", pageInfo); - } + @Override + public JsonResultEntity queryEntityPage(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + //判断分页 + if (entity == null || entity.getPageNum() == null || entity.getPageSize() == null) { + return BaseResult.getFailureMessageEntity("分页查询参数不存在"); + } + PageHelper.startPage(entity.getPageNum(), entity.getPageSize()); + List<SysMessageTemplateEntity> list = sysMessageTemplateDao.queryByLike(entity); + PageInfo<SysMessageTemplateEntity> pageInfo = new PageInfo(list); + return BaseResult.getSuccessMessageEntity("查询数据成功", pageInfo); + } - @Override - public JsonResultEntity queryEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if(entity == null){ - entity = new SysMessageTemplateEntity(); - } - List<SysMessageTemplateEntity> list = sysMessageTemplateDao.queryByLike(entity); - return BaseResult.getSuccessMessageEntity("查询数据成功", list); - } + @Override + public JsonResultEntity queryEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + entity = new SysMessageTemplateEntity(); + } + List<SysMessageTemplateEntity> list = sysMessageTemplateDao.queryByLike(entity); + return BaseResult.getSuccessMessageEntity("查询数据成功", list); + } - @Override - public JsonResultEntity getEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if(entity == null){ - return BaseResult.getFailureMessageEntity("参数不允许为空"); - } - if(entity.getId() == null || "".equals(entity.getId())){ - return BaseResult.getFailureMessageEntity("系统错误"); - } - entity = sysMessageTemplateDao.get(entity.getId()); - if(entity == null){ - return BaseResult.getFailureMessageEntity("获取消息模版失败"); - } - return BaseResult.getSuccessMessageEntity("获取消息模版成功", entity); - } + @Override + public JsonResultEntity getEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + entity = sysMessageTemplateDao.get(entity.getId()); + if (entity == null) { + return BaseResult.getFailureMessageEntity("获取消息模版失败"); + } + return BaseResult.getSuccessMessageEntity("获取消息模版成功", entity); + } - @Override - public JsonResultEntity saveEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if (entity == null) { - return BaseResult.getFailureMessageEntity("参数不允许为空"); - } - if(entity.getBillKindId() == null || "".equals(entity.getBillKindId())){ - return BaseResult.getFailureMessageEntity("调用单据类型不允许为空"); - } - if(entity.getTemplateType() == null || "".equals(entity.getTemplateType())){ - return BaseResult.getFailureMessageEntity("模版类型不允许为空"); - } - if(entity.getTemplateName() == null || "".equals(entity.getTemplateName())){ - return BaseResult.getFailureMessageEntity("模版名称不允许为空"); - } - if(entity.getMessageContents() == null || "".equals(entity.getMessageContents())){ - return BaseResult.getFailureMessageEntity("消息内容不允许为空"); - } - if(entity.getDataSource() == null || "".equals(entity.getDataSource())){ - return BaseResult.getFailureMessageEntity("数据源不允许为空"); - } - if(entity.getCreateDate() == null){ - return BaseResult.getFailureMessageEntity("创建时间不允许为空"); - } - if(entity.getCreatePersonId() == null || "".equals(entity.getCreatePersonId())){ - return BaseResult.getFailureMessageEntity("创建人不允许为空"); - } - entity.setCreate(); - sysMessageTemplateDao.save(entity); - return BaseResult.getSuccessMessageEntity("保存消息模版成功",entity); - } + @Override + public JsonResultEntity saveEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getTemplateType() == null || "".equals(entity.getTemplateType())) { + return BaseResult.getFailureMessageEntity("模版类型不允许为空"); + } + if (entity.getTemplateName() == null || "".equals(entity.getTemplateName())) { + return BaseResult.getFailureMessageEntity("模版名称不允许为空"); + } + if (entity.getMessageContents() == null || "".equals(entity.getMessageContents())) { + return BaseResult.getFailureMessageEntity("消息内容不允许为空"); + } + if (entity.getDataSource() == null || "".equals(entity.getDataSource())) { + return BaseResult.getFailureMessageEntity("数据源不允许为空"); + } + entity.setCreate(); + sysMessageTemplateDao.save(entity); + return BaseResult.getSuccessMessageEntity("保存消息模版成功", entity); + } - @Override - public JsonResultEntity updateEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if(entity == null){ - return BaseResult.getFailureMessageEntity("参数不允许为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - if(entity.getBillKindId() == null || "".equals(entity.getBillKindId())){ - return BaseResult.getFailureMessageEntity("调用单据类型不允许为空"); - } - if(entity.getTemplateType() == null || "".equals(entity.getTemplateType())){ - return BaseResult.getFailureMessageEntity("模版类型不允许为空"); - } - if(entity.getTemplateName() == null || "".equals(entity.getTemplateName())){ - return BaseResult.getFailureMessageEntity("模版名称不允许为空"); - } - if(entity.getMessageContents() == null || "".equals(entity.getMessageContents())){ - return BaseResult.getFailureMessageEntity("消息内容不允许为空"); - } - if(entity.getDataSource() == null || "".equals(entity.getDataSource())){ - return BaseResult.getFailureMessageEntity("数据源不允许为空"); - } - if(entity.getCreateDate() == null){ - return BaseResult.getFailureMessageEntity("创建时间不允许为空"); - } - if(entity.getCreatePersonId() == null || "".equals(entity.getCreatePersonId())){ - return BaseResult.getFailureMessageEntity("创建人不允许为空"); - } - entity.setUpdate(); - sysMessageTemplateDao.update(entity); - return BaseResult.getSuccessMessageEntity("修改消息模版成功",entity); - } + @Override + public JsonResultEntity updateEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + if (entity.getTemplateType() == null || "".equals(entity.getTemplateType())) { + return BaseResult.getFailureMessageEntity("模版类型不允许为空"); + } + if (entity.getTemplateName() == null || "".equals(entity.getTemplateName())) { + return BaseResult.getFailureMessageEntity("模版名称不允许为空"); + } + if (entity.getMessageContents() == null || "".equals(entity.getMessageContents())) { + return BaseResult.getFailureMessageEntity("消息内容不允许为空"); + } + if (entity.getDataSource() == null || "".equals(entity.getDataSource())) { + return BaseResult.getFailureMessageEntity("数据源不允许为空"); + } + entity.setUpdate(); + sysMessageTemplateDao.update(entity); + return BaseResult.getSuccessMessageEntity("修改消息模版成功", entity); + } - @Override - public JsonResultEntity deleteEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if(entity == null){ - return BaseResult.getFailureMessageEntity("参数不允许为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - entity.setUpdate(); - //1、判断这个模版有没有被使用过,使用过就不能删除(待完成) - //将模版id去,预警配置表里查一下,如果有匹配的数据,代表有人正在使用,不能删除 - sysMessageTemplateDao.logicRemove(entity); - return BaseResult.getSuccessMessageEntity("删除消息模版成功"); - } + @Override + public JsonResultEntity deleteEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + //判断这个模版有没有被使用过,使用过就不能删除 + //将模版id去,预警配置表里查一下,如果有匹配的数据,代表有人正在使用,不能删除 + SysWarningConfigEntity warningConfigEntity = new SysWarningConfigEntity(); + warningConfigEntity.setMessageTemplateId(entity.getId()); + int count = sysWarningConfigDao.getCount(warningConfigEntity); + if (count > 0) { + return BaseResult.getFailureMessageEntity("该模版已被使用,不能删除"); + } + entity.setUpdate(); + sysMessageTemplateDao.logicRemove(entity); + return BaseResult.getSuccessMessageEntity("删除消息模版成功"); + } - @Override - public JsonResultEntity enableDisableEntity(JSONObject jsonObject){ - SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); - if(entity == null){ - return BaseResult.getFailureMessageEntity("参数不允许为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - if (entity.getState() == null || "".equals(entity.getState())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - //0启用,1禁用 - if("0".equals(entity.getState())){ - entity.setUpdate(); - sysMessageTemplateDao.update(entity); - return BaseResult.getSuccessMessageEntity("启用模版成功"); - }else{ - //停用消息模版 - entity.setUpdate(); - sysMessageTemplateDao.update(entity); - return BaseResult.getSuccessMessageEntity("停用模版成功"); - } - } + @Override + public JsonResultEntity enableDisableEntity(JSONObject jsonObject) { + SysMessageTemplateEntity entity = getData("jsonStr", jsonObject, SysMessageTemplateEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不允许为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + if (entity.getState() == null || "".equals(entity.getState())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + //0停用,1启用 + if ("0".equals(entity.getState())) { + entity.setUpdate(); + sysMessageTemplateDao.update(entity); + //同步停用到预警配置表 + SysWarningConfigEntity warningConfigEntity = new SysWarningConfigEntity(); + warningConfigEntity.setMessageTemplateId(entity.getId()); + warningConfigEntity.setStatus("1"); + List<SysWarningConfigEntity> warningConfigList = sysWarningConfigDao.queryByLike(warningConfigEntity); + for (SysWarningConfigEntity warningConfig : warningConfigList) { + warningConfig.setStatus("0"); + warningConfig.setUpdate(); + sysWarningConfigDao.update(warningConfig); + } + return BaseResult.getSuccessMessageEntity("停用模版成功"); + } else { + entity.setUpdate(); + sysMessageTemplateDao.update(entity); + return BaseResult.getSuccessMessageEntity("启用模版成功"); + } + } - @Override - public JsonResultEntity checkSql(JSONObject jsonObject) throws Exception { - try { - String sql = JSONObject.parseObject(jsonObject.getString("jsonStr")).getString("sql"); - List<HashMap<String, Object>> result = execSqlService.execSelectSql(sql, "master"); - return BaseResult.getSuccessMessageEntity("SQL检查成功", result); - } catch (Exception e) { - return BaseResult.getFailureMessageEntity("SQL检查失败,原因:" + e.getMessage()); - } - } + @Override + public JsonResultEntity checkSql(JSONObject jsonObject) throws Exception { + try { + String sql = JSONObject.parseObject(jsonObject.getString("jsonStr")).getString("sql"); + List<HashMap<String, Object>> result = execSqlService.execSelectSql(sql, "master"); + return BaseResult.getSuccessMessageEntity("SQL检查成功", result); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("SQL检查失败,原因:" + e.getMessage()); + } + } - @Override - public JsonResultEntity spliceMessage(JSONObject jsonObject){ - return BaseResult.getSuccessMessageEntity("消息拼接成功"); - } + @Override + public JsonResultEntity spliceMessage(JSONObject jsonObject) { + return BaseResult.getSuccessMessageEntity("消息拼接成功"); + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.java index 94eeb61f..9f5ba071 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.java @@ -9,8 +9,6 @@ public class SysPushMessageEntity extends BaseEntity { private Long warningAppCode; /** 预警接口编码 */ private Long warningApiCode; - /** 接收者ID列表*/ - private String recipientIdList; /** 预警应用类型 */ private String warningAppType; /** 发送应用名称 */ @@ -59,14 +57,6 @@ public class SysPushMessageEntity extends BaseEntity { this.receiveApiCode = receiveApiCode; } - public String getRecipientIdList() { - return recipientIdList; - } - - public void setRecipientIdList(String recipientIdList) { - this.recipientIdList = recipientIdList; - } - public String getWarningAppType() { return warningAppType; } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.xml index 0916a33a..547ed5e9 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/entity/SysPushMessageEntity.xml @@ -7,7 +7,6 @@ <result property="warningAppCode" column="warning_app_code" jdbcType="INTEGER"/> <result property="warningApiCode" column="warning_api_code" jdbcType="INTEGER"/> <result property="warningAppType" column="warning_app_type" jdbcType="VARCHAR"/> - <result property="recipientIdList" column="recipient_id_list" jdbcType="VARCHAR"/> <result property="sendAppName" column="send_app_name" jdbcType="VARCHAR"/> <result property="receiveAppName" column="receive_app_name" jdbcType="VARCHAR"/> <result property="receiveApiName" column="receive_api_name" jdbcType="VARCHAR"/> @@ -23,19 +22,20 @@ warning_config.sendAppid AS warning_app_code, warning_config.endApiCode AS warning_api_code, warning_config.app_type AS warning_app_type, - warning_config.recipient_id AS recipient_id_list, log.send_app_name, log.receive_app_name, receive_api_name, log.receive_api_code, log.return_data, - log.STATUS + log.STATUS, + log.create_time FROM v_hzya_sys_warning warning_config - LEFT JOIN v_hzya_sys_send_message_log log ON warning_config.api_code = log.receive_api_code + LEFT JOIN v_hzya_sys_send_message_log log ON warning_config.api_code = log.receive_api_code WHERE log.STATUS = '4' - AND warning_config.push_method = '定时' + AND warning_config.push_method = '定时' + AND log.create_time > DATE_SUB( CURDATE( ), INTERVAL 1 WEEK ) </select> </mapper> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/service/impl/SysPushMessageServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/service/impl/SysPushMessageServiceImpl.java index 28a7028d..c3200814 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/service/impl/SysPushMessageServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/pushMessage/service/impl/SysPushMessageServiceImpl.java @@ -30,4 +30,5 @@ public class SysPushMessageServiceImpl extends BaseService<SysPushMessageEntity, List<SysPushMessageEntity> list = sysPushMessageDao.getAll(); return BaseResult.getSuccessMessageEntity("success"); } + } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.java index 6e88baf2..b425872e 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.java @@ -9,17 +9,20 @@ import com.hzya.frame.web.entity.BaseEntity; * @since 2024-08-30 14:19:30 */ public class SysSendMessageLogEntity extends BaseEntity { - + + + //接收人姓名 + private String recipientsPersonName; + //发送人姓名 + private String sendPersonName; /** 公司id */ private String companyId; - /** 来源业务单据 */ - private String billId; /** 消息类型(1、系统消息、2、单据消息、3、钉钉、4微信、5短信、6、邮件) */ private String type; /** 发送给谁(三方系统userID 钉钉微信、邮箱、手机号) */ - private String sendToUserId; + private String recipientsPersonId; /** 发送给系统内部人员ID */ - private String sendToPersonId; + private String recipientsInteriorId; /** 消息内容 */ private String sendCount; /** 发送时间 */ @@ -32,7 +35,72 @@ public class SysSendMessageLogEntity extends BaseEntity { private Integer state; /** 三方系统消息结果 */ private String resultMessage; + /** 预警接口表id */ + private String warningInterfaceId; + /** 应用id */ + private String appId; + /** 应用名称 */ + private String appName; + /** 消息标题 */ + private String messageTitle; + /** 按钮 */ + private String btns; + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public String getMessageTitle() { + return messageTitle; + } + + public void setMessageTitle(String messageTitle) { + this.messageTitle = messageTitle; + } + + public String getBtns() { + return btns; + } + + public void setBtns(String btns) { + this.btns = btns; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getWarningInterfaceId() { + return warningInterfaceId; + } + + public void setWarningInterfaceId(String warningInterfaceId) { + this.warningInterfaceId = warningInterfaceId; + } + + public String getRecipientsPersonName() { + return recipientsPersonName; + } + + public void setRecipientsPersonName(String recipientsPersonName) { + this.recipientsPersonName = recipientsPersonName; + } + + public String getSendPersonName() { + return sendPersonName; + } + + public void setSendPersonName(String sendPersonName) { + this.sendPersonName = sendPersonName; + } public String getCompanyId() { return companyId; @@ -42,14 +110,6 @@ public class SysSendMessageLogEntity extends BaseEntity { this.companyId = companyId; } - public String getBillId() { - return billId; - } - - public void setBillId(String billId) { - this.billId = billId; - } - public String getType() { return type; } @@ -58,20 +118,20 @@ public class SysSendMessageLogEntity extends BaseEntity { this.type = type; } - public String getSendToUserId() { - return sendToUserId; + public String getRecipientsPersonId() { + return recipientsPersonId; } - public void setSendToUserId(String sendToUserId) { - this.sendToUserId = sendToUserId; + public void setRecipientsPersonId(String recipientsPersonId) { + this.recipientsPersonId = recipientsPersonId; } - public String getSendToPersonId() { - return sendToPersonId; + public String getRecipientsInteriorId() { + return recipientsInteriorId; } - public void setSendToPersonId(String sendToPersonId) { - this.sendToPersonId = sendToPersonId; + public void setRecipientsInteriorId(String recipientsInteriorId) { + this.recipientsInteriorId = recipientsInteriorId; } public String getSendCount() { diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.xml index 144a67e7..01decd67 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/entity/SysSendMessageLogEntity.xml @@ -12,31 +12,24 @@ <result property="sts" column="sts" jdbcType="VARCHAR"/> <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="companyId" column="company_id" jdbcType="VARCHAR"/> - <result property="billId" column="bill_id" jdbcType="VARCHAR"/> <result property="type" column="type" jdbcType="VARCHAR"/> - <result property="sendToUserId" column="send_to_user_id" jdbcType="VARCHAR"/> - <result property="sendToPersonId" column="send_to_person_id" jdbcType="VARCHAR"/> + <result property="recipientsPersonId" column="recipients_person_id" jdbcType="VARCHAR"/> + <result property="recipientsInteriorId" column="recipients_interior_id" jdbcType="VARCHAR"/> <result property="sendCount" column="send_count" jdbcType="VARCHAR"/> <result property="sendDatetime" column="send_datetime" jdbcType="TIMESTAMP"/> <result property="sendPersonId" column="send_person_id" jdbcType="VARCHAR"/> <result property="sourceModelName" column="source_model_name" jdbcType="VARCHAR"/> <result property="state" column="state" jdbcType="INTEGER"/> <result property="resultMessage" column="result_message" jdbcType="VARCHAR"/> + <result property="recipientsPersonName" column="recipients_person_name" jdbcType="VARCHAR"/> + <result property="sendPersonName" column="send_person_name" jdbcType="VARCHAR"/> + <result property="warningInterfaceId" column="warning_interface_id" jdbcType="VARCHAR"/> + <result property="appId" column="app_id" jdbcType="VARCHAR"/> + <result property="messageTitle" column="message_title" jdbcType="VARCHAR"/> + <result property="appName" column="app_name" jdbcType="VARCHAR"/> + <result property="btns" column="btns" jdbcType="VARCHAR"/> </resultMap> - <resultMap id="get-PushMessageEntity-result" type="com.hzya.frame.plugin.pushMessage.entity.PushMessageEntity" > - <result property="pushMessage" column="push_message" jdbcType="VARCHAR"/> - <result property="warningAppCode" column="warning_app_code" jdbcType="VARCHAR"/> - <result property="warningApiCode" column="warning_api_code" jdbcType="VARCHAR"/> - <result property="appType" column="app_type" jdbcType="VARCHAR"/> - <result property="recipientIdList" column="recipient_id_list" jdbcType="VARCHAR"/> - <result property="sendAppName" column="send_app_name" jdbcType="VARCHAR"/> - <result property="receiveAppName" column="receive_app_name" jdbcType="VARCHAR"/> - <result property="receiveApiName" column="receive_api_name" jdbcType="VARCHAR"/> - <result property="receiveApiCode" column="receive_api_code" jdbcType="VARCHAR"/> - <result property="returnData" column="return_data" jdbcType="VARCHAR"/> - <result property="status" column="status" jdbcType="VARCHAR"/> - </resultMap> <!-- 查询的字段--> <sql id = "SysSendMessageLogEntity_Base_Column_List"> id @@ -47,54 +40,69 @@ ,modify_time ,sts ,org_id - ,company_id - ,bill_id + ,company_id ,type - ,send_to_user_id - ,send_to_person_id + ,recipients_person_id + ,recipients_interior_id ,send_count ,send_datetime ,send_person_id ,source_model_name ,state - ,result_message + ,result_message + ,warning_interface_id </sql> <!--通过ID获取数据 --> <select id="entity_get" resultMap="get-SysSendMessageLogEntity-result"> select - <include refid="SysSendMessageLogEntity_Base_Column_List" /> - from sys_send_message_log where id = #{ id } and sts='Y' + log.* + ,p1.person_name as recipients_person_name + ,p2.person_Name as send_person_name + from sys_send_message_log log + LEFT JOIN sys_person p1 ON p1.id = log.recipients_person_id + LEFT JOIN sys_person p2 ON p2.id = log.send_person_id + where log.id = #{ id } and log.sts='Y' and p1.sts='Y' and p2.sts='Y' </select> <!-- 查询 采用==查询 --> <select id="entity_list_base" resultMap="get-SysSendMessageLogEntity-result" parameterType = "com.hzya.frame.sysnew.sendMessageLog.entity.SysSendMessageLogEntity"> select - <include refid="SysSendMessageLogEntity_Base_Column_List" /> - from sys_send_message_log + log.* + ,p1.person_name as recipients_person_name + ,p2.person_Name as send_person_name + ,i.app_id AS app_id + from sys_send_message_log log + LEFT JOIN sys_person p1 ON p1.id = log.recipients_person_id + LEFT JOIN sys_person p2 ON p2.id = log.send_person_id + LEFT JOIN sys_warning_interface i ON i.id = log.warning_interface_id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''"> and id = #{id} </if> - <if test="sorts != null"> and sorts = #{sorts} </if> - <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if> - <if test="create_time != null"> and create_time = #{create_time} </if> - <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if> - <if test="modify_time != null"> and modify_time = #{modify_time} </if> - <if test="sts != null and sts != ''"> and sts = #{sts} </if> - <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> - <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> - <if test="billId != null and billId != ''"> and bill_id = #{billId} </if> - <if test="type != null and type != ''"> and type = #{type} </if> - <if test="sendToUserId != null and sendToUserId != ''"> and send_to_user_id = #{sendToUserId} </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> and send_to_person_id = #{sendToPersonId} </if> - <if test="sendCount != null and sendCount != ''"> and send_count = #{sendCount} </if> - <if test="sendDatetime != null"> and send_datetime = #{sendDatetime} </if> - <if test="sendPersonId != null and sendPersonId != ''"> and send_person_id = #{sendPersonId} </if> - <if test="sourceModelName != null and sourceModelName != ''"> and source_model_name = #{sourceModelName} </if> - <if test="state != null"> and state = #{state} </if> - <if test="resultMessage != null and resultMessage != ''"> and result_message = #{resultMessage} </if> - and sts='Y' + <if test="id != null and id != ''"> and log.id = #{id} </if> + <if test="sorts != null"> and log.sorts = #{sorts} </if> + <if test="create_user_id != null and create_user_id != ''"> and log.create_user_id = #{create_user_id} </if> + <if test="create_time != null"> and log.create_time = #{create_time} </if> + <if test="modify_user_id != null and modify_user_id != ''"> and log.modify_user_id = #{modify_user_id} </if> + <if test="modify_time != null"> and log.modify_time = #{modify_time} </if> + <if test="sts != null and sts != ''"> and log.sts = #{sts} </if> + <if test="org_id != null and org_id != ''"> and log.org_id = #{org_id} </if> + <if test="companyId != null and companyId != ''"> and log.company_id = #{companyId} </if> + <if test="type != null and type != ''"> and log.type = #{type} </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> and log.recipients_person_id = #{recipientsPersonId} </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> and log.recipients_interior_id = #{recipientsInteriorId} </if> + <if test="sendCount != null and sendCount != ''"> and log.send_count = #{sendCount} </if> + <if test="sendDatetime != null"> and log.send_datetime = #{sendDatetime} </if> + <if test="sendPersonId != null and sendPersonId != ''"> and log.send_person_id = #{sendPersonId} </if> + <if test="sourceModelName != null and sourceModelName != ''"> and log.source_model_name = #{sourceModelName} </if> + <if test="state != null"> and log.state = #{state} </if> + <if test="resultMessage != null and resultMessage != ''"> and log.result_message = #{resultMessage} </if> + <if test="appId != null and appId != ''" > and i.app_id = #{appId} </if> + and log.sts='Y' + and p1.sts='Y' + and p2.sts='Y' + and i.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> - <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +<!-- <if test=" sort == null or sort == ''.toString() "> order by log.sorts asc</if>--> +<!-- <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>--> + order by log.send_datetime desc </select> <!-- 查询符合条件的数量 --> @@ -110,10 +118,9 @@ <if test="sts != null and sts != ''"> and sts = #{sts} </if> <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> - <if test="billId != null and billId != ''"> and bill_id = #{billId} </if> <if test="type != null and type != ''"> and type = #{type} </if> - <if test="sendToUserId != null and sendToUserId != ''"> and send_to_user_id = #{sendToUserId} </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> and send_to_person_id = #{sendToPersonId} </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> and recipients_person_id = #{recipientsPersonId} </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> and recipients_interior_id = #{recipientsInteriorId} </if> <if test="sendCount != null and sendCount != ''"> and send_count = #{sendCount} </if> <if test="sendDatetime != null"> and send_datetime = #{sendDatetime} </if> <if test="sendPersonId != null and sendPersonId != ''"> and send_person_id = #{sendPersonId} </if> @@ -128,33 +135,53 @@ <!-- 分页查询列表 采用like格式 --> <select id="entity_list_like" resultMap="get-SysSendMessageLogEntity-result" parameterType = "com.hzya.frame.sysnew.sendMessageLog.entity.SysSendMessageLogEntity"> - select - <include refid="SysSendMessageLogEntity_Base_Column_List" /> - from sys_send_message_log + SELECT + log.*, + p1.person_name AS recipients_person_name, + p2.person_Name AS send_person_name, + i.app_id AS app_id, + app.NAME AS app_name, + template.btns, + template.message_title + FROM + sys_send_message_log log + LEFT JOIN sys_person p1 ON p1.id = log.recipients_person_id + LEFT JOIN sys_person p2 ON p2.id = log.send_person_id + LEFT JOIN sys_warning_interface i ON i.id = log.warning_interface_id + LEFT JOIN sys_application app ON app.id = i.app_id + LEFT JOIN sys_warning_config config ON i.warning_config_id = config.id + LEFT JOIN sys_message_template template ON template.id = config.message_template_id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> - <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> - <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> - <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> - <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> - <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> - <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> - <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> - <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if> - <if test="billId != null and billId != ''"> and bill_id like concat('%',#{billId},'%') </if> - <if test="type != null and type != ''"> and type like concat('%',#{type},'%') </if> - <if test="sendToUserId != null and sendToUserId != ''"> and send_to_user_id like concat('%',#{sendToUserId},'%') </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> and send_to_person_id like concat('%',#{sendToPersonId},'%') </if> - <if test="sendCount != null and sendCount != ''"> and send_count like concat('%',#{sendCount},'%') </if> - <if test="sendDatetime != null"> and send_datetime like concat('%',#{sendDatetime},'%') </if> - <if test="sendPersonId != null and sendPersonId != ''"> and send_person_id like concat('%',#{sendPersonId},'%') </if> - <if test="sourceModelName != null and sourceModelName != ''"> and source_model_name like concat('%',#{sourceModelName},'%') </if> - <if test="state != null"> and state like concat('%',#{state},'%') </if> - <if test="resultMessage != null and resultMessage != ''"> and result_message like concat('%',#{resultMessage},'%') </if> - and sts='Y' + <if test="id != null and id != ''"> and log.id like concat('%',#{id},'%') </if> + <if test="sorts != null"> and log.sorts like concat('%',#{sorts},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and log.create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and log.create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and log.modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and log.modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and log.sts like concat('%',#{sts},'%') </if> + <if test="org_id != null and org_id != ''"> and log.org_id like concat('%',#{org_id},'%') </if> + <if test="companyId != null and companyId != ''"> and log.company_id like concat('%',#{companyId},'%') </if> + <if test="type != null and type != ''"> and log.type like concat('%',#{type},'%') </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> and log.recipients_person_id like concat('%',#{recipientsPersonId},'%') </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> and log.recipients_interior_id like concat('%',#{recipientsInteriorId},'%') </if> + <if test="sendCount != null and sendCount != ''"> and log.send_count like concat('%',#{sendCount},'%') </if> + <if test="sendDatetime != null"> and log.send_datetime like concat('%',DATE (#{sendDatetime}),'%') </if> + <if test="sendPersonId != null and sendPersonId != ''"> and log.send_person_id like concat('%',#{sendPersonId},'%') </if> + <if test="sourceModelName != null and sourceModelName != ''"> and log.source_model_name like concat('%',#{sourceModelName},'%') </if> + <if test="state != null"> and log.state like concat('%',#{state},'%') </if> + <if test="resultMessage != null and resultMessage != ''"> and log.result_message like concat('%',#{resultMessage},'%') </if> + <if test="appId != null and appId != ''">and i.app_id like concat('%',#{appId},'%') </if> + and log.sts='Y' + and i.sts='Y' + and config.sts='Y' + and template.sts='Y' + and p1.sts='Y' + and p2.sts='Y' + and app.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> - <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> +<!-- <if test=" sort == null or sort == ''.toString() "> order by log.sorts asc</if>--> +<!-- <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>--> + order by log.send_datetime desc </select> <!-- 查询列表 字段采用or格式 --> @@ -172,10 +199,9 @@ <if test="sts != null and sts != ''"> or sts = #{sts} </if> <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if> - <if test="billId != null and billId != ''"> or bill_id = #{billId} </if> <if test="type != null and type != ''"> or type = #{type} </if> - <if test="sendToUserId != null and sendToUserId != ''"> or send_to_user_id = #{sendToUserId} </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> or send_to_person_id = #{sendToPersonId} </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> or recipients_person_id = #{recipientsPersonId} </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> or recipients_interior_id = #{recipientsInteriorId} </if> <if test="sendCount != null and sendCount != ''"> or send_count = #{sendCount} </if> <if test="sendDatetime != null"> or send_datetime = #{sendDatetime} </if> <if test="sendPersonId != null and sendPersonId != ''"> or send_person_id = #{sendPersonId} </if> @@ -201,16 +227,16 @@ <if test="sts != null and sts != ''"> sts , </if> <if test="org_id != null and org_id != ''"> org_id , </if> <if test="companyId != null and companyId != ''"> company_id , </if> - <if test="billId != null and billId != ''"> bill_id , </if> <if test="type != null and type != ''"> type , </if> - <if test="sendToUserId != null and sendToUserId != ''"> send_to_user_id , </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> send_to_person_id , </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> recipients_person_id , </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> recipients_interior_id , </if> <if test="sendCount != null and sendCount != ''"> send_count , </if> <if test="sendDatetime != null"> send_datetime , </if> <if test="sendPersonId != null and sendPersonId != ''"> send_person_id , </if> <if test="sourceModelName != null and sourceModelName != ''"> source_model_name , </if> <if test="state != null"> state , </if> <if test="resultMessage != null and resultMessage != ''"> result_message , </if> + <if test="warningInterfaceId != null and warningInterfaceId != ''"> warning_interface_id , </if> <if test="sts == null ">sts,</if> </trim> )values( @@ -224,34 +250,34 @@ <if test="sts != null and sts != ''"> #{sts} ,</if> <if test="org_id != null and org_id != ''"> #{org_id} ,</if> <if test="companyId != null and companyId != ''"> #{companyId} ,</if> - <if test="billId != null and billId != ''"> #{billId} ,</if> <if test="type != null and type != ''"> #{type} ,</if> - <if test="sendToUserId != null and sendToUserId != ''"> #{sendToUserId} ,</if> - <if test="sendToPersonId != null and sendToPersonId != ''"> #{sendToPersonId} ,</if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> #{recipientsPersonId} ,</if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> #{recipientsInteriorId} ,</if> <if test="sendCount != null and sendCount != ''"> #{sendCount} ,</if> <if test="sendDatetime != null"> #{sendDatetime} ,</if> <if test="sendPersonId != null and sendPersonId != ''"> #{sendPersonId} ,</if> <if test="sourceModelName != null and sourceModelName != ''"> #{sourceModelName} ,</if> <if test="state != null"> #{state} ,</if> <if test="resultMessage != null and resultMessage != ''"> #{resultMessage} ,</if> + <if test="warningInterfaceId != null and warningInterfaceId != ''"> #{warningInterfaceId} ,</if> <if test="sts == null ">'Y',</if> </trim> ) </insert> <!-- 批量新增 --> <insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> - insert into sys_send_message_log(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, bill_id, type, send_to_user_id, send_to_person_id, send_count, send_datetime, send_person_id, source_model_name, state, result_message, sts) + insert into sys_send_message_log(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, bill_id, type, recipients_person_id, recipients_interior_id, send_count, send_datetime, send_person_id, source_model_name, state, result_message, sts) values <foreach collection="entities" item="entity" separator=","> - (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.billId},#{entity.type},#{entity.sendToUserId},#{entity.sendToPersonId},#{entity.sendCount},#{entity.sendDatetime},#{entity.sendPersonId},#{entity.sourceModelName},#{entity.state},#{entity.resultMessage}, 'Y') + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.billId},#{entity.type},#{entity.recipientsPersonId},#{entity.recipientsInteriorId},#{entity.sendCount},#{entity.sendDatetime},#{entity.sendPersonId},#{entity.sourceModelName},#{entity.state},#{entity.resultMessage}, 'Y') </foreach> </insert> <!-- 批量新增或者修改--> <insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> - insert into sys_send_message_log(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, bill_id, type, send_to_user_id, send_to_person_id, send_count, send_datetime, send_person_id, source_model_name, state, result_message) + insert into sys_send_message_log(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, bill_id, type, recipients_person_id, recipients_interior_id, send_count, send_datetime, send_person_id, source_model_name, state, result_message) values <foreach collection="entities" item="entity" separator=","> - (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.billId},#{entity.type},#{entity.sendToUserId},#{entity.sendToPersonId},#{entity.sendCount},#{entity.sendDatetime},#{entity.sendPersonId},#{entity.sourceModelName},#{entity.state},#{entity.resultMessage}) + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.billId},#{entity.type},#{entity.recipientsPersonId},#{entity.recipientsInteriorId},#{entity.sendCount},#{entity.sendDatetime},#{entity.sendPersonId},#{entity.sourceModelName},#{entity.state},#{entity.resultMessage}) </foreach> on duplicate key update create_user_id = values(create_user_id), @@ -263,8 +289,8 @@ company_id = values(company_id), bill_id = values(bill_id), type = values(type), - send_to_user_id = values(send_to_user_id), - send_to_person_id = values(send_to_person_id), + recipients_person_id = values(recipients_person_id), + recipients_interior_id = values(recipients_interior_id), send_count = values(send_count), send_datetime = values(send_datetime), send_person_id = values(send_person_id), @@ -282,10 +308,9 @@ update sys_send_message_log set <if test="sts != null and sts != ''"> sts = #{sts},</if> <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if> - <if test="billId != null and billId != ''"> bill_id = #{billId},</if> <if test="type != null and type != ''"> type = #{type},</if> - <if test="sendToUserId != null and sendToUserId != ''"> send_to_user_id = #{sendToUserId},</if> - <if test="sendToPersonId != null and sendToPersonId != ''"> send_to_person_id = #{sendToPersonId},</if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> recipients_person_id = #{recipientsPersonId},</if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> recipients_interior_id = #{recipientsInteriorId},</if> <if test="sendCount != null and sendCount != ''"> send_count = #{sendCount},</if> <if test="sendDatetime != null"> send_datetime = #{sendDatetime},</if> <if test="sendPersonId != null and sendPersonId != ''"> send_person_id = #{sendPersonId},</if> @@ -308,10 +333,9 @@ update sys_send_message_log set sts= 'N' ,modify_time = #{modify_time},modify_u <if test="sorts != null"> and sorts = #{sorts} </if> <if test="sts != null and sts != ''"> and sts = #{sts} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> - <if test="billId != null and billId != ''"> and bill_id = #{billId} </if> <if test="type != null and type != ''"> and type = #{type} </if> - <if test="sendToUserId != null and sendToUserId != ''"> and send_to_user_id = #{sendToUserId} </if> - <if test="sendToPersonId != null and sendToPersonId != ''"> and send_to_person_id = #{sendToPersonId} </if> + <if test="recipientsPersonId != null and recipientsPersonId != ''"> and recipients_person_id = #{recipientsPersonId} </if> + <if test="recipientsInteriorId != null and recipientsInteriorId != ''"> and recipients_interior_id = #{recipientsInteriorId} </if> <if test="sendCount != null and sendCount != ''"> and send_count = #{sendCount} </if> <if test="sendDatetime != null"> and send_datetime = #{sendDatetime} </if> <if test="sendPersonId != null and sendPersonId != ''"> and send_person_id = #{sendPersonId} </if> @@ -326,28 +350,5 @@ update sys_send_message_log set sts= 'N' ,modify_time = #{modify_time},modify_u delete from sys_send_message_log where id = #{id} </delete> - <!-- 查询 采用==查询 --> - <select id="entity_list_base" resultMap="get-PushMessageEntity-result" parameterType = "com.hzya.frame.plugin.pushMessage.entity.PushMessageEntity"> - SELECT - warning_config.push_method, - warning_config.sendAppid AS warning_app_code, - warning_config.endApiCode AS warning_api_code, - warning_config.app_type, - warning_config.recipient_id AS recipient_id_list, - log.send_app_name, - log.receive_app_name, - receive_api_name, - log.receive_api_code, - log.return_data, - log.STATUS - FROM - v_hzya_sys_warning warning_config - LEFT JOIN v_hzya_sys_send_message_log log ON warning_config.api_code = log.receive_api_code - WHERE - log.STATUS = '4' - AND warning_config.push_method = '定时' - </select> - - </mapper> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/ISysSendMessageLogService.java b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/ISysSendMessageLogService.java index 929a22b3..0472f9ac 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/ISysSendMessageLogService.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/ISysSendMessageLogService.java @@ -23,6 +23,8 @@ public interface ISysSendMessageLogService extends IBaseService<SysSendMessageLo JsonResultEntity saveEntity(JSONObject jsonObject); + JsonResultEntity markRead(JSONObject jsonObject); + JsonResultEntity updateEntity(JSONObject jsonObject); JsonResultEntity deleteEntity(JSONObject jsonObject); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/impl/SysSendMessageLogServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/impl/SysSendMessageLogServiceImpl.java index 2ff4f682..0b03ee45 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/impl/SysSendMessageLogServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/sendMessageLog/service/impl/SysSendMessageLogServiceImpl.java @@ -10,8 +10,12 @@ import com.hzya.frame.sysnew.application.api.dao.ISysApplicationApiDao; import com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity; import com.hzya.frame.sysnew.application.apiPara.dao.ISysApplicationApiParaDao; import com.hzya.frame.sysnew.application.apiPara.entity.SysApplicationApiParaEntity; +import com.hzya.frame.sysnew.application.dao.ISysApplicationDao; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.service.impl.ApplicationCache; import com.hzya.frame.sysnew.messageTemplate.dao.ISysMessageTemplateDao; import com.hzya.frame.sysnew.messageTemplate.entity.SysMessageTemplateEntity; +import com.hzya.frame.sysnew.person.dao.ISysPersonDao; import com.hzya.frame.sysnew.pushMessage.entity.SysPushMessageEntity; import com.hzya.frame.sysnew.sendMessageLog.entity.SysSendMessageLogEntity; import com.hzya.frame.sysnew.sendMessageLog.dao.ISysSendMessageLogDao; @@ -25,9 +29,12 @@ import com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity; import com.hzya.frame.uuid.UUIDUtils; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; + import javax.annotation.Resource; + import com.hzya.frame.basedao.service.impl.BaseService; import java.util.ArrayList; @@ -43,368 +50,442 @@ import java.util.List; @Service(value = "sysSendMessageLogService") public class SysSendMessageLogServiceImpl extends BaseService<SysSendMessageLogEntity, String> implements ISysSendMessageLogService { - @Resource - private ISysWarningInterfaceDao sysWarningInterfaceDao; - @Resource - private ISysWarningConfigDao sysWarningConfigDao; - @Resource - private ISysMessageTemplateDao sysMessageTemplateDao; - @Resource - private ISysUserDao sysUserDao; - @Resource - private ISysApplicationApiDao sysApplicationApiDao; - @Resource - private ISysApplicationApiParaDao sysApplicationApiParaDao; + @Resource + private ApplicationCache applicationCache; + @Resource + private ISysWarningInterfaceDao sysWarningInterfaceDao; + @Resource + private ISysWarningConfigDao sysWarningConfigDao; + @Resource + private ISysMessageTemplateDao sysMessageTemplateDao; + @Resource + private ISysUserDao sysUserDao; + @Resource + private ISysPersonDao sysPersonsDao; - private ISysSendMessageLogDao sysSendMessageLogDao; + @Resource + private ISysApplicationApiDao sysApplicationApiDao; + @Resource + private ISysApplicationApiParaDao sysApplicationApiParaDao; - @Autowired - public void setSysSendMessageLogDao(ISysSendMessageLogDao dao) { - this.sysSendMessageLogDao = dao; - this.dao = dao; - } + @Value("${zt.url}") + private String url ; - @Override - public JsonResultEntity queryEntityPage(JSONObject jsonObject) { - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if (entity == null || entity.getPageNum() == null || entity.getPageSize() == null) { - return BaseResult.getFailureMessageEntity("分页查询参数不存在"); - } - PageHelper.startPage(entity.getPageNum(), entity.getPageSize()); - List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryByLike(entity); - PageInfo pageInfo = new PageInfo(list); - return BaseResult.getSuccessMessageEntity("查询数据成功", pageInfo); - } + private ISysSendMessageLogDao sysSendMessageLogDao; - @Override - public JsonResultEntity queryEntity(JSONObject jsonObject) { - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if (entity == null) { - entity = new SysSendMessageLogEntity(); - } - List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryByLike(entity); - return BaseResult.getSuccessMessageEntity("查询数据成功", list); - } + @Autowired + public void setSysSendMessageLogDao(ISysSendMessageLogDao dao) { + this.sysSendMessageLogDao = dao; + this.dao = dao; + } - @Override - public JsonResultEntity getEntity(JSONObject jsonObject) { - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if (entity == null) { - return BaseResult.getFailureMessageEntity("参数不能为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - entity = sysSendMessageLogDao.get(entity.getId()); - if (entity == null) { - return BaseResult.getFailureMessageEntity("获取发送消息日志失败"); - } - return BaseResult.getSuccessMessageEntity("获取发送消息日志成功", entity); - } + @Override + public JsonResultEntity queryEntityPage(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null || entity.getPageNum() == null || entity.getPageSize() == null) { + return BaseResult.getFailureMessageEntity("分页查询参数不存在"); + } + PageHelper.startPage(entity.getPageNum(), entity.getPageSize()); + List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryByLike(entity); + PageInfo pageInfo = new PageInfo(list); + return BaseResult.getSuccessMessageEntity("查询数据成功", pageInfo); + } - @Override - public JsonResultEntity saveEntity(JSONObject jsonObject) { - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if (entity == null) { - return BaseResult.getFailureMessageEntity("参数不能为空"); - } - if (entity.getBillId() == null || "".equals(entity.getBillId())) { - return BaseResult.getFailureMessageEntity("来源业务单据不能为空"); - } - entity.setCreate(); - sysSendMessageLogDao.save(entity); - return BaseResult.getSuccessMessageEntity("保存发送消息日志成功", entity); - } + @Override + public JsonResultEntity queryEntity(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null) { + entity = new SysSendMessageLogEntity(); + } + List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryByLike(entity); + return BaseResult.getSuccessMessageEntity("查询数据成功", list); + } - @Override - public JsonResultEntity updateEntity(JSONObject jsonObject){ - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if (entity == null) { - return BaseResult.getFailureMessageEntity("参数不能为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - if (entity.getBillId() == null || "".equals(entity.getBillId())) { - return BaseResult.getFailureMessageEntity("来源业务单据不能为空"); - } - entity.setUpdate(); - sysSendMessageLogDao.update(entity); - return BaseResult.getSuccessMessageEntity("修改发送消息日志成功", entity); - } + @Override + public JsonResultEntity getEntity(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不能为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + entity = sysSendMessageLogDao.get(entity.getId()); + if (entity == null) { + return BaseResult.getFailureMessageEntity("获取发送消息日志失败"); + } + return BaseResult.getSuccessMessageEntity("获取发送消息日志成功", entity); + } - @Override - public JsonResultEntity deleteEntity(JSONObject jsonObject){ - SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); - if(entity == null){ - return BaseResult.getFailureMessageEntity("参数不能为空"); - } - if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); - } - entity.setUpdate();; - sysSendMessageLogDao.logicRemove(entity); - return BaseResult.getSuccessMessageEntity("删除发送消息日志成功", entity); - } + @Override + public JsonResultEntity markRead(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity.getAppId() == null || "".equals(entity.getAppId())) { + return BaseResult.getFailureMessageEntity("传入appId不能为空"); + } + List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryBase(entity); + if (list == null || list.size() == 0) { + return BaseResult.getSuccessMessageEntity("未找到需要标记已读的消息日志", list); + } + for (SysSendMessageLogEntity log : list) { + log.setState(1); + log.setUpdate(); + sysSendMessageLogDao.update(log); + } + return BaseResult.getSuccessMessageEntity("标记已读成功", list); + } + + @Override + public JsonResultEntity saveEntity(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不能为空"); + } + entity.setCreate(); + sysSendMessageLogDao.save(entity); + return BaseResult.getSuccessMessageEntity("保存发送消息日志成功", entity); + } + + @Override + public JsonResultEntity updateEntity(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不能为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + entity.setUpdate(); + sysSendMessageLogDao.update(entity); + return BaseResult.getSuccessMessageEntity("修改发送消息日志成功", entity); + } + + @Override + public JsonResultEntity deleteEntity(JSONObject jsonObject) { + SysSendMessageLogEntity entity = getData("jsonStr", jsonObject, SysSendMessageLogEntity.class); + if (entity == null) { + return BaseResult.getFailureMessageEntity("参数不能为空"); + } + if (entity.getId() == null || "".equals(entity.getId())) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + entity.setUpdate(); + ; + sysSendMessageLogDao.logicRemove(entity); + return BaseResult.getSuccessMessageEntity("删除发送消息日志成功", entity); + } - /** - * sendMessage方法:根据请求错误消息,组装成消息模版,推送到三方业务系统 - * 1、先获取接口调用的日志数据 - * 2、如果日志状态为失败,且该接口预警状态为启用,则进行消息推送 - * 3、根据预警配置,找到消息模版,并生成消息内容 - * 4、根据预警配置,找到预警应用,并推送消息 - * 5、保存消息推送日志 - * */ - @Override - public boolean sendMessage(SysPushMessageEntity entity){ - String status = entity.getStatus(); - Long receiveApiCode = entity.getReceiveApiCode(); - String sendAppName = entity.getSendAppName(); - String receiveApiName = entity.getReceiveApiName(); - String recieveAppName = entity.getReceiveAppName(); - String returnData = entity.getReturnData(); - String warningAppType = entity.getWarningAppType(); - Long warningAppCode = entity.getWarningAppCode(); - Long warningApiCode = entity.getWarningApiCode(); - String sendMsgContent = ""; + /** + * sendMessage方法:根据请求错误消息,组装成消息模版,推送到三方业务系统 + * 1、先获取接口调用的日志数据 + * 2、如果日志状态为失败,且该接口预警状态为启用,则进行消息推送 + * 3、根据预警配置,找到消息模版,并生成消息内容 + * 4、根据预警配置,找到预警应用,并推送消息 + * 5、保存消息推送日志 + */ + @Override + public boolean sendMessage(SysPushMessageEntity entity) { + String status = entity.getStatus(); + Long receiveApiCode = entity.getReceiveApiCode(); + String sendAppName = entity.getSendAppName(); + String receiveApiName = entity.getReceiveApiName(); + String recieveAppName = entity.getReceiveAppName(); + String returnData = entity.getReturnData(); + String sendMsgContent = ""; - SysWarningInterfaceEntity interfaceEntity = new SysWarningInterfaceEntity(); - SysWarningConfigEntity configEntity = new SysWarningConfigEntity(); - SysMessageTemplateEntity templateEntity = new SysMessageTemplateEntity(); - SysApplicationApiParaEntity sysApplicationApiParaEntity = new SysApplicationApiParaEntity(); + //SysWarningInterfaceEntity interfaceEntityApi = new SysWarningInterfaceEntity(); + SysWarningInterfaceEntity interfaceEntity = new SysWarningInterfaceEntity(); + SysWarningConfigEntity configEntity = new SysWarningConfigEntity(); + SysMessageTemplateEntity templateEntity = new SysMessageTemplateEntity(); + SysApplicationApiParaEntity sysApplicationApiParaEntity = new SysApplicationApiParaEntity(); - interfaceEntity.setApiCode(receiveApiCode); + //interfaceEntityApi.setApiCode(receiveApiCode); + interfaceEntity.setApiCode(receiveApiCode); + if (status == null) { + logger.error("日志状态为空"); + return false; + } + //只有发送失败的日志才会推送消息,成功的日志不推送消息 + if ("4".equals(status)) { + try { + interfaceEntity = sysWarningInterfaceDao.queryOne(interfaceEntity); + } catch (Exception e) { + logger.error("API接口预警信息可能配置了多个"); + return false; + } + //List<SysWarningInterfaceEntity> interfaceEntityList =sysWarningInterfaceDao.queryByLike(interfaceEntityApi); + //for(SysWarningInterfaceEntity interfaceEntity : interfaceEntityList){ + if (interfaceEntity == null) { + logger.error("未找到API接口预警信息"); + return false; + } + //只有预警接口状态为启用,才会进行消息推送 + if (interfaceEntity.getStatus() == null || interfaceEntity.getStatus().equals("1") == false) { + logger.error("API接口未启用推送"); + return false; + } + //根据主表id,找到主表记录中的消息模版id + String warningConfigId = interfaceEntity.getWarningConfigId(); + SysWarningConfigEntity statusEntity = new SysWarningConfigEntity(); + statusEntity.setStatus("1"); + statusEntity.setId(warningConfigId); + if (warningConfigId == null || "".equals(warningConfigId)) { + logger.error("未找到该接口预警配置信息的主表id"); + return false; + } + configEntity = sysWarningConfigDao.queryOne(statusEntity); + if (configEntity == null) { + logger.error("未找到该接口预警配置信息"); + return false; + } + String messageTemplateId = configEntity.getMessageTemplateId(); + if (messageTemplateId == null || "".equals(messageTemplateId)) { + logger.error("未找到该接口预警配置信息的消息模版id"); + return false; + } + templateEntity = sysMessageTemplateDao.get(messageTemplateId); + if (templateEntity == null) { + logger.error("未找到该接口预警配置信息的消息模版信息"); + return false; + } + if(templateEntity.getState() == null || !"1".equals(templateEntity.getState())){ + logger.error("当前预警配置中消息模版状态为禁用"); + return false; + } - if(status == null){ - logger.error("日志状态为空"); - return false; - } - //只有发送失败的日志才会推送消息,成功的日志不推送消息 - if ("4".equals(status)) { - interfaceEntity = sysWarningInterfaceDao.queryOne(interfaceEntity); - if(interfaceEntity == null){ - logger.error("未找到API接口预警信息"); - return false; - } - //只有预警接口状态为启用,才会进行消息推送 - if(interfaceEntity.getStatus() == null || interfaceEntity.getStatus().equals("1") == false){ - logger.error("API接口未启用推送"); - return false; - } - //根据主表id,找到主表记录中的消息模版id - String warningConfigId = interfaceEntity.getWarningConfigId(); - if(warningConfigId == null || "".equals(warningConfigId)){ - logger.error("未找到该接口预警配置信息的主表id"); - return false; - } - configEntity = sysWarningConfigDao.get(warningConfigId); - if(configEntity == null){ - logger.error("未找到该接口预警配置信息"); - return false; - } - String messageTemplateId = configEntity.getMessageTemplateId(); - if(messageTemplateId == null || "".equals(messageTemplateId)){ - logger.error("未找到该接口预警配置信息的消息模版id"); - return false; - } - templateEntity = sysMessageTemplateDao.get(messageTemplateId); - if(templateEntity == null){ - logger.error("未找到该接口预警配置信息的消息模版信息"); - return false; - } + String messageContent = templateEntity.getMessageContents(); + if (messageContent == null || "".equals(messageContent)) { + logger.error("未找到该接口预警配置信息的消息模版内容"); + return false; + } + //推送消息内容拼接 + sendMsgContent = messageContent.replace("${receive_app_name}", recieveAppName); + sendMsgContent = sendMsgContent.replace("${send_app_name}", sendAppName); + sendMsgContent = sendMsgContent.replace("${receive_api_name}", receiveApiName); + sendMsgContent = sendMsgContent.replace("${return_data}", returnData); + //消息模版名称 + String templateName = templateEntity.getTemplateName(); + String type = ""; + String bodyParams = ""; + String warningAppId = configEntity.getWarningAppId(); - String messageContent = templateEntity.getMessageContents(); - if(messageContent == null || "".equals(messageContent)){ - logger.error("未找到该接口预警配置信息的消息模版内容"); - return false; - } - //推送消息内容拼接 - sendMsgContent = messageContent.replace("${reciecveAppName}",recieveAppName); - sendMsgContent = sendMsgContent.replace("${sendAppName}",sendAppName); - sendMsgContent = sendMsgContent.replace("${receiveApiName}",receiveApiName); - sendMsgContent = sendMsgContent.replace("${returnData}",returnData); - //消息模版名称 - String templateName = templateEntity.getTemplateName(); - String type = ""; - String bodyParams = ""; - String warningAppId = configEntity.getWarningAppId(); + Long warningApiCode = configEntity.getAcceptMessageApiCode(); + String appCode = String.valueOf(warningApiCode).substring(0, 6); + SysApplicationEntity warningApp = getAppByAppId(appCode); + String warningAppType = warningApp.getAppType(); + Integer warningAppCode = warningApp.getAppId(); - //查询预警人员id列表 - String recipientIdList = configEntity.getRecipientId(); - //根据预警人员id列表,获取预警应用人员id列表 - String warningAppReceiverIdList = getWarningAppReceiverIdList(warningAppType,recipientIdList); + //查询预警人员id列表 + String recipientIdList = configEntity.getRecipientIdList(); + //根据预警人员id列表,获取预警应用人员id列表 + String warningAppReceiverIdList = getWarningAppReceiverIdList(warningAppType, recipientIdList); - switch (warningAppType){ - case "6WX": - //调用微信推送消息 - break; - case "5DD": - //消息类型:3表示钉钉 - type = "3"; - //获取钉钉发送消息时使用的微应用的AgentID - sysApplicationApiParaEntity.setAppId(warningAppId); - sysApplicationApiParaEntity.setInterfaceKey("agentId"); - String agentId = sysApplicationApiParaDao.queryOne(sysApplicationApiParaEntity).getInterfaceValue(); - //拼接调用钉钉接口的body参数 - bodyParams = splicingDDBody(sendMsgContent,agentId,warningAppReceiverIdList).toString(); - break; - default: - logger.error("未找到该应用类型"); - break; - } - String result = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"). - header("appId",warningAppCode.toString()). - header("apiCode",warningApiCode.toString()). - header("publicKey","ZJYA7v6DubGMm8EdBPGo+Jj9wCpUeCGJEpfBRLiInq4dvDlCe7eDIk+3zDUT+v578prj"). - header("secretKey","bsAMm6tvJs/BV1SO/9ZzjlW+OQaK0mwyv6rLvktyNy/OdltLuG2zze9bT7ttfAA9j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). - body(bodyParams). - execute(). - body(); - JSONObject resultJson = JSONObject.parseObject(result); - String body = resultJson.getString("attribute"); + switch (warningAppType) { + case "6WX": + //调用微信推送消息 + break; + case "5DD": + //消息类型:3表示钉钉 + type = "3"; + //获取钉钉发送消息时使用的微应用的AgentID + sysApplicationApiParaEntity.setAppId(warningAppId); + sysApplicationApiParaEntity.setInterfaceKey("agentId"); + String agentId = sysApplicationApiParaDao.queryOne(sysApplicationApiParaEntity).getInterfaceValue(); + //拼接调用钉钉接口的body参数 + bodyParams = splicingDDBody(sendMsgContent, agentId, warningAppReceiverIdList).toString(); + break; + default: + logger.error("未找到该应用类型"); + break; + } + String result = HttpRequest.post(url). + header("appId", warningAppCode.toString()). + header("apiCode", warningApiCode.toString()). + header("publicKey", "ZJYA7v6DubGMm8EdBPGo+Jj9wCpUeCGJEpfBRLiInq4dvDlCe7eDIk+3zDUT+v578prj"). + header("secretKey", "bsAMm6tvJs/BV1SO/9ZzjlW+OQaK0mwyv6rLvktyNy/OdltLuG2zze9bT7ttfAA9j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). + body(bodyParams). + execute(). + body(); + JSONObject resultJson = JSONObject.parseObject(result); + String body = resultJson.getString("attribute"); + SysApplicationApiEntity warningApiEntity = getApiByAppIdApiCode(warningAppId, warningApiCode.toString()); - SysApplicationApiEntity sysApplicationApiEntity = new SysApplicationApiEntity(); - sysApplicationApiEntity.setApiCode(warningApiCode); - SysApplicationApiEntity warningApiEntity = sysApplicationApiDao.queryOne(sysApplicationApiEntity); + //根据预警接口编码,以及返回数据,判断消息推送是否成功 + if (warningApiEntity.getReturnSuccessField() != null && !"".equals(warningApiEntity.getReturnSuccessField()) + && warningApiEntity.getReturnSuccessValue() != null && !"".equals(warningApiEntity.getReturnSuccessValue())) { + //先判断返回值是否为JSON格式 + if (JSONUtil.isTypeJSON(body)) { + JSONObject cheackdatas = JSONObject.parseObject(body); + JSONObject datas = JSONObject.parseObject(body); + String checkdata = cheackdatas.getString(warningApiEntity.getReturnSuccessField()); + //判断返回值是否为预警接口预期的返回值(1、返回值匹配2、返回值配置的就是not null3、返回值带.) + if (checkdata != null && warningApiEntity.getReturnSuccessValue().equals(checkdata)) { + logger.info("推送消息成功,开始保存日志"); + } else if (warningApiEntity.getReturnSuccessValue().equals("not null") && checkdata != null) { + logger.info("推送消息成功,开始保存日志"); + } else { + String fieldname = warningApiEntity.getReturnSuccessField(); + if (fieldname.contains(".")) { + String[] fileds = fieldname.split("\\."); + boolean flags = false; + for (int i = 0; i < fileds.length; i++) { + if (JSONUtil.isTypeJSON(datas.getString(fileds[i]))) { + datas = datas.getJSONObject(fileds[i]); + if (fileds.length - 2 == i) { + String a = datas.getString(fileds[i + 1]); + if (a != null && warningApiEntity.getReturnSuccessValue().equals(a)) { + flags = true; + break; + } else if (warningApiEntity.getReturnSuccessValue().equals("not null") && a != null) { + flags = true; + break; + } else { + break; + } + } + } + } + if (flags) { + logger.info("推送消息成功,开始保存日志"); + } else { + logger.error("推送消息失败,返回值错误"); + } - //根据预警接口编码,以及返回数据,判断消息推送是否成功 - if(warningApiEntity.getReturnSuccessField() != null && !"".equals(warningApiEntity.getReturnSuccessField()) - && warningApiEntity.getReturnSuccessValue() != null && !"".equals(warningApiEntity.getReturnSuccessValue())){ - //先判断返回值是否为JSON格式 - if (JSONUtil.isTypeJSON(body)){ - JSONObject cheackdatas = JSONObject.parseObject(body); - JSONObject datas = JSONObject.parseObject(body); - String checkdata = cheackdatas.getString(warningApiEntity.getReturnSuccessField()); - //判断返回值是否为预警接口预期的返回值(1、返回值匹配2、返回值配置的就是not null3、返回值带.) - if (checkdata != null && warningApiEntity.getReturnSuccessValue().equals(checkdata)) { - logger.info("推送消息成功,开始保存日志"); - }else if(warningApiEntity.getReturnSuccessValue().equals("not null") && checkdata != null){ - logger.info("推送消息成功,开始保存日志"); - }else { - String fieldname = warningApiEntity.getReturnSuccessField(); - if(fieldname.contains(".")){ - String[] fileds = fieldname.split("\\."); - boolean flags = false; - for (int i = 0; i < fileds.length; i++) { - if (JSONUtil.isTypeJSON(datas.getString(fileds[i]))) { - datas = datas.getJSONObject(fileds[i]); - if(fileds.length-2 == i ){ - String a = datas.getString(fileds[i+1]); - if (a != null && warningApiEntity.getReturnSuccessValue().equals(a)) { - flags = true; - break; - }else if(warningApiEntity.getReturnSuccessValue().equals("not null") && a != null){ - flags = true; - break; - }else { - break; - } - } - } - } - if(flags){ - logger.info("推送消息成功,开始保存日志"); - }else { - logger.error("推送消息失败,返回值错误"); - } + } else { + logger.error("推送消息失败,返回值错误"); + } + } + } else { + logger.error("接口调用失败,返回格式错误,不是JSON"); + } + } else { + logger.error("api返回信息字段未配置,开始保存日志"); + } + saveLog(sendMsgContent, type, resultJson.toString(), templateName, recipientIdList, warningAppReceiverIdList, interfaceEntity.getId()); + logger.info("保存日志成功"); + //} - }else { - logger.error("推送消息失败,返回值错误"); - } - } - }else{ - logger.error("接口调用失败,返回格式错误,不是JSON"); - } - }else{ - logger.error("api返回信息字段未配置,开始保存日志"); - } - saveLog(sendMsgContent,type,resultJson.toString(),templateName,recipientIdList,warningAppReceiverIdList); - logger.info("保存日志成功"); - }else{ - logger.error("日志状态为成功,不需要推送消息"); - return false; - } - return true; - } + } else { + logger.error("日志状态为成功,不需要推送消息"); + return false; + } + return true; + } + /** + * 根据appCode查询缓存中的应用信息 + */ + private SysApplicationEntity getAppByAppId(String appId) { + String str = "appId" + appId; + Object o = applicationCache.get("1", str); + if (o != null) { + return (SysApplicationEntity) o; + } + return null; + } - /**保存推送消息日志时,需要循环预警应用人员id列表*/ - public void saveLog(String sendMsgContent,String type,String resultMessage,String templateName,String recipientIdList,String warningAppReceiverIdList){ - SysSendMessageLogEntity logEntity = new SysSendMessageLogEntity(); - logEntity.setSendCount(sendMsgContent); - logEntity.setType(type); - logEntity.setBillId("test1411"); - logEntity.setSendDatetime(new Date()); + /** + * 根据appId和apiCode查询缓存中的api信息 + */ + private SysApplicationApiEntity getApiByAppIdApiCode(String appId, String apiCode) { - logEntity.setSts("Y"); - logEntity.setCreate_user_id("1"); - logEntity.setModify_user_id("1"); - logEntity.setCreate_time(new Date()); - logEntity.setModify_time(new Date()); - logEntity.setOrg_id("0"); - logEntity.setCompanyId("0"); + String str = "appId" + appId + "apiCode" + apiCode; + Object o = applicationCache.get("2", str); + if (o != null) { + return (SysApplicationApiEntity) o; + } + return null; + } + + /** + * 保存推送消息日志时,需要循环预警应用人员id列表 + */ + public void saveLog(String sendMsgContent, String type, String resultMessage, String templateName, String recipientIdList, String warningAppReceiverIdList,String warningInterfaceId) { + SysSendMessageLogEntity logEntity = new SysSendMessageLogEntity(); + logEntity.setSendCount(sendMsgContent); + logEntity.setType(type); + logEntity.setSendDatetime(new Date()); + + logEntity.setSts("Y"); + logEntity.setCreate_user_id("1"); + logEntity.setModify_user_id("1"); + logEntity.setCreate_time(new Date()); + logEntity.setModify_time(new Date()); + logEntity.setOrg_id("0"); + logEntity.setCompanyId("0"); logEntity.setSendPersonId("1"); - logEntity.setResultMessage(resultMessage); - logEntity.setSourceModelName(templateName); + logEntity.setResultMessage(resultMessage); + logEntity.setSourceModelName(templateName); + logEntity.setState(0); + logEntity.setWarningInterfaceId(warningInterfaceId); + String[] recipientsInteriorIdList = warningAppReceiverIdList.split(","); + String[] recipientsPersonIdList = recipientIdList.split(","); - String[] personIdList = warningAppReceiverIdList.split(","); - String[] userIdList = recipientIdList.split(","); + for (int i = 0; i < recipientsInteriorIdList.length; i++) { + logEntity.setRecipientsInteriorId(recipientsInteriorIdList[i]); + logEntity.setRecipientsPersonId(recipientsPersonIdList[i]); + logEntity.setId(UUIDUtils.getUUID()); + sysSendMessageLogDao.save(logEntity); + } + } - for(int i=0;i<personIdList.length;i++){ - logEntity.setSendToPersonId(personIdList[i]); - logEntity.setSendToUserId(userIdList[i]); - logEntity.setId(UUIDUtils.getUUID()); - sysSendMessageLogDao.save(logEntity); - } - } - /**拼接调用钉钉接口的body参数*/ - public JSONObject splicingDDBody(String sendMsgContent,String agentId,String userid_list){ - JSONObject bodyJson = new JSONObject(); - JSONObject msg = new JSONObject(); - JSONObject text = new JSONObject(); + /** + * 拼接调用钉钉接口的body参数 + */ + public JSONObject splicingDDBody(String sendMsgContent, String agentId, String userid_list) { + JSONObject bodyJson = new JSONObject(); + JSONObject msg = new JSONObject(); + JSONObject text = new JSONObject(); - text.put("content",sendMsgContent); - msg.put("msgtype","text"); - msg.put("text",text); - bodyJson.put("msg",msg); - bodyJson.put("to_all_user","false"); - bodyJson.put("agent_id",agentId); - bodyJson.put("userid_list",userid_list); + text.put("content", sendMsgContent); + msg.put("msgtype", "text"); + msg.put("text", text); + bodyJson.put("msg", msg); + bodyJson.put("to_all_user", "false"); + bodyJson.put("agent_id", agentId); + bodyJson.put("userid_list", userid_list); - return bodyJson; - } + return bodyJson; + } - /**根据预警应用类型和预警人员id列表,获取预警应用人员id列表*/ - public String getWarningAppReceiverIdList(String warningAppType,String userIdList){ + /** + * 根据预警应用类型和预警人员id列表,获取预警应用人员id列表 + */ + public String getWarningAppReceiverIdList(String warningAppType, String personIdList) { - String[] userIdArray = userIdList.split(","); - String warningAppReceiverIdList = ""; - //根据预警人员id列表,查表sys_user中匹配的数据记录 - List<SysUserEntity> sysUserList = new ArrayList<>(); - for(String userId : userIdArray){ - sysUserList.add(sysUserDao.get(userId)); - } - switch (warningAppType){ - case "6WX": - //获取微信预警人员id列表 - break; - case "5DD": - //获取钉钉预警人员id列表 - for(SysUserEntity sysUser : sysUserList){ - if(sysUser.getDdUserId()!= null && !"".equals(sysUser.getDdUserId())){ - if(!warningAppReceiverIdList.isEmpty()){ - warningAppReceiverIdList += ","; - } - warningAppReceiverIdList += sysUser.getDdUserId(); - } - } - break; - default: - logger.error("未找到该应用类型"); - break; - } + String[] personIdArray = personIdList.split(","); + List<SysUserEntity> sysUserList = new ArrayList<>(); + SysUserEntity sysUserEntity = new SysUserEntity(); + for (String personId : personIdArray) { + sysUserEntity.setPersonId(personId); + sysUserList.add(sysUserDao.queryOne(sysUserEntity)); + } + String warningAppReceiverIdList = ""; + switch (warningAppType) { + case "6WX": + //获取微信预警人员id列表 + break; + case "5DD": + //获取钉钉预警人员id列表 + for (SysUserEntity sysUser : sysUserList) { + if (sysUser.getDdUserId() == null || "".equals(sysUser.getDdUserId())) { + String personName = sysPersonsDao.get(sysUser.getPersonId()).getPersonName(); + logger.error("接收人:" +personName + "未配置钉钉用户id"); + } + if (sysUser.getDdUserId() != null && !"".equals(sysUser.getDdUserId())) { + if (!warningAppReceiverIdList.isEmpty()) { + warningAppReceiverIdList += ","; + } + warningAppReceiverIdList += sysUser.getDdUserId(); + } + } + break; + default: + logger.error("未找到该应用类型"); + break; + } return warningAppReceiverIdList; - } + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.java index 8358eb94..7280a09d 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.java @@ -69,6 +69,8 @@ public class SysUserEntity extends BaseEntity { * 人员姓名 */ private String personName; + //编码 + private String personCode; /** * 关联组织机构名称 */ @@ -86,6 +88,9 @@ public class SysUserEntity extends BaseEntity { private String wxUserId; + //sys_flow模块用 + private String flowClassId; + public String getDdUserId() { return ddUserId; } @@ -237,5 +242,21 @@ public class SysUserEntity extends BaseEntity { public void setOldPassword(String oldPassword) { OldPassword = oldPassword; } + + public String getPersonCode() { + return personCode; + } + + public void setPersonCode(String personCode) { + this.personCode = personCode; + } + + public String getFlowClassId() { + return flowClassId; + } + + public void setFlowClassId(String flowClassId) { + this.flowClassId = flowClassId; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.xml index 82c6d1ed..3642ff41 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/user/entity/SysUserEntity.xml @@ -22,6 +22,7 @@ <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="companyId" column="company_id" jdbcType="VARCHAR"/> <result property="personName" column="person_Name" jdbcType="VARCHAR"/> + <result property="personCode" column="person_code" jdbcType="VARCHAR"/> <result property="organName" column="organ_name" jdbcType="VARCHAR"/> <result property="mobilePhone" column="mobile_phone" jdbcType="VARCHAR"/> <result property="ddUserId" column="dd_user_id" jdbcType="VARCHAR"/> @@ -72,6 +73,7 @@ ,a.org_id ,a.company_id ,p.person_Name + ,p.person_code ,a.wx_user_id ,a.dd_user_id from @@ -104,6 +106,8 @@ <if test="sts != null and sts != ''">and sts = #{sts}</if> <if test="org_id != null and org_id != ''">and org_id = #{org_id}</if> <if test="companyId != null and companyId != ''">and company_id = #{companyId}</if> + <if test="ddUserId != null and ddUserId != ''">and dd_user_id = #{ddUserId}</if> + <if test="wxUserId != null and wxUserId != ''">and wx_user_id = #{wxUserId}</if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() ">order by sorts asc</if> @@ -264,6 +268,69 @@ <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> </select> + <!-- 查询未分配过权限的用户 (sys_flow模块用) --> + <select id="entity_list_notin_sys_flowClass" resultMap="get-SysUserEntity-result" + parameterType="com.hzya.frame.sysnew.user.entity.SysUserEntity"> + select + a.id + ,a.person_id + ,a.login_code + ,a.password + ,a.salt + ,a.last_login_time + ,a.last_connection_time + ,a.last_login_ip + ,a.state + ,a.remark + ,a.sorts + ,a.create_user_id + ,a.create_time + ,a.modify_user_id + ,a.modify_time + ,a.sts + ,a.org_id + ,a.company_id + ,p.person_Name + ,p.person_code + ,p.mobile_phone + ,o.organ_name + from + sys_user a + LEFT JOIN sys_person p on p.id = a.person_id and p.sts = 'Y' + LEFT JOIN sys_organ o on o.id = p.organ_id and o.sts = 'Y' + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">and a.id like concat('%',#{id},'%')</if> + <if test="personId != null and personId != ''">and a.person_id like concat('%',#{personId},'%')</if> + <if test="loginCode != null and loginCode != ''">and a.login_code like concat('%',#{loginCode},'%')</if> + <if test="password != null and password != ''">and a.password like concat('%',#{password},'%')</if> + <if test="salt != null and salt != ''">and a.salt like concat('%',#{salt},'%')</if> + <if test="lastLoginTime != null">and a.last_login_time like concat('%',#{lastLoginTime},'%')</if> + <if test="lastConnectionTime != null">and a.last_connection_time like concat('%',#{lastConnectionTime},'%') + </if> + <if test="lastLoginIp != null and lastLoginIp != ''">and a.last_login_ip like concat('%',#{lastLoginIp},'%') + </if> + <if test="state != null and state != ''">and a.state like concat('%',#{state},'%')</if> + <if test="remark != null and remark != ''">and a.remark like concat('%',#{remark},'%')</if> + <if test="sorts != null">and a.sorts like concat('%',#{sorts},'%')</if> + <if test="create_user_id != null and create_user_id != ''">and a.create_user_id like + concat('%',#{create_user_id},'%') + </if> + <if test="create_time != null">and a.create_time like concat('%',#{create_time},'%')</if> + <if test="modify_user_id != null and modify_user_id != ''">and a.modify_user_id like + concat('%',#{modify_user_id},'%') + </if> + <if test="modify_time != null">and a.modify_time like concat('%',#{modify_time},'%')</if> + <if test="sts != null and sts != ''">and a.sts like concat('%',#{sts},'%')</if> + <if test="org_id != null and org_id != ''">and a.org_id like concat('%',#{org_id},'%')</if> + <if test="companyId != null and companyId != ''">and a.company_id like concat('%',#{companyId},'%')</if> + <if test="organId != null and organId != ''">and p.organ_id = #{organId}</if> + <if test="mobilePhone != null and mobilePhone != ''">and p.mobile_phone like concat('%',#{mobilePhone},'%')</if> + <if test="personName != null and personName != ''">and p.person_Name like concat('%',#{personName},'%')</if> + and a.sts='Y' + and a.id not in (select user_id from sys_flow_class_rule where sts = 'Y' and flow_class_id = #{flowClassId}) + </trim> + </select> + <!--新增所有列--> <insert id="entity_insert" parameterType="com.hzya.frame.sysnew.user.entity.SysUserEntity" > @@ -373,6 +440,8 @@ <if test="sts != null and sts != ''">sts = #{sts},</if> <if test="org_id != null and org_id != ''">org_id = #{org_id},</if> <if test="companyId != null and companyId != ''">company_id = #{companyId},</if> + <if test="ddUserId != null and ddUserId != ''">dd_user_id = #{ddUserId},</if> + <if test="wxUserId != null and wxUserId != ''">wx_user_id = #{wxUserId},</if> </trim> where id = #{id} </update> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.java index 11be0abe..61d21a2e 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.java @@ -14,8 +14,8 @@ public class SysWarningConfigEntity extends BaseEntity { private String companyId; /** 消息模版id */ private String messageTemplateId; - /** 应用id */ - private String appId; + /** 应用id列表 */ + private String appIdList; /** 预警应用id */ private String warningAppId; /** 接收推送消息的api编码 */ @@ -25,8 +25,63 @@ public class SysWarningConfigEntity extends BaseEntity { /** 是否启用(0:停用、1:启用) */ private String status; /** 接收人id(存表sys_user的id) */ - private String recipientId; + private String recipientIdList; + /** 模版名称 */ + private String templateName; + /** 应用名称 */ + private String appNameList; + /** 预警应用名称 */ + private String warningAppNameList; + /** 接收人名称列表 */ + private String recipientNameList; + public String getWarningAppNameList() { + return warningAppNameList; + } + + public void setWarningAppNameList(String warningAppNameList) { + this.warningAppNameList = warningAppNameList; + } + + public String getTemplateName() { + return templateName; + } + + public void setTemplateName(String templateName) { + this.templateName = templateName; + } + + public String getAppNameList() { + return appNameList; + } + + public void setAppNameList(String appNameList) { + this.appNameList = appNameList; + } + + public String getRecipientNameList() { + return recipientNameList; + } + + public void setRecipientNameList(String recipientNameList) { + this.recipientNameList = recipientNameList; + } + + public String getAppIdList() { + return appIdList; + } + + public void setAppIdList(String appIdList) { + this.appIdList = appIdList; + } + + public String getRecipientIdList() { + return recipientIdList; + } + + public void setRecipientIdList(String recipientIdList) { + this.recipientIdList = recipientIdList; + } public String getCompanyId() { return companyId; @@ -44,13 +99,6 @@ public class SysWarningConfigEntity extends BaseEntity { this.messageTemplateId = messageTemplateId; } - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } public String getWarningAppId() { return warningAppId; @@ -84,13 +132,5 @@ public class SysWarningConfigEntity extends BaseEntity { this.status = status; } - public String getRecipientId() { - return recipientId; - } - - public void setRecipientId(String recipientId) { - this.recipientId = recipientId; - } - } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.xml index c7ff7a11..ac4fcc10 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/entity/SysWarningConfigEntity.xml @@ -13,12 +13,13 @@ <result property="org_id" column="org_id" jdbcType="VARCHAR"/> <result property="companyId" column="company_id" jdbcType="VARCHAR"/> <result property="messageTemplateId" column="message_template_id" jdbcType="VARCHAR"/> - <result property="appId" column="app_id" jdbcType="VARCHAR"/> + <result property="appIdList" column="app_id_list" jdbcType="VARCHAR"/> <result property="warningAppId" column="warning_app_id" jdbcType="VARCHAR"/> <result property="acceptMessageApiCode" column="accept_message_api_code" jdbcType="INTEGER"/> <result property="remark" column="remark" jdbcType="VARCHAR"/> <result property="status" column="status" jdbcType="VARCHAR"/> - <result property="recipientId" column="recipient_id" jdbcType="VARCHAR"/> + <result property="recipientIdList" column="recipient_id_list" jdbcType="VARCHAR"/> + <result property="templateName" column="template_name" jdbcType="VARCHAR"/> </resultMap> <!-- 查询的字段--> <sql id = "SysWarningConfigEntity_Base_Column_List"> @@ -32,19 +33,22 @@ ,org_id ,company_id ,message_template_id - ,app_id + ,app_id_list ,warning_app_id ,accept_message_api_code ,remark ,status - ,recipient_id + ,recipient_id_list </sql> <!--通过ID获取数据 --> <select id="entity_get" resultMap="get-SysWarningConfigEntity-result"> select - <include refid="SysWarningConfigEntity_Base_Column_List" /> - from sys_warning_config where id = #{ id } and sts='Y' + config.* + ,template.template_name + from sys_warning_config config + LEFT JOIN sys_message_template template ON template.id = config.message_template_id + where config.id = #{ id } AND config.sts='Y' AND template.sts='Y' </select> <!-- 查询 采用==查询 --> <select id="entity_list_base" resultMap="get-SysWarningConfigEntity-result" parameterType = "com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity"> @@ -62,12 +66,12 @@ <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> <if test="messageTemplateId != null and messageTemplateId != ''"> and message_template_id = #{messageTemplateId} </if> - <if test="appId != null and appId != ''"> and app_id = #{appId} </if> + <if test="appIdList != null and appIdList != ''"> and app_id_list = #{appIdList} </if> <if test="warningAppId != null and warningAppId != ''"> and warning_app_id = #{warningAppId} </if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> and accept_message_api_code = #{acceptMessageApiCode} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> <if test="status != null and status != ''"> and status = #{status} </if> - <if test="recipientId != null and recipientId != ''"> and recipient_id = #{recipientId} </if> + <if test="recipientIdList != null and recipientIdList != ''"> and recipient_id_list = #{recipientIdList} </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -88,12 +92,12 @@ <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> <if test="messageTemplateId != null and messageTemplateId != ''"> and message_template_id = #{messageTemplateId} </if> - <if test="appId != null and appId != ''"> and app_id = #{appId} </if> + <if test="appIdList != null and appIdList != ''"> and app_id_list = #{appIdList} </if> <if test="warningAppId != null and warningAppId != ''"> and warning_app_id = #{warningAppId} </if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> and accept_message_api_code = #{acceptMessageApiCode} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> <if test="status != null and status != ''"> and status = #{status} </if> - <if test="recipientId != null and recipientId != ''"> and recipient_id = #{recipientId} </if> + <if test="recipientIdList != null and recipientIdList != ''"> and recipient_id_list = #{recipientIdList} </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -103,28 +107,31 @@ <!-- 分页查询列表 采用like格式 --> <select id="entity_list_like" resultMap="get-SysWarningConfigEntity-result" parameterType = "com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity"> select - <include refid="SysWarningConfigEntity_Base_Column_List" /> - from sys_warning_config + config.* + ,template.template_name + from sys_warning_config config + LEFT JOIN sys_message_template template ON template.id = config.message_template_id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> - <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> - <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> - <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> - <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> - <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> - <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> - <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> - <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if> - <if test="messageTemplateId != null and messageTemplateId != ''"> and message_template_id like concat('%',#{messageTemplateId},'%') </if> - <if test="appId != null and appId != ''"> and app_id like concat('%',#{appId},'%') </if> - <if test="warningAppId != null and warningAppId != ''"> and warning_app_id like concat('%',#{warningAppId},'%') </if> - <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> and accept_message_api_code like concat('%',#{acceptMessageApiCode},'%') </if> - <if test="remark != null and remark != ''"> and remark like concat('%',#{remark},'%') </if> - <if test="status != null and status != ''"> and status like concat('%',#{status},'%') </if> - <if test="recipientId != null and recipientId != ''"> and recipient_id like concat('%',#{recipientId},'%') </if> - and sts='Y' + <if test="id != null and id != ''"> and config.id like concat('%',#{id},'%') </if> + <if test="sorts != null"> and config.sorts like concat('%',#{sorts},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and config.create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and config.create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and config.modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and config.modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and config.sts like concat('%',#{sts},'%') </if> + <if test="org_id != null and org_id != ''"> and config.org_id like concat('%',#{org_id},'%') </if> + <if test="companyId != null and companyId != ''"> and config.company_id like concat('%',#{companyId},'%') </if> + <if test="messageTemplateId != null and messageTemplateId != ''"> and config.message_template_id like concat('%',#{messageTemplateId},'%') </if> + <if test="appIdList != null and appIdList != ''"> and config.app_id_list like concat('%',#{appIdList},'%') </if> + <if test="warningAppId != null and warningAppId != ''"> and config.warning_app_id like concat('%',#{warningAppId},'%') </if> + <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> and config.accept_message_api_code like concat('%',#{acceptMessageApiCode},'%') </if> + <if test="remark != null and remark != ''"> and config.remark like concat('%',#{remark},'%') </if> + <if test="status != null and status != ''"> and config.status like concat('%',#{status},'%') </if> + <if test="recipientIdList != null and recipientIdList != ''"> and config.recipient_id_list like concat('%',#{recipientIdList},'%') </if> + and config.sts='Y' + and template.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort == null or sort == ''.toString() "> order by config.sorts asc</if> <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> </select> @@ -144,12 +151,12 @@ <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if> <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if> <if test="messageTemplateId != null and messageTemplateId != ''"> or message_template_id = #{messageTemplateId} </if> - <if test="appId != null and appId != ''"> or app_id = #{appId} </if> + <if test="appIdList != null and appIdList != ''"> or app_id_list = #{appIdList} </if> <if test="warningAppId != null and warningAppId != ''"> or warning_app_id = #{warningAppId} </if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> or accept_message_api_code = #{acceptMessageApiCode} </if> <if test="remark != null and remark != ''"> or remark = #{remark} </if> <if test="status != null and status != ''"> or status = #{status} </if> - <if test="recipientId != null and recipientId != ''"> or recipient_id = #{recipientId} </if> + <if test="recipientIdList != null and recipientIdList != ''"> or recipient_id_list = #{recipientIdList} </if> and sts='Y' </trim> <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> @@ -170,12 +177,12 @@ <if test="org_id != null and org_id != ''"> org_id , </if> <if test="companyId != null and companyId != ''"> company_id , </if> <if test="messageTemplateId != null and messageTemplateId != ''"> message_template_id , </if> - <if test="appId != null and appId != ''"> app_id , </if> + <if test="appIdList != null and appIdList != ''"> app_id_list , </if> <if test="warningAppId != null and warningAppId != ''"> warning_app_id , </if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> accept_message_api_code , </if> <if test="remark != null and remark != ''"> remark , </if> <if test="status != null and status != ''"> status , </if> - <if test="recipientId != null and recipientId != ''"> recipient_id , </if> + <if test="recipientIdList != null and recipientIdList != ''"> recipient_id_list , </if> <if test="sts == null ">sts,</if> </trim> )values( @@ -190,30 +197,30 @@ <if test="org_id != null and org_id != ''"> #{org_id} ,</if> <if test="companyId != null and companyId != ''"> #{companyId} ,</if> <if test="messageTemplateId != null and messageTemplateId != ''"> #{messageTemplateId} ,</if> - <if test="appId != null and appId != ''"> #{appId} ,</if> + <if test="appIdList != null and appIdList != ''"> #{appIdList} ,</if> <if test="warningAppId != null and warningAppId != ''"> #{warningAppId} ,</if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> #{acceptMessageApiCode} ,</if> <if test="remark != null and remark != ''"> #{remark} ,</if> <if test="status != null and status != ''"> #{status} ,</if> - <if test="recipientId != null and recipientId != ''"> #{recipientId} ,</if> + <if test="recipientIdList != null and recipientIdList != ''"> #{recipientIdList} ,</if> <if test="sts == null ">'Y',</if> </trim> ) </insert> <!-- 批量新增 --> <insert id="entityInsertBatch" keyProperty="id" useGeneratedKeys="true"> - insert into sys_warning_config(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, message_template_id, app_id, warning_app_id, accept_message_api_code, remark, status, recipient_id, sts) + insert into sys_warning_config(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, message_template_id, app_id_list, warning_app_id, accept_message_api_code, remark, status, recipient_id_list, sts) values <foreach collection="entities" item="entity" separator=","> - (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.messageTemplateId},#{entity.appId},#{entity.warningAppId},#{entity.acceptMessageApiCode},#{entity.remark},#{entity.status},#{entity.recipientId}, 'Y') + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.messageTemplateId},#{entity.appIdList},#{entity.warningAppId},#{entity.acceptMessageApiCode},#{entity.remark},#{entity.status},#{entity.recipientIdList}, 'Y') </foreach> </insert> <!-- 批量新增或者修改--> <insert id="entityInsertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> - insert into sys_warning_config(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, message_template_id, app_id, warning_app_id, accept_message_api_code, remark, status, recipient_id) + insert into sys_warning_config(create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id, message_template_id, app_id_list, warning_app_id, accept_message_api_code, remark, status, recipient_id_list) values <foreach collection="entities" item="entity" separator=","> - (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.messageTemplateId},#{entity.appId},#{entity.warningAppId},#{entity.acceptMessageApiCode},#{entity.remark},#{entity.status},#{entity.recipientId}) + (#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId},#{entity.messageTemplateId},#{entity.appIdList},#{entity.warningAppId},#{entity.acceptMessageApiCode},#{entity.remark},#{entity.status},#{entity.recipientIdList}) </foreach> on duplicate key update create_user_id = values(create_user_id), @@ -224,12 +231,12 @@ org_id = values(org_id), company_id = values(company_id), message_template_id = values(message_template_id), - app_id = values(app_id), + app_id_list = values(app_id_list), warning_app_id = values(warning_app_id), accept_message_api_code = values(accept_message_api_code), remark = values(remark), status = values(status), - recipient_id = values(recipient_id)</insert> + recipient_id_list = values(recipient_id_list)</insert> <!--通过主键修改方法--> <update id="entity_update" parameterType = "com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity" > update sys_warning_config set @@ -242,12 +249,12 @@ update sys_warning_config set <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if> <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if> <if test="messageTemplateId != null and messageTemplateId != ''"> message_template_id = #{messageTemplateId},</if> - <if test="appId != null and appId != ''"> app_id = #{appId},</if> + <if test="appIdList != null and appIdList != ''"> app_id_list = #{appIdList},</if> <if test="warningAppId != null and warningAppId != ''"> warning_app_id = #{warningAppId},</if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> accept_message_api_code = #{acceptMessageApiCode},</if> <if test="remark != null and remark != ''"> remark = #{remark},</if> <if test="status != null and status != ''"> status = #{status},</if> - <if test="recipientId != null and recipientId != ''"> recipient_id = #{recipientId},</if> + <if test="recipientIdList != null and recipientIdList != ''"> recipient_id_list = #{recipientIdList},</if> </trim> where id = #{id} </update> @@ -265,12 +272,12 @@ update sys_warning_config set sts= 'N' ,modify_time = #{modify_time},modify_use <if test="sts != null and sts != ''"> and sts = #{sts} </if> <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if> <if test="messageTemplateId != null and messageTemplateId != ''"> and message_template_id = #{messageTemplateId} </if> - <if test="appId != null and appId != ''"> and app_id = #{appId} </if> + <if test="appIdList != null and appIdList != ''"> and app_id_list = #{appIdList} </if> <if test="warningAppId != null and warningAppId != ''"> and warning_app_id = #{warningAppId} </if> <if test="acceptMessageApiCode != null and acceptMessageApiCode != ''"> and accept_message_api_code = #{acceptMessageApiCode} </if> <if test="remark != null and remark != ''"> and remark = #{remark} </if> <if test="status != null and status != ''"> and status = #{status} </if> - <if test="recipientId != null and recipientId != ''"> and recipient_id = #{recipientId} </if> + <if test="recipientIdList != null and recipientIdList != ''"> and recipient_id_list = #{recipientIdList} </if> and sts='Y' </trim> </update> diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/service/impl/SysWarningConfigServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/service/impl/SysWarningConfigServiceImpl.java index 7634e93f..541d44f1 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/service/impl/SysWarningConfigServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningConfig/service/impl/SysWarningConfigServiceImpl.java @@ -1,11 +1,22 @@ package com.hzya.frame.sysnew.warningConfig.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.hzya.frame.sysnew.application.dao.ISysApplicationDao; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.messageTemplate.dao.ISysMessageTemplateDao; +import com.hzya.frame.sysnew.messageTemplate.entity.SysMessageTemplateEntity; +import com.hzya.frame.sysnew.person.dao.ISysPersonDao; +import com.hzya.frame.sysnew.person.entity.SysPersonEntity; +import com.hzya.frame.sysnew.user.dao.ISysUserDao; +import com.hzya.frame.sysnew.user.entity.SysUserEntity; import com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity; import com.hzya.frame.sysnew.warningConfig.dao.ISysWarningConfigDao; import com.hzya.frame.sysnew.warningConfig.service.ISysWarningConfigService; +import com.hzya.frame.sysnew.warningInterface.dao.ISysWarningInterfaceDao; +import com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.springframework.stereotype.Service; @@ -13,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import com.hzya.frame.basedao.service.impl.BaseService; +import java.util.ArrayList; import java.util.List; /** @@ -23,7 +35,20 @@ import java.util.List; */ @Service(value = "sysWarningConfigService") public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEntity, String> implements ISysWarningConfigService { - + + @Resource + private ISysWarningInterfaceDao sysWarningInterfaceDao; + @Resource + private ISysUserDao sysUserDao; + @Resource + private ISysPersonDao sysPersonDao; + + @Resource + private ISysApplicationDao sysApplicationDao; + + @Resource + private ISysMessageTemplateDao sysMessageTemplateDao; + private ISysWarningConfigDao sysWarningConfigDao; @Autowired @@ -40,7 +65,9 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt } PageHelper.startPage(entity.getPageNum(), entity.getPageSize()); List<SysWarningConfigEntity> list = sysWarningConfigDao.queryByLike(entity); - PageInfo pageInfo = new PageInfo(list); + //查询并记录应用名称、预警应用名称、接收者名称列表 + List<SysWarningConfigEntity> resultList = queryNameList(list); + PageInfo pageInfo = new PageInfo(resultList); return BaseResult.getSuccessMessageEntity("查询数据成功",pageInfo); } @@ -51,8 +78,11 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt entity = new SysWarningConfigEntity(); } List<SysWarningConfigEntity> list = sysWarningConfigDao.queryByLike(entity); - return BaseResult.getSuccessMessageEntity("查询数据成功",list); + //查询并记录应用名称、预警应用名称、接收者名称列表 + List<SysWarningConfigEntity> resultList = queryNameList(list); + return BaseResult.getSuccessMessageEntity("查询数据成功",resultList); } + /**查询应用名称、预警应用名称、接收者名称列表*/ @Override public JsonResultEntity getEntity(JSONObject jsonObject){ @@ -63,23 +93,51 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt if(entity.getId() == null || "".equals(entity.getId())){ return BaseResult.getFailureMessageEntity("系统错误"); } + //查询主表信息 entity = sysWarningConfigDao.get(entity.getId()); if(entity == null){ return BaseResult.getFailureMessageEntity("获取预警配置失败"); } - return BaseResult.getSuccessMessageEntity("获取预警配置成功",entity); + List<SysWarningConfigEntity> list = new ArrayList<>(); + list.add(entity); + //查询并记录应用名称、预警应用名称、接收者名称列表 + List<SysWarningConfigEntity> resultList = queryNameList(list); + String warningConfigId = resultList.get(0).getId(); + //查询子表信息 + SysWarningInterfaceEntity interfaceEntity = new SysWarningInterfaceEntity(); + interfaceEntity.setWarningConfigId(warningConfigId); + List<SysWarningInterfaceEntity> interfaceList = sysWarningInterfaceDao.queryByLike(interfaceEntity); + //拼接主子表信息并返回 + JSONObject father = (JSONObject) JSONObject.toJSON(resultList.get(0)); + JSONArray sonArray = new JSONArray(); + for(SysWarningInterfaceEntity interfaceOne : interfaceList){ + JSONObject interfaceJson = (JSONObject) JSONObject.toJSON(interfaceOne); + sonArray.add(interfaceJson); + } + JSONObject resultJson = new JSONObject(); + resultJson.put("father", father); + resultJson.put("son", sonArray); + return BaseResult.getSuccessMessageEntity("获取预警配置成功",resultJson); } @Override public JsonResultEntity saveEntity(JSONObject jsonObject){ - SysWarningConfigEntity entity = getData("jsonStr", jsonObject, SysWarningConfigEntity.class); + JSONObject jsonStr = jsonObject.getJSONObject("jsonStr"); + JSONArray sonArray = jsonStr.getJSONArray("son"); + List<SysWarningInterfaceEntity> interfaceEntities = new ArrayList<>(); + for(int i=0;i<sonArray.size();i++){ + String sonString = sonArray.getJSONObject(i).toString(); + SysWarningInterfaceEntity interfaceEntity = getData(sonString,SysWarningInterfaceEntity.class); + interfaceEntities.add(interfaceEntity); + } + SysWarningConfigEntity entity = getData("father", jsonStr, SysWarningConfigEntity.class); if(entity == null){ return BaseResult.getFailureMessageEntity("参数不允许为空"); } if(entity.getMessageTemplateId() == null || "".equals(entity.getMessageTemplateId())){ - return BaseResult.getFailureMessageEntity("消息模版不允许为空"); + return BaseResult.getFailureMessageEntity("消息模版id不允许为空"); } - if(entity.getAppId() == null || "".equals(entity.getAppId())){ + if(entity.getAppIdList() == null || "".equals(entity.getAppIdList())){ return BaseResult.getFailureMessageEntity("应用ID不允许为空"); } if(entity.getWarningAppId() == null || "".equals(entity.getWarningAppId())){ @@ -88,27 +146,59 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt if(entity.getStatus() == null || "".equals(entity.getStatus())){ return BaseResult.getFailureMessageEntity("状态不允许为空"); } - if(entity.getRecipientId() == null || "".equals(entity.getRecipientId())){ + if(entity.getRecipientIdList() == null || "".equals(entity.getRecipientIdList())){ return BaseResult.getFailureMessageEntity("接收者ID不允许为空"); } + //检查接收者是否合规 + String checkResult = checkRecipients(entity); + if(!"success".equals(checkResult)){ + return BaseResult.getFailureMessageEntity(checkResult); + } + entity.setCreate(); + String warningConfigId = entity.getId(); sysWarningConfigDao.save(entity); + for(SysWarningInterfaceEntity interfaceEntity : interfaceEntities){ + interfaceEntity.setWarningConfigId(warningConfigId); + if(interfaceEntity.getApiCode() == null || "".equals(interfaceEntity.getApiCode())){ + return BaseResult.getFailureMessageEntity("接口编码不能为空"); + } + if(interfaceEntity.getPushMethod() == null || "".equals(interfaceEntity.getPushMethod())){ + return BaseResult.getFailureMessageEntity("推送方式不能为空"); + } + if(interfaceEntity.getStatus() == null || "".equals(interfaceEntity.getStatus())){ + return BaseResult.getFailureMessageEntity("状态不能为空"); + } + if(interfaceEntity.getWarningConfigId() == null || "".equals(interfaceEntity.getWarningConfigId())){ + return BaseResult.getFailureMessageEntity("预警配置id不能为空"); + } + interfaceEntity.setCreate(); + sysWarningInterfaceDao.save(interfaceEntity); + } return BaseResult.getSuccessMessageEntity("保存预警配置成功",entity); } @Override public JsonResultEntity updateEntity(JSONObject jsonObject){ - SysWarningConfigEntity entity = getData("jsonStr", jsonObject, SysWarningConfigEntity.class); - if (entity == null) { + JSONObject jsonStr = jsonObject.getJSONObject("jsonStr"); + JSONArray sonArray = jsonStr.getJSONArray("son"); + List<SysWarningInterfaceEntity> interfaceEntities = new ArrayList<>(); + for(int i=0;i<sonArray.size();i++){ + String sonString = sonArray.getJSONObject(i).toString(); + SysWarningInterfaceEntity interfaceEntity = getData(sonString,SysWarningInterfaceEntity.class); + interfaceEntities.add(interfaceEntity); + } + SysWarningConfigEntity entity = getData("father", jsonStr, SysWarningConfigEntity.class); + if(entity == null){ return BaseResult.getFailureMessageEntity("参数不允许为空"); } - if (entity.getId() == null || "".equals(entity.getId())) { + if(entity.getId() == null || "".equals(entity.getId())){ return BaseResult.getFailureMessageEntity("系统错误"); } if(entity.getMessageTemplateId() == null || "".equals(entity.getMessageTemplateId())){ - return BaseResult.getFailureMessageEntity("消息模版不允许为空"); + return BaseResult.getFailureMessageEntity("消息模版id不允许为空"); } - if(entity.getAppId() == null || "".equals(entity.getAppId())){ + if(entity.getAppIdList() == null || "".equals(entity.getAppIdList())){ return BaseResult.getFailureMessageEntity("应用ID不允许为空"); } if(entity.getWarningAppId() == null || "".equals(entity.getWarningAppId())){ @@ -117,14 +207,68 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt if(entity.getStatus() == null || "".equals(entity.getStatus())){ return BaseResult.getFailureMessageEntity("状态不允许为空"); } - if(entity.getRecipientId() == null || "".equals(entity.getRecipientId())){ + if(entity.getRecipientIdList() == null || "".equals(entity.getRecipientIdList())){ return BaseResult.getFailureMessageEntity("接收者ID不允许为空"); } + //检查接收者是否合规 + String checkResult = checkRecipients(entity); + if(!"success".equals(checkResult)){ + return BaseResult.getFailureMessageEntity(checkResult); + } entity.setUpdate(); + String warningConfigId = entity.getId(); sysWarningConfigDao.update(entity); + //先查询现有的子表数据并记录 + SysWarningInterfaceEntity oldInterfaceEntity = new SysWarningInterfaceEntity(); + oldInterfaceEntity.setWarningConfigId(warningConfigId); + List<SysWarningInterfaceEntity> oldInterfaceList = sysWarningInterfaceDao.queryBase(oldInterfaceEntity); + //更新子表数据 + for(SysWarningInterfaceEntity interfaceEntity : interfaceEntities){ + interfaceEntity.setWarningConfigId(warningConfigId); + if(interfaceEntity.getApiCode() == null || "".equals(interfaceEntity.getApiCode())){ + return BaseResult.getFailureMessageEntity("接口编码不能为空"); + } + if(interfaceEntity.getPushMethod() == null || "".equals(interfaceEntity.getPushMethod())){ + return BaseResult.getFailureMessageEntity("推送方式不能为空"); + } + if(interfaceEntity.getStatus() == null || "".equals(interfaceEntity.getStatus())){ + return BaseResult.getFailureMessageEntity("状态不能为空"); + } + if(interfaceEntity.getWarningConfigId() == null || "".equals(interfaceEntity.getWarningConfigId())){ + return BaseResult.getFailureMessageEntity("预警配置id不能为空"); + } + if(interfaceEntity.getId() == null || "".equals(interfaceEntity.getId())){ + //新增 + interfaceEntity.setCreate(); + sysWarningInterfaceDao.save(interfaceEntity); + }else{ + //修改 + interfaceEntity.setUpdate(); + interfaceEntity.setSts("Y"); + sysWarningInterfaceDao.update(interfaceEntity); + } + } + //删除多余的子表数据 + boolean isDelete = true; + for(SysWarningInterfaceEntity oldInterface : oldInterfaceList){ + isDelete = true; + for(SysWarningInterfaceEntity interfaceEntity : interfaceEntities){ + if(oldInterface.getId().equals(interfaceEntity.getId())){ + isDelete = false; + break; + } + } + if(isDelete){ + sysWarningInterfaceDao.logicRemove(oldInterface); + } + + } + return BaseResult.getSuccessMessageEntity("修改预警配置成功",entity); } + /** + * 删除主表时,同时删除子表数据*/ @Override public JsonResultEntity deleteEntity(JSONObject jsonObject) { SysWarningConfigEntity entity = getData("jsonStr", jsonObject, SysWarningConfigEntity.class); @@ -134,8 +278,14 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt if (entity.getId() == null || "".equals(entity.getId())) { return BaseResult.getFailureMessageEntity("系统错误"); } + //先删除子表中对应数据,在删除主表数据 + SysWarningInterfaceEntity interfaceEntity = new SysWarningInterfaceEntity(); + interfaceEntity.setWarningConfigId(entity.getId()); + sysWarningInterfaceDao.logicRemoveMultiCondition(interfaceEntity); + entity.setUpdate(); sysWarningConfigDao.logicRemove(entity); + return BaseResult.getSuccessMessageEntity("删除预警配置成功"); } @@ -146,22 +296,108 @@ public class SysWarningConfigServiceImpl extends BaseService<SysWarningConfigEnt return BaseResult.getFailureMessageEntity("参数不允许为空"); } if (entity.getId() == null || "".equals(entity.getId())) { - return BaseResult.getFailureMessageEntity("系统错误"); + return BaseResult.getFailureMessageEntity("id不能为空"); } if (entity.getStatus() == null || "".equals(entity.getStatus())) { - return BaseResult.getFailureMessageEntity("系统错误"); + return BaseResult.getFailureMessageEntity("状态不能为空"); } - //0启用,1禁用 + if(entity.getMessageTemplateId() == null || "".equals(entity.getMessageTemplateId())){ + return BaseResult.getFailureMessageEntity("消息模版id不允许为空"); + } + //0停用,1启用 if("0".equals(entity.getStatus())){ entity.setUpdate(); sysWarningConfigDao.update(entity); - return BaseResult.getSuccessMessageEntity("启用模版成功"); + return BaseResult.getSuccessMessageEntity("停用模版成功"); }else{ - //停用消息模版 + //校验该预警设置的消息模版是否为启用状态 + SysMessageTemplateEntity templateEntity = sysMessageTemplateDao.get(entity.getMessageTemplateId()); + if(templateEntity == null){ + return BaseResult.getFailureMessageEntity("消息模版不存在"); + } + if(!"1".equals(templateEntity.getState())){ + return BaseResult.getFailureMessageEntity("该预警设置的消息模版未启用,请先启用"); + } entity.setUpdate(); sysWarningConfigDao.update(entity); - return BaseResult.getSuccessMessageEntity("停用模版成功"); + return BaseResult.getSuccessMessageEntity("启用模版成功"); } } + public String checkRecipients(SysWarningConfigEntity entity){ + String recipientIds = entity.getRecipientIdList(); + String[] recipientIdList = recipientIds.split(","); + SysUserEntity userEntity = new SysUserEntity(); + + for(String recipientId : recipientIdList){ + String personName = sysPersonDao.get(recipientId).getPersonName(); + + userEntity.setPersonId(recipientId); + SysUserEntity usefulEntity = sysUserDao.queryOne(userEntity); + if(usefulEntity == null){ + return "接收人"+personName+"不存在账号"; + } + //预警应用只有一个的情况下 + switch (entity.getWarningAppId()){ + case "7ebc1702511f463d9cf50162973bf935": + String ddUserId = usefulEntity.getDdUserId(); + if(ddUserId == null || "".equals(ddUserId)){ + return "接收人"+personName+"未配置钉钉用户id"; + } + break; + default: + return "预警应用类型错误"; + } + } + return "success"; + } + + public List<SysWarningConfigEntity> queryNameList(List<SysWarningConfigEntity> list){ + for(SysWarningConfigEntity configEntity : list){ + //拼接应用名称列表 + String appIds = configEntity.getAppIdList(); + String[] appIdList = appIds.split(","); + String appNameList = ""; + for(String appId : appIdList){ + SysApplicationEntity appEntity = sysApplicationDao.get(appId); + String appName = appEntity.getName(); + if(!"".equals(appNameList)){ + appNameList += ","; + } + appNameList += appName; + } + configEntity.setAppNameList(appNameList); + //拼接预警应用名称列表 + String warningAppIds = configEntity.getWarningAppId(); + String[] warningAppIdList = warningAppIds.split(","); + String warningAppNameList = ""; + for(String warningAppId : warningAppIdList){ + SysApplicationEntity warningAppEntity = sysApplicationDao.get(warningAppId); + String warningAppName = warningAppEntity.getName(); + if(!"".equals(warningAppNameList)){ + warningAppNameList += ","; + } + warningAppNameList += warningAppName; + } + configEntity.setWarningAppNameList(warningAppNameList); + //拼接接收者名称列表 + String recipientIds = configEntity.getRecipientIdList(); + String[] recipientIdList = recipientIds.split(","); + String recipientNameList = ""; + for(String recipientId : recipientIdList){ +// SysUserEntity userEntity = sysUserDao.get(recipientId); +// String personId = userEntity.getPersonId(); + SysPersonEntity personEntity = sysPersonDao.get(recipientId); + String recipientName = personEntity.getPersonName(); + if(!"".equals(recipientNameList)){ + recipientNameList += ","; + } + recipientNameList += recipientName; + } + configEntity.setRecipientNameList(recipientNameList); + + } + return list; + } + } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/ISysWarningInterfaceDao.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/ISysWarningInterfaceDao.java index 544241f6..61a64efa 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/ISysWarningInterfaceDao.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/ISysWarningInterfaceDao.java @@ -1,7 +1,9 @@ package com.hzya.frame.sysnew.warningInterface.dao; import com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity; -import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; /** * 预警接口表(sys_warning_interface: table)表数据库访问层 @@ -11,5 +13,6 @@ import com.hzya.frame.basedao.dao.IBaseDao; */ public interface ISysWarningInterfaceDao extends IBaseDao<SysWarningInterfaceEntity, String> { + List<SysWarningInterfaceEntity> getWarningAppList(); } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/impl/SysWarningInterfaceDaoImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/impl/SysWarningInterfaceDaoImpl.java index 655eb183..fdcbb1f2 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/impl/SysWarningInterfaceDaoImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/dao/impl/SysWarningInterfaceDaoImpl.java @@ -4,6 +4,9 @@ import com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity; import com.hzya.frame.sysnew.warningInterface.dao.ISysWarningInterfaceDao; import org.springframework.stereotype.Repository; import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + /** * 预警接口表(SysWarningInterface)表数据库访问层 * @@ -12,6 +15,10 @@ import com.hzya.frame.basedao.dao.MybatisGenericDao; */ @Repository(value = "SysWarningInterfaceDaoImpl") public class SysWarningInterfaceDaoImpl extends MybatisGenericDao<SysWarningInterfaceEntity, String> implements ISysWarningInterfaceDao{ - + @Override + public List<SysWarningInterfaceEntity> getWarningAppList(){ + List tempList = (List<SysWarningInterfaceEntity>)super.selectList(getSqlIdPrifx() + "warning_app_list", null); + return tempList; + } } diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.java index fa2181c9..c9abb5c7 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.java @@ -9,7 +9,11 @@ import com.hzya.frame.web.entity.BaseEntity; * @since 2024-09-03 10:06:19 */ public class SysWarningInterfaceEntity extends BaseEntity { - + + /** 应用id */ + private String appId; + /** 应用名称 */ + private String appName; /** 公司id */ private String companyId; /** api名称 */ @@ -23,6 +27,21 @@ public class SysWarningInterfaceEntity extends BaseEntity { /** 主表id(预警配置表id) */ private String warningConfigId; + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } public String getCompanyId() { return companyId; diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.xml b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.xml index 663e7cd1..f43f9f82 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.xml +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/entity/SysWarningInterfaceEntity.xml @@ -17,7 +17,10 @@ <result property="pushMethod" column="push_method" jdbcType="VARCHAR"/> <result property="status" column="status" jdbcType="VARCHAR"/> <result property="warningConfigId" column="warning_config_id" jdbcType="VARCHAR"/> + <result property="appId" column="app_id" jdbcType="VARCHAR"/> + <result property="appName" column="app_name" jdbcType="VARCHAR"/> </resultMap> + <!-- 查询的字段--> <sql id = "SysWarningInterfaceEntity_Base_Column_List"> id @@ -33,7 +36,8 @@ ,api_code ,push_method ,status - ,warning_config_id + ,warning_config_id + ,app_id </sql> <!-- 查询 采用==查询 --> <select id="entity_list_base" resultMap="get-SysWarningInterfaceEntity-result" parameterType = "com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity"> @@ -85,29 +89,50 @@ <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if> </select> + <select id = "warning_app_list" resultMap="get-SysWarningInterfaceEntity-result" > + select distinct app_id from sys_warning_interface where sts='Y' + </select> + <!-- 分页查询列表 采用like格式 --> <select id="entity_list_like" resultMap="get-SysWarningInterfaceEntity-result" parameterType = "com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity"> select - <include refid="SysWarningInterfaceEntity_Base_Column_List" /> - from sys_warning_interface + i.id + ,i.sorts + ,i.create_user_id + ,i.create_time + ,i.modify_user_id + ,i.modify_time + ,i.sts + ,i.org_id + ,i.company_id + ,i.api_name + ,i.api_code + ,i.push_method + ,i.status + ,i.warning_config_id + ,i.app_id + ,app.name as app_name + from sys_warning_interface i + left join sys_application app on app.id = i.app_id <trim prefix="where" prefixOverrides="and"> - <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if> - <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if> - <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if> - <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if> - <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if> - <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if> - <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if> - <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if> - <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if> - <if test="apiName != null and apiName != ''"> and api_name like concat('%',#{apiName},'%') </if> - <if test="apiCode != null and apiCode != ''"> and api_code like concat('%',#{apiCode},'%') </if> - <if test="pushMethod != null and pushMethod != ''"> and push_method like concat('%',#{pushMethod},'%') </if> - <if test="status != null and status != ''"> and status like concat('%',#{status},'%') </if> - <if test="warningConfigId != null and warningConfigId != ''"> and warning_config_id like concat('%',#{warningConfigId},'%') </if> - and sts='Y' + <if test="id != null and id != ''"> and i.id like concat('%',#{id},'%') </if> + <if test="sorts != null"> and i.sorts like concat('%',#{sorts},'%') </if> + <if test="create_user_id != null and create_user_id != ''"> and i.create_user_id like concat('%',#{create_user_id},'%') </if> + <if test="create_time != null"> and i.create_time like concat('%',#{create_time},'%') </if> + <if test="modify_user_id != null and modify_user_id != ''"> and i.modify_user_id like concat('%',#{modify_user_id},'%') </if> + <if test="modify_time != null"> and i.modify_time like concat('%',#{modify_time},'%') </if> + <if test="sts != null and sts != ''"> and i.sts like concat('%',#{sts},'%') </if> + <if test="org_id != null and org_id != ''"> and i.org_id like concat('%',#{org_id},'%') </if> + <if test="companyId != null and companyId != ''"> and i.company_id like concat('%',#{companyId},'%') </if> + <if test="apiName != null and apiName != ''"> and i.api_name like concat('%',#{apiName},'%') </if> + <if test="apiCode != null and apiCode != ''"> and i.api_code like concat('%',#{apiCode},'%') </if> + <if test="pushMethod != null and pushMethod != ''"> and i.push_method like concat('%',#{pushMethod},'%') </if> + <if test="status != null and status != ''"> and i.status like concat('%',#{status},'%') </if> + <if test="warningConfigId != null and warningConfigId != ''"> and i.warning_config_id like concat('%',#{warningConfigId},'%') </if> + and i.sts='Y' + and app.sts='Y' </trim> - <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if> + <if test=" sort == null or sort == ''.toString() "> order by i.sorts asc</if> <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if> </select> @@ -155,6 +180,7 @@ <if test="pushMethod != null and pushMethod != ''"> push_method , </if> <if test="status != null and status != ''"> status , </if> <if test="warningConfigId != null and warningConfigId != ''"> warning_config_id , </if> + <if test="appId != null and appId != ''" > app_id ,</if> <if test="sts == null ">sts,</if> </trim> )values( @@ -173,6 +199,7 @@ <if test="pushMethod != null and pushMethod != ''"> #{pushMethod} ,</if> <if test="status != null and status != ''"> #{status} ,</if> <if test="warningConfigId != null and warningConfigId != ''"> #{warningConfigId} ,</if> + <if test="appId != null and appId != ''" > #{appId} ,</if> <if test="sts == null ">'Y',</if> </trim> ) diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/ISysWarningInterfaceService.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/ISysWarningInterfaceService.java index 09f2ff30..b8514bc7 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/ISysWarningInterfaceService.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/ISysWarningInterfaceService.java @@ -17,6 +17,8 @@ public interface ISysWarningInterfaceService extends IBaseService<SysWarningInte JsonResultEntity queryEntity(JSONObject jsonObject); + JsonResultEntity queryWarningAppList(JSONObject jsonObject); + JsonResultEntity saveEntity(JSONObject jsonObject); JsonResultEntity getEntity(JSONObject jsonObject); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/impl/SysWarningInterfaceServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/impl/SysWarningInterfaceServiceImpl.java index 70c2e1eb..60f37230 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/impl/SysWarningInterfaceServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/warningInterface/service/impl/SysWarningInterfaceServiceImpl.java @@ -3,6 +3,12 @@ package com.hzya.frame.sysnew.warningInterface.service.impl; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.hzya.frame.sysnew.application.dao.ISysApplicationDao; +import com.hzya.frame.sysnew.application.entity.SysApplicationDto; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.service.impl.ApplicationCache; +import com.hzya.frame.sysnew.sendMessageLog.dao.ISysSendMessageLogDao; +import com.hzya.frame.sysnew.sendMessageLog.entity.SysSendMessageLogEntity; import com.hzya.frame.sysnew.warningConfig.entity.SysWarningConfigEntity; import com.hzya.frame.sysnew.warningInterface.entity.SysWarningInterfaceEntity; import com.hzya.frame.sysnew.warningInterface.dao.ISysWarningInterfaceDao; @@ -14,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import com.hzya.frame.basedao.service.impl.BaseService; +import java.util.ArrayList; import java.util.List; /** @@ -26,7 +33,14 @@ import java.util.List; public class SysWarningInterfaceServiceImpl extends BaseService<SysWarningInterfaceEntity, String> implements ISysWarningInterfaceService { private ISysWarningInterfaceDao sysWarningInterfaceDao; - + + @Resource + private ISysApplicationDao sysApplicationDao; + + @Resource + private ISysSendMessageLogDao sysSendMessageLogDao; + + @Autowired public void setSysWarningInterfaceDao(ISysWarningInterfaceDao dao) { this.sysWarningInterfaceDao = dao; @@ -75,10 +89,7 @@ public class SysWarningInterfaceServiceImpl extends BaseService<SysWarningInterf public JsonResultEntity saveEntity(JSONObject jsonObject){ SysWarningInterfaceEntity entity = getData("jsonStr", jsonObject, SysWarningInterfaceEntity.class); if(entity == null){ - return BaseResult.getFailureMessageEntity("查询参数不存在"); - } - if(entity.getId() == null || "".equals(entity.getId())){ - return BaseResult.getFailureMessageEntity("系统错误"); + return BaseResult.getFailureMessageEntity("未传入保存参数"); } if(entity.getApiCode() == null || "".equals(entity.getApiCode())){ return BaseResult.getFailureMessageEntity("接口编码不能为空"); @@ -150,18 +161,44 @@ public class SysWarningInterfaceServiceImpl extends BaseService<SysWarningInterf if (entity.getStatus() == null || "".equals(entity.getStatus())) { return BaseResult.getFailureMessageEntity("系统错误"); } - //0启用,1禁用 + //0停用,1启用 if("0".equals(entity.getStatus())){ entity.setUpdate(); sysWarningInterfaceDao.update(entity); - return BaseResult.getSuccessMessageEntity("启用模版成功"); + return BaseResult.getSuccessMessageEntity("停用预警接口成功"); }else{ //停用消息模版 entity.setUpdate(); sysWarningInterfaceDao.update(entity); - return BaseResult.getSuccessMessageEntity("停用模版成功"); + return BaseResult.getSuccessMessageEntity("启用预警接口成功"); } } + /**查询已经配置了预警的应用列表,并返回应用列表及其未读消息数*/ + @Override + public JsonResultEntity queryWarningAppList(JSONObject jsonObject){ + List<SysWarningInterfaceEntity> appIdList = sysWarningInterfaceDao.getWarningAppList(); + List<SysApplicationEntity> appList = new ArrayList<>(); + for (SysWarningInterfaceEntity entity : appIdList) { + if (entity == null) { + continue; + } + String appId = entity.getAppId(); + SysApplicationEntity app = sysApplicationDao.get(appId); + if (app == null) { + continue; + } + SysSendMessageLogEntity logEntity = new SysSendMessageLogEntity(); + logEntity.setAppId(appId); + logEntity.setState(0); + List<SysSendMessageLogEntity> list = sysSendMessageLogDao.queryByLike(logEntity); + app.setNewMessageCount(list.size()); + if (app != null) { + appList.add(app); + } + } + return BaseResult.getSuccessMessageEntity("查询预警应用列表成功",appList); + } + } diff --git a/base-service/src/main/java/com/hzya/frame/web/aop/BindUserIdAop.java b/base-service/src/main/java/com/hzya/frame/web/aop/BindUserIdAop.java index ba79308d..ae6c0199 100644 --- a/base-service/src/main/java/com/hzya/frame/web/aop/BindUserIdAop.java +++ b/base-service/src/main/java/com/hzya/frame/web/aop/BindUserIdAop.java @@ -10,6 +10,7 @@ import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -38,6 +39,9 @@ public class BindUserIdAop { if (StpUtil.isLogin()) { Object loginId = StpUtil.getLoginId(); Object obj = objs[0]; + // 获取方法签名 + MethodSignature signature = (MethodSignature) point.getSignature(); + String methodName = signature.getName(); if (obj instanceof HashMap) { ((HashMap<String,Object>) obj).put("create_user_id",loginId); ((HashMap<String,Object>) obj).put("modify_user_id",loginId); @@ -51,20 +55,24 @@ public class BindUserIdAop { jsonStrObj = JSON.parseObject(jsonStr); } if(null != jsonStrObj){ - if (jsonStrObj.getString("create_user_id") == null) { - jsonStrObj.put("create_user_id",loginId); - } + //如果是update的方法,则不处理create_user_id 和 create_time if (jsonStrObj.getString("modify_user_id") == null) { jsonStrObj.put("modify_user_id",loginId); } - if (jsonStrObj.getString("create_time") == null) { - jsonStrObj.put("create_time",DateUtil.now()); - } if (jsonStrObj.getString("modify_time") == null) { jsonStrObj.put("modify_time",DateUtil.now()); } - if (jsonStrObj.getString("id") == null) { - jsonStrObj.put("id",UUIDLong.longUUID()); + //save方法才要赋值create_user_id 和 creat_time id + if (methodName.startsWith("save")){ + if (jsonStrObj.getString("create_user_id") == null) { + jsonStrObj.put("create_user_id",loginId); + } + if (jsonStrObj.getString("create_time") == null) { + jsonStrObj.put("create_time",DateUtil.now()); + } + if (jsonStrObj.getString("id") == null) { + jsonStrObj.put("id",UUIDLong.longUUID()); + } } }else{ jsonStrObj = new JSONObject(); diff --git a/base-webapp/pom.xml b/base-webapp/pom.xml index 6b3e13b4..7aafbde5 100644 --- a/base-webapp/pom.xml +++ b/base-webapp/pom.xml @@ -23,11 +23,11 @@ <!-- <artifactId>fw-bip</artifactId>--> <!-- <version>${revision}</version>--> <!-- </dependency>--> -<!-- <dependency>--> -<!-- <groupId>com.hzya.frame</groupId>--> -<!-- <artifactId>fw-cbs</artifactId>--> -<!-- <version>${revision}</version>--> -<!-- </dependency>--> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>fw-cbs</artifactId> + <version>${revision}</version> + </dependency> <!-- <dependency>--> <!-- <groupId>com.hzya.frame</groupId>--> <!-- <artifactId>fw-dd</artifactId>--> @@ -54,11 +54,11 @@ <!-- <artifactId>fw-ningbobank</artifactId>--> <!-- <version>${revision}</version>--> <!-- </dependency>--> -<!-- <dependency>--> -<!-- <groupId>com.hzya.frame</groupId>--> -<!-- <artifactId>fw-oa</artifactId>--> -<!-- <version>${revision}</version>--> -<!-- </dependency>--> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>fw-oa</artifactId> + <version>${revision}</version> + </dependency> <!-- <dependency>--> <!-- <groupId>com.hzya.frame</groupId>--> <!-- <artifactId>fw-u8</artifactId>--> @@ -76,7 +76,11 @@ <!-- <artifactId>fw-u9c</artifactId>--> <!-- <version>${revision}</version>--> <!-- </dependency>--> - +<!-- <dependency>--> +<!-- <groupId>com.hzya.frame</groupId>--> +<!-- <artifactId>fw-weixin</artifactId>--> +<!-- <version>${revision}</version>--> +<!-- </dependency>--> </dependencies> <build> diff --git a/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java b/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java index a48c72bf..253ef940 100644 --- a/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java +++ b/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java @@ -21,11 +21,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -106,7 +102,17 @@ public class EntranceController { logger.info("-------------------结束调用上传文件upload接口-------------------"); return jsonResultEntity; } - + /*** + * 文件上传接口 + * @param + * @return@@ + */ + @RequestMapping(value = "/fileUploadlist", method = RequestMethod.POST) + @ResponseBody + public JsonResultEntity fileUploadlist(MultipartFile[] file, FileUploadDto entity, ServletRequest servletRequest, ServletResponse servletResponse) { + entity.getBusinessType(); + return BaseResult.getSuccessMessageEntity("gc"); + } @RequestMapping(value = "/pluginfileUpload", method = RequestMethod.POST) @ResponseBody public JsonResultEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName, ServletRequest servletRequest, ServletResponse servletResponse) { @@ -199,6 +205,12 @@ public class EntranceController { return sysApplicationService.externalCallInterface(servletRequest,servletResponse); } + @RequestMapping(value = "/externalCallInterfacefileUpload") + @ResponseBody + public JsonResultEntity externalCallInterfacefileUpload(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { + return sysApplicationService.externalCallInterfacefileUpload(servletRequest,servletResponse); + } + @RequestMapping(value = "/externalCallInterfaceResend") @ResponseBody public JsonResultEntity externalCallInterfaceResend(SysMessageManageLogEntity resendLogEntity) throws Exception { diff --git a/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java b/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java index 9dec83c7..3370c059 100644 --- a/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java +++ b/base-webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java @@ -78,7 +78,7 @@ public class EntranceServiceImpl implements IEntranceService { if (m.getName().equals(serviceMethod.trim())) { if (m.getName().startsWith("thirdInterface")) {//TODO 后续可能要加强校验规则 logger.info("第三方接口,不校验是否登陆"); - }else if (!"doLogin".equals(m.getName())) { + }else if (!"doLogin".equals(m.getName())&& !"appDoLogin".equals(m.getName()) ) { try { StpUtil.checkLogin(); //校验当前登陆人是否有权限 @@ -117,8 +117,8 @@ public class EntranceServiceImpl implements IEntranceService { //} // 接口权限验证 结束 } catch (NotLoginException e) { - logger.error("token无效"); - return BaseResult.getFailureMessageEntity("token无效"); + logger.error("zt-token无效"); + return BaseResult.getFailureMessageEntity("zt-token无效"); } } JSONObject jsonObject = new JSONObject(); diff --git a/base-webapp/src/main/java/com/hzya/frame/webapp/web/corsconfig/CorsConfig.java b/base-webapp/src/main/java/com/hzya/frame/webapp/web/corsconfig/CorsConfig.java new file mode 100644 index 00000000..45ea4e9f --- /dev/null +++ b/base-webapp/src/main/java/com/hzya/frame/webapp/web/corsconfig/CorsConfig.java @@ -0,0 +1,24 @@ +package com.hzya.frame.webapp.web.corsconfig; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2024-09-14 17:10 + */ +@Configuration +public class CorsConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins("*") + .allowedMethods("GET", "POST", "PUT", "DELETE") + .allowedHeaders("*") + .allowCredentials(false); + } +} \ No newline at end of file diff --git a/base-webapp/src/main/java/com/hzya/frame/webapp/web/exception/ExceptionController.java b/base-webapp/src/main/java/com/hzya/frame/webapp/web/exception/ExceptionController.java index 3e966cf1..6488d4fd 100644 --- a/base-webapp/src/main/java/com/hzya/frame/webapp/web/exception/ExceptionController.java +++ b/base-webapp/src/main/java/com/hzya/frame/webapp/web/exception/ExceptionController.java @@ -63,13 +63,13 @@ public class ExceptionController { if (notLoginException.getType().equals(NotLoginException.NOT_TOKEN)) { message = "未提供token"; } else if (notLoginException.getType().equals(NotLoginException.INVALID_TOKEN)) { - message = "token无效"; + message = "zt-token无效"; } else if (notLoginException.getType().equals(NotLoginException.TOKEN_TIMEOUT)) { - message = "token已过期"; + message = "zt-token已过期"; } else if (notLoginException.getType().equals(NotLoginException.BE_REPLACED)) { - message = "token已被顶下线"; + message = "zt-token已被顶下线"; } else if (notLoginException.getType().equals(NotLoginException.KICK_OUT)) { - message = "token已被踢下线"; + message = "zt-token已被踢下线"; } else { message = "当前会话未登录"; } diff --git a/base-webapp/src/main/java/com/hzya/frame/webapp/web/filter/SaTokenConfigure.java b/base-webapp/src/main/java/com/hzya/frame/webapp/web/filter/SaTokenConfigure.java index b325e29f..3411d439 100644 --- a/base-webapp/src/main/java/com/hzya/frame/webapp/web/filter/SaTokenConfigure.java +++ b/base-webapp/src/main/java/com/hzya/frame/webapp/web/filter/SaTokenConfigure.java @@ -18,7 +18,7 @@ public class SaTokenConfigure { @Primary public SaTokenConfig getSaTokenConfigPrimary() { SaTokenConfig config = new SaTokenConfig(); - config.setTokenName("token"); // token名称 (同时也是cookie名称) + config.setTokenName("zt-token"); // token名称 (同时也是cookie名称) config.setTimeout(30 * 24 * 60 * 60); // token有效期,单位s 默认30天 config.setActivityTimeout(-1); // token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 config.setIsConcurrent(true); // 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) diff --git a/fw-cbs/pom.xml b/fw-cbs/pom.xml new file mode 100644 index 00000000..4bdeaccc --- /dev/null +++ b/fw-cbs/pom.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>kangarooDataCenterV3</artifactId> + <groupId>com.hzya.frame</groupId> + <version>${revision}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>fw-cbs</artifactId> + <packaging>jar</packaging> + <version>${revision}</version> + + <dependencies> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>base-service</artifactId> + <version>${revision}</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql-connector-java}</version> + </dependency> + + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <mainClass>none</mainClass> <!-- 取消查找本项目下的Main方法:为了解决Unable to find main class的问题 --> + <classifier>execute</classifier> <!-- 为了解决依赖模块找不到此模块中的类或属性 --> + <skip>true</skip> + </configuration> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayRequestDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayRequestDTO.java new file mode 100644 index 00000000..1a906cba --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayRequestDTO.java @@ -0,0 +1,32 @@ +package com.hzya.frame.cbs8.dto.req; + +import java.util.List; + +/** + * @Description 代发代扣请求参数 + * @Author xiangerlin + * @Date 2024/6/18 16:20 + **/ +public class AgentPayRequestDTO { + + //代发表头 + private PaymentApplySubmitReqDTO paymentApplySubmitReqDTO; + //代发明细 + private List<PaymentApplyAgentDTO> paymentApplyAgentDTO; + + public PaymentApplySubmitReqDTO getPaymentApplySubmitReqDTO() { + return paymentApplySubmitReqDTO; + } + + public void setPaymentApplySubmitReqDTO(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO) { + this.paymentApplySubmitReqDTO = paymentApplySubmitReqDTO; + } + + public List<PaymentApplyAgentDTO> getPaymentApplyAgentDTO() { + return paymentApplyAgentDTO; + } + + public void setPaymentApplyAgentDTO(List<PaymentApplyAgentDTO> paymentApplyAgentDTO) { + this.paymentApplyAgentDTO = paymentApplyAgentDTO; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayResultRequestDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayResultRequestDTO.java new file mode 100644 index 00000000..a4ef80c8 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/AgentPayResultRequestDTO.java @@ -0,0 +1,20 @@ +package com.hzya.frame.cbs8.dto.req; + +/** + * @Description 代发代扣详情查询请求参数 + * @Author xiangerlin + * @Date 2024/6/18 17:40 + **/ +public class AgentPayResultRequestDTO { + + //申请单编号。 代发代扣支付接口会返回这个单号的 + private String busNum; + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/ElecRequestDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/ElecRequestDTO.java new file mode 100644 index 00000000..f318d279 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/ElecRequestDTO.java @@ -0,0 +1,134 @@ +package com.hzya.frame.cbs8.dto.req; + +import java.util.List; + +/** + * @Description 电子回单查询请求参数 + * @Author xiangerlin + * @Date 2024/1/4 17:08 + **/ +public class ElecRequestDTO { + // 开始日期 + private String startDate; + + // 结束日期 + private String endDate; + + // 账号 + private String accountNo; + + // 币种列表 + private List<String> currencyList; + + // 银行类型列表 + private List<String> bankTypeList; + + // 回单文件状态 1-已取回 0-未取回 + private String billStatus; + + // 借贷 1-借 2-贷 + private String loanType; + + // 单位编码列表 + private List<String> unitCodeList; + + // 对账码列表 + private List<String> checkCodeList; + + // ERP业务参考号 + private String settleBusinessReferenceCode; + + public ElecRequestDTO(String settleBusinessReferenceCode) { + this.settleBusinessReferenceCode = settleBusinessReferenceCode; + } + + public ElecRequestDTO(String startDate, String endDate, String settleBusinessReferenceCode) { + this.startDate = startDate; + this.endDate = endDate; + this.settleBusinessReferenceCode = settleBusinessReferenceCode; + } + + public ElecRequestDTO() { + + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public String getAccountNo() { + return accountNo; + } + + public void setAccountNo(String accountNo) { + this.accountNo = accountNo; + } + + public List<String> getCurrencyList() { + return currencyList; + } + + public void setCurrencyList(List<String> currencyList) { + this.currencyList = currencyList; + } + + public List<String> getBankTypeList() { + return bankTypeList; + } + + public void setBankTypeList(List<String> bankTypeList) { + this.bankTypeList = bankTypeList; + } + + public String getBillStatus() { + return billStatus; + } + + public void setBillStatus(String billStatus) { + this.billStatus = billStatus; + } + + public String getLoanType() { + return loanType; + } + + public void setLoanType(String loanType) { + this.loanType = loanType; + } + + public List<String> getUnitCodeList() { + return unitCodeList; + } + + public void setUnitCodeList(List<String> unitCodeList) { + this.unitCodeList = unitCodeList; + } + + public List<String> getCheckCodeList() { + return checkCodeList; + } + + public void setCheckCodeList(List<String> checkCodeList) { + this.checkCodeList = checkCodeList; + } + + public String getSettleBusinessReferenceCode() { + return settleBusinessReferenceCode; + } + + public void setSettleBusinessReferenceCode(String settleBusinessReferenceCode) { + this.settleBusinessReferenceCode = settleBusinessReferenceCode; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayRequestDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayRequestDTO.java new file mode 100644 index 00000000..957d18ad --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayRequestDTO.java @@ -0,0 +1,272 @@ +package com.hzya.frame.cbs8.dto.req; + +/** + * @Description 经办支付请求DTO + * @Author xiangerlin + * @Date 2024/1/3 09:02 + **/ +public class PayRequestDTO { + private String referenceNum;//业务参考号,必填 + private String busType;//业务类型 必填 + private String amount;//金额 必填 + private String currency;//币种编码,必填 + private String payAccount;//付款账号,非集中支付模式必填 + private String revAccount;//收款账号 必填 + private String revAccountName;//收款方户名 必填 + private String revBankType;//收款银行类型编码,必填 + private String revBankName;//收款开户行名称 + private String cnapsCode;//联行号 必填 + private String purpose;//支付用途 必填 + + private String innerAccount;//内部账号 + private String revBankArea;//收款银行地区名称 + private String revProvince;//收款人省 + private String revCity;//收款人市 + private String bankNum;//收款地区码|银行号 + private String summary;//该笔支付备注 + private String expectTime;//期望支付时间 + private String personalFlag;//公私标记 1对私 0对公 + private String urgentTag;//加急,1加急0不加2特急 + private String realTimeTag;//是否实时 1实时0落地 + private String cityFlag;//同城标志 0同城1异地 + private String payChannel;//支付渠道 + private String busiStep;//业务步数 集中支付需要传1,其他不用传 + private String applyUnitCode;//申请人单位号,集中支付必传 + private String displayApplyUnitCode;//申请人单位号(前端显示),集中支付如果传了,会将其转化为applyUnitCode + + private String erpExtend1;//客户备用字段1 + private String erpExtend2;//客户备用字段2 + private String erpExtend3;//客户备用字段3 + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getCnapsCode() { + return cnapsCode; + } + + public void setCnapsCode(String cnapsCode) { + this.cnapsCode = cnapsCode; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getInnerAccount() { + return innerAccount; + } + + public void setInnerAccount(String innerAccount) { + this.innerAccount = innerAccount; + } + + public String getRevBankArea() { + return revBankArea; + } + + public void setRevBankArea(String revBankArea) { + this.revBankArea = revBankArea; + } + + public String getRevProvince() { + return revProvince; + } + + public void setRevProvince(String revProvince) { + this.revProvince = revProvince; + } + + public String getRevCity() { + return revCity; + } + + public void setRevCity(String revCity) { + this.revCity = revCity; + } + + public String getBankNum() { + return bankNum; + } + + public void setBankNum(String bankNum) { + this.bankNum = bankNum; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getExpectTime() { + return expectTime; + } + + public void setExpectTime(String expectTime) { + this.expectTime = expectTime; + } + + public String getPersonalFlag() { + return personalFlag; + } + + public void setPersonalFlag(String personalFlag) { + this.personalFlag = personalFlag; + } + + public String getUrgentTag() { + return urgentTag; + } + + public void setUrgentTag(String urgentTag) { + this.urgentTag = urgentTag; + } + + public String getRealTimeTag() { + return realTimeTag; + } + + public void setRealTimeTag(String realTimeTag) { + this.realTimeTag = realTimeTag; + } + + public String getCityFlag() { + return cityFlag; + } + + public void setCityFlag(String cityFlag) { + this.cityFlag = cityFlag; + } + + public String getPayChannel() { + return payChannel; + } + + public void setPayChannel(String payChannel) { + this.payChannel = payChannel; + } + + public String getBusiStep() { + return busiStep; + } + + public void setBusiStep(String busiStep) { + this.busiStep = busiStep; + } + + public String getApplyUnitCode() { + return applyUnitCode; + } + + public void setApplyUnitCode(String applyUnitCode) { + this.applyUnitCode = applyUnitCode; + } + + public String getDisplayApplyUnitCode() { + return displayApplyUnitCode; + } + + public void setDisplayApplyUnitCode(String displayApplyUnitCode) { + this.displayApplyUnitCode = displayApplyUnitCode; + } + + public String getErpExtend1() { + return erpExtend1; + } + + public void setErpExtend1(String erpExtend1) { + this.erpExtend1 = erpExtend1; + } + + public String getErpExtend2() { + return erpExtend2; + } + + public void setErpExtend2(String erpExtend2) { + this.erpExtend2 = erpExtend2; + } + + public String getErpExtend3() { + return erpExtend3; + } + + public void setErpExtend3(String erpExtend3) { + this.erpExtend3 = erpExtend3; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayResultRequestDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayResultRequestDTO.java new file mode 100644 index 00000000..8180c6f0 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PayResultRequestDTO.java @@ -0,0 +1,44 @@ +package com.hzya.frame.cbs8.dto.req; + +import java.util.List; + +/** + * @Description 查询交易结果请求参数 + * @Author xiangerlin + * @Date 2024/1/3 09:46 + **/ +public class PayResultRequestDTO { + public PayResultRequestDTO() { + } + public PayResultRequestDTO(String referenceNum) { + this.referenceNum = referenceNum; + } + + private String referenceNum;//业务参考号,必填 + private List<String> statusList;//状态 + private List<String> payStatusList;//支付状态 + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public List<String> getStatusList() { + return statusList; + } + + public void setStatusList(List<String> statusList) { + this.statusList = statusList; + } + + public List<String> getPayStatusList() { + return payStatusList; + } + + public void setPayStatusList(List<String> payStatusList) { + this.payStatusList = payStatusList; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplyAgentDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplyAgentDTO.java new file mode 100644 index 00000000..509165a3 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplyAgentDTO.java @@ -0,0 +1,132 @@ +package com.hzya.frame.cbs8.dto.req; + +/** + * @Description 代发代扣明细 + * @Author xiangerlin + * @Date 2024/6/18 13:45 + **/ +public class PaymentApplyAgentDTO { + //每笔明细金额 + private String dtlAmount; + //收款账号 + private String dtlRevAccount; + //联行号 同行可不传,跨行必传 + private String dtlCnapsCode; + //收款账户名称 + private String dtlRevName; + //收款开户行 ,如果传的联行号能匹配到对应到开户行,cbs8会自动带出 + private String dtlRevBankName; + + + + //是否跨行 Y跨行 N同行 + private String dtlBankFlag; + //明细用途 + private String dtlPurpose; + //明细摘要 + private String dtlRemark; + //收款账号银行号|地区码 + private String dtlRevBankArea; + //收款开户地 + private String dtlRevBankCity; + //明细序号,从1开始递增 + private int dtlSeqNum; + //备用字段 一共6个 + private String dtlExtend1; + + public String getDtlAmount() { + return dtlAmount; + } + + public void setDtlAmount(String dtlAmount) { + this.dtlAmount = dtlAmount; + } + + public String getDtlRevAccount() { + return dtlRevAccount; + } + + public void setDtlRevAccount(String dtlRevAccount) { + this.dtlRevAccount = dtlRevAccount; + } + + public String getDtlCnapsCode() { + return dtlCnapsCode; + } + + public void setDtlCnapsCode(String dtlCnapsCode) { + this.dtlCnapsCode = dtlCnapsCode; + } + + public String getDtlRevName() { + return dtlRevName; + } + + public void setDtlRevName(String dtlRevName) { + this.dtlRevName = dtlRevName; + } + + public String getDtlRevBankName() { + return dtlRevBankName; + } + + public void setDtlRevBankName(String dtlRevBankName) { + this.dtlRevBankName = dtlRevBankName; + } + + public String getDtlBankFlag() { + return dtlBankFlag; + } + + public void setDtlBankFlag(String dtlBankFlag) { + this.dtlBankFlag = dtlBankFlag; + } + + public String getDtlPurpose() { + return dtlPurpose; + } + + public void setDtlPurpose(String dtlPurpose) { + this.dtlPurpose = dtlPurpose; + } + + public String getDtlRemark() { + return dtlRemark; + } + + public void setDtlRemark(String dtlRemark) { + this.dtlRemark = dtlRemark; + } + + public String getDtlRevBankArea() { + return dtlRevBankArea; + } + + public void setDtlRevBankArea(String dtlRevBankArea) { + this.dtlRevBankArea = dtlRevBankArea; + } + + public String getDtlRevBankCity() { + return dtlRevBankCity; + } + + public void setDtlRevBankCity(String dtlRevBankCity) { + this.dtlRevBankCity = dtlRevBankCity; + } + + public int getDtlSeqNum() { + return dtlSeqNum; + } + + public void setDtlSeqNum(int dtlSeqNum) { + this.dtlSeqNum = dtlSeqNum; + } + + public String getDtlExtend1() { + return dtlExtend1; + } + + public void setDtlExtend1(String dtlExtend1) { + this.dtlExtend1 = dtlExtend1; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplySubmitReqDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplySubmitReqDTO.java new file mode 100644 index 00000000..863ecb63 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/PaymentApplySubmitReqDTO.java @@ -0,0 +1,245 @@ +package com.hzya.frame.cbs8.dto.req; + +/** + * @Description 批量代发代扣 203代发 201代扣 + * @Author xiangerlin + * @Date 2024/6/18 11:58 + **/ +public class PaymentApplySubmitReqDTO { + //业务参考号 + private String referenceNum; + /** + * 业务类型 + * 201-代扣 + * 203-代发 + * 代发工资传203 + */ + private String busType; + //总金额 小数位2位 + private String amount; + //币种 + private String currency; + //付款账号 + private String payAccount; + //用途 + private String purpose; + // 以上是必填字段 + + + + //备注 + private String summary; + //期望支付时间 + private String expectTime; + //公私标识 1对私 0对公 + private String personalFlag; + //加急标志 1加急 0不加急 + private String urgentTag; + //是否实时 1实时 0落地 + private String realTimeTag; + /** + * 同城标志 0同城 1异地 + * 收/付账号所属同一个城市为同城,否则为异地 + */ + private String cityFlag; + //银行备用字段 一共8个 + private String bankExtend1; + private String bankExtend2; + private String bankExtend3; + private String bankExtend4; + private String bankExtend5; + private String bankExtend6; + private String bankExtend7; + private String bankExtend8; + + //客户备用字段1 + private String erpExtend1; + //客户备用字段1 + private String erpExtend2; + //客户备用字段1 + private String erpExtend3; + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getExpectTime() { + return expectTime; + } + + public void setExpectTime(String expectTime) { + this.expectTime = expectTime; + } + + public String getPersonalFlag() { + return personalFlag; + } + + public void setPersonalFlag(String personalFlag) { + this.personalFlag = personalFlag; + } + + public String getUrgentTag() { + return urgentTag; + } + + public void setUrgentTag(String urgentTag) { + this.urgentTag = urgentTag; + } + + public String getRealTimeTag() { + return realTimeTag; + } + + public void setRealTimeTag(String realTimeTag) { + this.realTimeTag = realTimeTag; + } + + public String getCityFlag() { + return cityFlag; + } + + public void setCityFlag(String cityFlag) { + this.cityFlag = cityFlag; + } + + public String getBankExtend1() { + return bankExtend1; + } + + public void setBankExtend1(String bankExtend1) { + this.bankExtend1 = bankExtend1; + } + + public String getErpExtend1() { + return erpExtend1; + } + + public void setErpExtend1(String erpExtend1) { + this.erpExtend1 = erpExtend1; + } + + public String getErpExtend2() { + return erpExtend2; + } + + public void setErpExtend2(String erpExtend2) { + this.erpExtend2 = erpExtend2; + } + + public String getErpExtend3() { + return erpExtend3; + } + + public void setErpExtend3(String erpExtend3) { + this.erpExtend3 = erpExtend3; + } + + public String getBankExtend2() { + return bankExtend2; + } + + public void setBankExtend2(String bankExtend2) { + this.bankExtend2 = bankExtend2; + } + + public String getBankExtend3() { + return bankExtend3; + } + + public void setBankExtend3(String bankExtend3) { + this.bankExtend3 = bankExtend3; + } + + public String getBankExtend4() { + return bankExtend4; + } + + public void setBankExtend4(String bankExtend4) { + this.bankExtend4 = bankExtend4; + } + + public String getBankExtend5() { + return bankExtend5; + } + + public void setBankExtend5(String bankExtend5) { + this.bankExtend5 = bankExtend5; + } + + public String getBankExtend6() { + return bankExtend6; + } + + public void setBankExtend6(String bankExtend6) { + this.bankExtend6 = bankExtend6; + } + + public String getBankExtend7() { + return bankExtend7; + } + + public void setBankExtend7(String bankExtend7) { + this.bankExtend7 = bankExtend7; + } + + public String getBankExtend8() { + return bankExtend8; + } + + public void setBankExtend8(String bankExtend8) { + this.bankExtend8 = bankExtend8; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/TransactionDetailReqDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/TransactionDetailReqDTO.java new file mode 100644 index 00000000..26f5f4bf --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/req/TransactionDetailReqDTO.java @@ -0,0 +1,164 @@ +package com.hzya.frame.cbs8.dto.req; + +import java.util.List; + +/** + * @Description 查询境内交易明细参数 + * @Author xiangerlin + * @Date 2024/1/3 09:55 + **/ +public class TransactionDetailReqDTO { + private int currentPage;//当前页码 从1开始 + private int pageSize;//本次查询的记录数,最大1000条 + private String startDate;//开始日期 + private String endDate;//结束日期 + private String dateType;//日期类型0:交易日期,1:起息日期 + private List<String> accountNoList;//账户列表 + private List<String> bankTypeList;//银行类型列表 + private List<String> currencyList;//币种列表 + private String detailedSources;//明细来源 + private String currentFlag;//明细类型 + private String loanType;//借贷类型 1:借 2:贷 + private List<String> accountNatureList;//账户性质列表 + private String bankSerialNumber;//银行流水号 + private String transactionSerialNumber;//交易流水号 + private List<String> unitCodeList ;//单位编码列表 + private String erpSerialNumber ;//erp业务参考号 + + public TransactionDetailReqDTO() { + + } + + public TransactionDetailReqDTO(String startDate, String endDate) { + this.startDate = startDate; + this.endDate = endDate; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public String getDateType() { + return dateType; + } + + public void setDateType(String dateType) { + this.dateType = dateType; + } + + public List<String> getAccountNoList() { + return accountNoList; + } + + public void setAccountNoList(List<String> accountNoList) { + this.accountNoList = accountNoList; + } + + public List<String> getBankTypeList() { + return bankTypeList; + } + + public void setBankTypeList(List<String> bankTypeList) { + this.bankTypeList = bankTypeList; + } + + public List<String> getCurrencyList() { + return currencyList; + } + + public void setCurrencyList(List<String> currencyList) { + this.currencyList = currencyList; + } + + public String getDetailedSources() { + return detailedSources; + } + + public void setDetailedSources(String detailedSources) { + this.detailedSources = detailedSources; + } + + public String getCurrentFlag() { + return currentFlag; + } + + public void setCurrentFlag(String currentFlag) { + this.currentFlag = currentFlag; + } + + public String getLoanType() { + return loanType; + } + + public void setLoanType(String loanType) { + this.loanType = loanType; + } + + public List<String> getAccountNatureList() { + return accountNatureList; + } + + public void setAccountNatureList(List<String> accountNatureList) { + this.accountNatureList = accountNatureList; + } + + public String getBankSerialNumber() { + return bankSerialNumber; + } + + public void setBankSerialNumber(String bankSerialNumber) { + this.bankSerialNumber = bankSerialNumber; + } + + public String getTransactionSerialNumber() { + return transactionSerialNumber; + } + + public void setTransactionSerialNumber(String transactionSerialNumber) { + this.transactionSerialNumber = transactionSerialNumber; + } + + public List<String> getUnitCodeList() { + return unitCodeList; + } + + public void setUnitCodeList(List<String> unitCodeList) { + this.unitCodeList = unitCodeList; + } + + public String getErpSerialNumber() { + return erpSerialNumber; + } + + public void setErpSerialNumber(String erpSerialNumber) { + this.erpSerialNumber = erpSerialNumber; + } + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayQueryDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayQueryDTO.java new file mode 100644 index 00000000..402e7895 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayQueryDTO.java @@ -0,0 +1,280 @@ +package com.hzya.frame.cbs8.dto.res; + +/** + * @Description 代发代扣查询详情 + * @Author xiangerlin + * @Date 2024/6/19 09:02 + **/ +public class AgentPayQueryDTO { + // 申请单编号 + private String busNum; + + // 代发/代扣明细序号 + private String dtlSeqNum; + + // 金额 + private String dtlAmount; // 考虑到金额计算精度,建议使用BigDecimal + + // 收款人名称 + private String dtlRevName; + + // 收款人账号 + private String dtlRevAccount; + + // 收款人开户行 + private String dtlRevBankName; + + // 银行号 + private String dtlBankNum; + + // 联行号 + private String dtlCnapsCode; + + // 是否跨行(Y:开户行是招商银行。N:开户行是他行。为空默认为招行) + private String dtlBankFlag; + + // 地区名称 + private String dtlRevBankArea; + + // 注释 + private String dtlRemark; + + // 状态 + private String dtlStatus; + + // 错误信息 + private String dtlErrorMessage; + + // 他行开户地 + private String dtlRevBankCity; + + // 备用字段1-6 + private String dtlExtend1; + private String dtlExtend2; + private String dtlExtend3; + private String dtlExtend4; + private String dtlExtend5; + private String dtlExtend6; + + // ERP备注1-3 + private String dtlErpComment1; + private String dtlErpComment2; + private String dtlErpComment3; + + // 用途 + private String dtlPurpose; + + // 银行支付时间 + private String dtlPayTime; + + // 实际扣款金额 + private String dtlActualAmount; + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } + + public String getDtlSeqNum() { + return dtlSeqNum; + } + + public void setDtlSeqNum(String dtlSeqNum) { + this.dtlSeqNum = dtlSeqNum; + } + + public String getDtlAmount() { + return dtlAmount; + } + + public void setDtlAmount(String dtlAmount) { + this.dtlAmount = dtlAmount; + } + + public String getDtlRevName() { + return dtlRevName; + } + + public void setDtlRevName(String dtlRevName) { + this.dtlRevName = dtlRevName; + } + + public String getDtlRevAccount() { + return dtlRevAccount; + } + + public void setDtlRevAccount(String dtlRevAccount) { + this.dtlRevAccount = dtlRevAccount; + } + + public String getDtlRevBankName() { + return dtlRevBankName; + } + + public void setDtlRevBankName(String dtlRevBankName) { + this.dtlRevBankName = dtlRevBankName; + } + + public String getDtlBankNum() { + return dtlBankNum; + } + + public void setDtlBankNum(String dtlBankNum) { + this.dtlBankNum = dtlBankNum; + } + + public String getDtlCnapsCode() { + return dtlCnapsCode; + } + + public void setDtlCnapsCode(String dtlCnapsCode) { + this.dtlCnapsCode = dtlCnapsCode; + } + + public String getDtlBankFlag() { + return dtlBankFlag; + } + + public void setDtlBankFlag(String dtlBankFlag) { + this.dtlBankFlag = dtlBankFlag; + } + + public String getDtlRevBankArea() { + return dtlRevBankArea; + } + + public void setDtlRevBankArea(String dtlRevBankArea) { + this.dtlRevBankArea = dtlRevBankArea; + } + + public String getDtlRemark() { + return dtlRemark; + } + + public void setDtlRemark(String dtlRemark) { + this.dtlRemark = dtlRemark; + } + + public String getDtlStatus() { + return dtlStatus; + } + + public void setDtlStatus(String dtlStatus) { + this.dtlStatus = dtlStatus; + } + + public String getDtlErrorMessage() { + return dtlErrorMessage; + } + + public void setDtlErrorMessage(String dtlErrorMessage) { + this.dtlErrorMessage = dtlErrorMessage; + } + + public String getDtlRevBankCity() { + return dtlRevBankCity; + } + + public void setDtlRevBankCity(String dtlRevBankCity) { + this.dtlRevBankCity = dtlRevBankCity; + } + + public String getDtlExtend1() { + return dtlExtend1; + } + + public void setDtlExtend1(String dtlExtend1) { + this.dtlExtend1 = dtlExtend1; + } + + public String getDtlExtend2() { + return dtlExtend2; + } + + public void setDtlExtend2(String dtlExtend2) { + this.dtlExtend2 = dtlExtend2; + } + + public String getDtlExtend3() { + return dtlExtend3; + } + + public void setDtlExtend3(String dtlExtend3) { + this.dtlExtend3 = dtlExtend3; + } + + public String getDtlExtend4() { + return dtlExtend4; + } + + public void setDtlExtend4(String dtlExtend4) { + this.dtlExtend4 = dtlExtend4; + } + + public String getDtlExtend5() { + return dtlExtend5; + } + + public void setDtlExtend5(String dtlExtend5) { + this.dtlExtend5 = dtlExtend5; + } + + public String getDtlExtend6() { + return dtlExtend6; + } + + public void setDtlExtend6(String dtlExtend6) { + this.dtlExtend6 = dtlExtend6; + } + + public String getDtlErpComment1() { + return dtlErpComment1; + } + + public void setDtlErpComment1(String dtlErpComment1) { + this.dtlErpComment1 = dtlErpComment1; + } + + public String getDtlErpComment2() { + return dtlErpComment2; + } + + public void setDtlErpComment2(String dtlErpComment2) { + this.dtlErpComment2 = dtlErpComment2; + } + + public String getDtlErpComment3() { + return dtlErpComment3; + } + + public void setDtlErpComment3(String dtlErpComment3) { + this.dtlErpComment3 = dtlErpComment3; + } + + public String getDtlPurpose() { + return dtlPurpose; + } + + public void setDtlPurpose(String dtlPurpose) { + this.dtlPurpose = dtlPurpose; + } + + public String getDtlPayTime() { + return dtlPayTime; + } + + public void setDtlPayTime(String dtlPayTime) { + this.dtlPayTime = dtlPayTime; + } + + public String getDtlActualAmount() { + return dtlActualAmount; + } + + public void setDtlActualAmount(String dtlActualAmount) { + this.dtlActualAmount = dtlActualAmount; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayResultResDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayResultResDTO.java new file mode 100644 index 00000000..5ea5d5ae --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/AgentPayResultResDTO.java @@ -0,0 +1,450 @@ +package com.hzya.frame.cbs8.dto.res; + +import java.util.List; + +/** + * @Description 代发代扣 返回参数对象 + * @Author xiangerlin + * @Date 2024/6/19 08:53 + **/ +public class AgentPayResultResDTO { + // 支付的业务类型 + private String busType; + + // 申请单编号 + private String busNum; + + // 付款账户 + private String payAccount; + + // 付款账户名称 + private String payAccountName; + + // 付款账户开户行 + private String payBankName; + + // 付款银行类型 + private String payBankType; + + // 币种 + private String currency; + + // 金额 + private String amount; + + // 收款账户 + private String revAccount; + + // 收款账户名称 + private String revAccountName; + + // 收款开户行 + private String revBankName; + + // 收款银行类型 + private String revBankType; + + // 收款人省 + private String revProvince; + + // 对账码集合(假设为String列表) + private List<String> checkCodeList; + + // 收款人市 + private String revCity; + + // 支付渠道 + private String payChannel; + + // 付款单提示信息/银行返回信息 + private String errorMsg; + + // 支付申请状态 + private String status; + + // 经办人ID + private String createBy; + + // 经办人名称 + private String createByName; + + // 用途 + private String purpose; + + // 摘要/备注 + private String summary; + + // 期望支付时间 + private String expectTime; + + // 支付时间 + private String payDate; + + // 支付状态 + private String payStatus; + + // 客户备用字段1 + private String erpExtend1; + + // 客户备用字段2 + private String erpExtend2; + + // 客户备用字段3 + private String erpExtend3; + + // 计划流水号 + private String planNumber; + + // 资金预算编号 + private String planItemCode; + + // 预算项名称 + private String planItemName; + + // 预算所属单位编码 + private String planUnitCode; + + // 预算所属单位名称 + private String planUnitName; + + // 单位编码(前端展示) + private String displayUnitCode; + + // 预算单位编码(前端展示) + private String displayPlanUnitCode; + + // 经办用户单位编码(前端展示) + private String displayOperaterOrgCode; + + // 付方单位编码(前端展示) + private String displayPayOrgCode; + + // 客商编号 + private String revCustomerCode; + + // 结算方式 + private String payType; + + //代发代扣详情 + private List<AgentPayQueryDTO> agentDetails; + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPayAccountName() { + return payAccountName; + } + + public void setPayAccountName(String payAccountName) { + this.payAccountName = payAccountName; + } + + public String getPayBankName() { + return payBankName; + } + + public void setPayBankName(String payBankName) { + this.payBankName = payBankName; + } + + public String getPayBankType() { + return payBankType; + } + + public void setPayBankType(String payBankType) { + this.payBankType = payBankType; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getRevProvince() { + return revProvince; + } + + public void setRevProvince(String revProvince) { + this.revProvince = revProvince; + } + + public List<String> getCheckCodeList() { + return checkCodeList; + } + + public void setCheckCodeList(List<String> checkCodeList) { + this.checkCodeList = checkCodeList; + } + + public String getRevCity() { + return revCity; + } + + public void setRevCity(String revCity) { + this.revCity = revCity; + } + + public String getPayChannel() { + return payChannel; + } + + public void setPayChannel(String payChannel) { + this.payChannel = payChannel; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public String getCreateByName() { + return createByName; + } + + public void setCreateByName(String createByName) { + this.createByName = createByName; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getExpectTime() { + return expectTime; + } + + public void setExpectTime(String expectTime) { + this.expectTime = expectTime; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } + + public String getPayStatus() { + return payStatus; + } + + public void setPayStatus(String payStatus) { + this.payStatus = payStatus; + } + + public String getErpExtend1() { + return erpExtend1; + } + + public void setErpExtend1(String erpExtend1) { + this.erpExtend1 = erpExtend1; + } + + public String getErpExtend2() { + return erpExtend2; + } + + public void setErpExtend2(String erpExtend2) { + this.erpExtend2 = erpExtend2; + } + + public String getErpExtend3() { + return erpExtend3; + } + + public void setErpExtend3(String erpExtend3) { + this.erpExtend3 = erpExtend3; + } + + public String getPlanNumber() { + return planNumber; + } + + public void setPlanNumber(String planNumber) { + this.planNumber = planNumber; + } + + public String getPlanItemCode() { + return planItemCode; + } + + public void setPlanItemCode(String planItemCode) { + this.planItemCode = planItemCode; + } + + public String getPlanItemName() { + return planItemName; + } + + public void setPlanItemName(String planItemName) { + this.planItemName = planItemName; + } + + public String getPlanUnitCode() { + return planUnitCode; + } + + public void setPlanUnitCode(String planUnitCode) { + this.planUnitCode = planUnitCode; + } + + public String getPlanUnitName() { + return planUnitName; + } + + public void setPlanUnitName(String planUnitName) { + this.planUnitName = planUnitName; + } + + public String getDisplayUnitCode() { + return displayUnitCode; + } + + public void setDisplayUnitCode(String displayUnitCode) { + this.displayUnitCode = displayUnitCode; + } + + public String getDisplayPlanUnitCode() { + return displayPlanUnitCode; + } + + public void setDisplayPlanUnitCode(String displayPlanUnitCode) { + this.displayPlanUnitCode = displayPlanUnitCode; + } + + public String getDisplayOperaterOrgCode() { + return displayOperaterOrgCode; + } + + public void setDisplayOperaterOrgCode(String displayOperaterOrgCode) { + this.displayOperaterOrgCode = displayOperaterOrgCode; + } + + public String getDisplayPayOrgCode() { + return displayPayOrgCode; + } + + public void setDisplayPayOrgCode(String displayPayOrgCode) { + this.displayPayOrgCode = displayPayOrgCode; + } + + public String getRevCustomerCode() { + return revCustomerCode; + } + + public void setRevCustomerCode(String revCustomerCode) { + this.revCustomerCode = revCustomerCode; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public List<AgentPayQueryDTO> getAgentDetails() { + return agentDetails; + } + + public void setAgentDetails(List<AgentPayQueryDTO> agentDetails) { + this.agentDetails = agentDetails; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResDataDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResDataDTO.java new file mode 100644 index 00000000..0bb30dc8 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResDataDTO.java @@ -0,0 +1,458 @@ +package com.hzya.frame.cbs8.dto.res; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.annotation.JSONField; + +import java.util.List; + +/** + * @Description data节点 + * @Author xiangerlin + * @Date 2024/1/2 09:26 + **/ +public class CbsResDataDTO { + + + private List<JSONObject> list;//明细数据 + //------- 交易明细字段----- + private int endRow; + private Boolean hasNextPage;//是否有下一页 + private Boolean hasPreviousPage;//是否有前一页 + @JSONField(name = "isFirstPage") + private Boolean hasFirstPage; + @JSONField(name = "isLastPage") + private Boolean hasLastPage; + private int navigateFirstPage; + private int navigateLastPage; + private int navigatePages; + private int nextPage; + private int pageNum; + private int pageSize; + private int pages; + private int prePage; + private int size; + private int startRow; + private int total; + //------- 交易明细字段----- + + //------经办支付返回参数------ + private String busNum;//申请单编号 + private String errorCode;//错误编码 + private String errorMsg;//错误信息 + private String freezeFlowNum;//内部户冻结流水号 + private String recordNum;//批量经办序号 + private String referenceNum;//业务参考号 + private Boolean successed;//是否成功 + //------经办支付返回参数------ + + + //------查询交易结果返回参数------- + + private String busType;//支付业务类型 + private String payAccount;//付款账号 + private String payAccountName;//付款户名 + private String payBankName;//付款开户行名称 + private String payBankType;//付款银行类型 + private String currency;//币种 + private String amount;//金额 + private String revAccount;//收款账户 + private String revAccountName;//收款账户名 + private String revBankName;//收款开户行 + private String revBankType;//收款银行类型 + private String payChannel;//支付渠道 + + private String status;//支付申请单状态 + private String payStatus;//支付状态 + private String payDate;//支付时间 + private String planNumber;//计划流水号 + private String planItemCode;//资金预算编号 + private String planItemName;//预算名称 + private String erpExtend1;//客户备用字段1 + private String erpExtend2;//客户备用字段1 + private String erpExtend3;//客户备用字段1 + + //------查询交易结果返回参数------- + + + public List<JSONObject> getList() { + return list; + } + + public void setList(List<JSONObject> list) { + this.list = list; + } + + public int getEndRow() { + return endRow; + } + + public void setEndRow(int endRow) { + this.endRow = endRow; + } + + public Boolean getHasNextPage() { + return hasNextPage; + } + + public void setHasNextPage(Boolean hasNextPage) { + this.hasNextPage = hasNextPage; + } + + public Boolean getHasPreviousPage() { + return hasPreviousPage; + } + + public void setHasPreviousPage(Boolean hasPreviousPage) { + this.hasPreviousPage = hasPreviousPage; + } + + public Boolean getHasFirstPage() { + return hasFirstPage; + } + + public void setHasFirstPage(Boolean hasFirstPage) { + this.hasFirstPage = hasFirstPage; + } + + public Boolean getHasLastPage() { + return hasLastPage; + } + + public void setHasLastPage(Boolean hasLastPage) { + this.hasLastPage = hasLastPage; + } + + public int getNavigateFirstPage() { + return navigateFirstPage; + } + + public void setNavigateFirstPage(int navigateFirstPage) { + this.navigateFirstPage = navigateFirstPage; + } + + public int getNavigateLastPage() { + return navigateLastPage; + } + + public void setNavigateLastPage(int navigateLastPage) { + this.navigateLastPage = navigateLastPage; + } + + public int getNavigatePages() { + return navigatePages; + } + + public void setNavigatePages(int navigatePages) { + this.navigatePages = navigatePages; + } + + public int getNextPage() { + return nextPage; + } + + public void setNextPage(int nextPage) { + this.nextPage = nextPage; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public int getPrePage() { + return prePage; + } + + public void setPrePage(int prePage) { + this.prePage = prePage; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getStartRow() { + return startRow; + } + + public void setStartRow(int startRow) { + this.startRow = startRow; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFreezeFlowNum() { + return freezeFlowNum; + } + + public void setFreezeFlowNum(String freezeFlowNum) { + this.freezeFlowNum = freezeFlowNum; + } + + public String getRecordNum() { + return recordNum; + } + + public void setRecordNum(String recordNum) { + this.recordNum = recordNum; + } + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public Boolean getSuccessed() { + return successed; + } + + public void setSuccessed(Boolean successed) { + this.successed = successed; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPayAccountName() { + return payAccountName; + } + + public void setPayAccountName(String payAccountName) { + this.payAccountName = payAccountName; + } + + public String getPayBankName() { + return payBankName; + } + + public void setPayBankName(String payBankName) { + this.payBankName = payBankName; + } + + public String getPayBankType() { + return payBankType; + } + + public void setPayBankType(String payBankType) { + this.payBankType = payBankType; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getPayChannel() { + return payChannel; + } + + public void setPayChannel(String payChannel) { + this.payChannel = payChannel; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getPayStatus() { + return payStatus; + } + + public void setPayStatus(String payStatus) { + this.payStatus = payStatus; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } + + public String getPlanNumber() { + return planNumber; + } + + public void setPlanNumber(String planNumber) { + this.planNumber = planNumber; + } + + public String getPlanItemCode() { + return planItemCode; + } + + public void setPlanItemCode(String planItemCode) { + this.planItemCode = planItemCode; + } + + public String getPlanItemName() { + return planItemName; + } + + public void setPlanItemName(String planItemName) { + this.planItemName = planItemName; + } + + public String getErpExtend1() { + return erpExtend1; + } + + public void setErpExtend1(String erpExtend1) { + this.erpExtend1 = erpExtend1; + } + + public String getErpExtend2() { + return erpExtend2; + } + + public void setErpExtend2(String erpExtend2) { + this.erpExtend2 = erpExtend2; + } + + public String getErpExtend3() { + return erpExtend3; + } + + public void setErpExtend3(String erpExtend3) { + this.erpExtend3 = erpExtend3; + } + + /** + * 把json字符串转换成指定范型的list + * @param json + * @param list + * @param clazz + * @param <T> + */ + private static <T> void adaptAndAddToList(String json, List<Object> list, Class<T> clazz) { + JSONObject jsonObject = JSON.parseObject(json); + + if (jsonObject.containsKey("list")) { + JSONArray listArray = jsonObject.getJSONArray("list"); + for (Object item : listArray) { + JSONObject itemObject = (JSONObject) item; + // 适配不同类型的节点 + list.add(JSON.toJavaObject(itemObject, clazz)); + } + } + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResponseDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResponseDTO.java new file mode 100644 index 00000000..1abae5b9 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/CbsResponseDTO.java @@ -0,0 +1,44 @@ +package com.hzya.frame.cbs8.dto.res; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.annotation.JSONField; + +import java.util.List; + +/** + * @Description cbs响应DTO + * @Author xiangerlin + * @Date 2024/1/2 09:25 + **/ +public class CbsResponseDTO { + //private List<CbsResDataDTO> data;//数据 + private List<JSONObject> data;//数据 + private String code;//0表示成功 + private String msg;//消息 + + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List<JSONObject> getData() { + return data; + } + + public void setData(List<JSONObject> data) { + this.data = data; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/ElecResponseDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/ElecResponseDTO.java new file mode 100644 index 00000000..6e77d30a --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/ElecResponseDTO.java @@ -0,0 +1,305 @@ +package com.hzya.frame.cbs8.dto.res; + +/** + * @Description 电子回单查询返回参数 + * @Author xiangerlin + * @Date 2024/1/4 17:13 + **/ +public class ElecResponseDTO { + + // 账号 + private String accountNo; + + // 账号名称 + private String accountName; + + // 银行类型 + private String bankType; + + // 银行类型名称 + private String bankTypeName; + + // 开户行 + private String openingBank; + + // 交易日期 + private String transactionDate; + + // 电子回单文件状态 + private String electronicBillStatus; + + // 电子回单文件名称 + private String billFileName; + + // 回单文件下载地址 + private String bucketFileUrl; + + // 回单文件名称 + private String bucketFileName; + + // 回单类型 + private String electronicBillType; + + // 银行流水号 + private String bankSerialNumber; + + // 回单编号 + private String printInstanceNumber; + + // 币种 + private String currency; + + // 币种名称 + private String currencyName; + + // 借贷类型 + private String loanType; + + // 交易金额 + private String transactionAmount; + + // 对方账号 + private String oppositeAccount; + + // 对方账户名 + private String oppositeAccountName; + + // 对方开户地 + private String oppositeOpeningPlace; + + // 对方开户行 + private String oppositeOpeningBank; + + // 摘要 + private String digest; + + // 用途 + private String purpose; + + // 账户性质 + private String accountNatureCode; + + // 对账码 + private String checkCode; + + // 单位编码 + private String unitCode; + + // ERP业务参考号 + private String settleBusinessReferenceCode; + public String getAccountNo() { + return accountNo; + } + + public void setAccountNo(String accountNo) { + this.accountNo = accountNo; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getBankType() { + return bankType; + } + + public void setBankType(String bankType) { + this.bankType = bankType; + } + + public String getBankTypeName() { + return bankTypeName; + } + + public void setBankTypeName(String bankTypeName) { + this.bankTypeName = bankTypeName; + } + + public String getOpeningBank() { + return openingBank; + } + + public void setOpeningBank(String openingBank) { + this.openingBank = openingBank; + } + + public String getTransactionDate() { + return transactionDate; + } + + public void setTransactionDate(String transactionDate) { + this.transactionDate = transactionDate; + } + + public String getElectronicBillStatus() { + return electronicBillStatus; + } + + public void setElectronicBillStatus(String electronicBillStatus) { + this.electronicBillStatus = electronicBillStatus; + } + + public String getBillFileName() { + return billFileName; + } + + public void setBillFileName(String billFileName) { + this.billFileName = billFileName; + } + + public String getBucketFileUrl() { + return bucketFileUrl; + } + + public void setBucketFileUrl(String bucketFileUrl) { + this.bucketFileUrl = bucketFileUrl; + } + + public String getBucketFileName() { + return bucketFileName; + } + + public void setBucketFileName(String bucketFileName) { + this.bucketFileName = bucketFileName; + } + + public String getElectronicBillType() { + return electronicBillType; + } + + public void setElectronicBillType(String electronicBillType) { + this.electronicBillType = electronicBillType; + } + + public String getBankSerialNumber() { + return bankSerialNumber; + } + + public void setBankSerialNumber(String bankSerialNumber) { + this.bankSerialNumber = bankSerialNumber; + } + + public String getPrintInstanceNumber() { + return printInstanceNumber; + } + + public void setPrintInstanceNumber(String printInstanceNumber) { + this.printInstanceNumber = printInstanceNumber; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getCurrencyName() { + return currencyName; + } + + public void setCurrencyName(String currencyName) { + this.currencyName = currencyName; + } + + public String getLoanType() { + return loanType; + } + + public void setLoanType(String loanType) { + this.loanType = loanType; + } + + public String getTransactionAmount() { + return transactionAmount; + } + + public void setTransactionAmount(String transactionAmount) { + this.transactionAmount = transactionAmount; + } + + public String getOppositeAccount() { + return oppositeAccount; + } + + public void setOppositeAccount(String oppositeAccount) { + this.oppositeAccount = oppositeAccount; + } + + public String getOppositeAccountName() { + return oppositeAccountName; + } + + public void setOppositeAccountName(String oppositeAccountName) { + this.oppositeAccountName = oppositeAccountName; + } + + public String getOppositeOpeningPlace() { + return oppositeOpeningPlace; + } + + public void setOppositeOpeningPlace(String oppositeOpeningPlace) { + this.oppositeOpeningPlace = oppositeOpeningPlace; + } + + public String getOppositeOpeningBank() { + return oppositeOpeningBank; + } + + public void setOppositeOpeningBank(String oppositeOpeningBank) { + this.oppositeOpeningBank = oppositeOpeningBank; + } + + public String getDigest() { + return digest; + } + + public void setDigest(String digest) { + this.digest = digest; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getAccountNatureCode() { + return accountNatureCode; + } + + public void setAccountNatureCode(String accountNatureCode) { + this.accountNatureCode = accountNatureCode; + } + + public String getCheckCode() { + return checkCode; + } + + public void setCheckCode(String checkCode) { + this.checkCode = checkCode; + } + + public String getUnitCode() { + return unitCode; + } + + public void setUnitCode(String unitCode) { + this.unitCode = unitCode; + } + + public String getSettleBusinessReferenceCode() { + return settleBusinessReferenceCode; + } + + public void setSettleBusinessReferenceCode(String settleBusinessReferenceCode) { + this.settleBusinessReferenceCode = settleBusinessReferenceCode; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResponseDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResponseDTO.java new file mode 100644 index 00000000..2534d4f8 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResponseDTO.java @@ -0,0 +1,73 @@ +package com.hzya.frame.cbs8.dto.res; + +/** + * @Description 经办支付接口返回参数中的data节点 + * @Author xiangerlin + * @Date 2024/1/3 14:35 + **/ +public class PayResponseDTO { + + private String busNum;//申请单编号 + private String errorCode;//错误编码 + private String errorMsg;//错误信息 + private String freezeFlowNum;//内部户冻结流水号 + private String recordNum;//批量经办序号 + private String referenceNum;//业务参考号 + private Boolean successed;//是否成功 + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFreezeFlowNum() { + return freezeFlowNum; + } + + public void setFreezeFlowNum(String freezeFlowNum) { + this.freezeFlowNum = freezeFlowNum; + } + + public String getRecordNum() { + return recordNum; + } + + public void setRecordNum(String recordNum) { + this.recordNum = recordNum; + } + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public Boolean getSuccessed() { + return successed; + } + + public void setSuccessed(Boolean successed) { + this.successed = successed; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResultResDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResultResDTO.java new file mode 100644 index 00000000..4ab82489 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/PayResultResDTO.java @@ -0,0 +1,890 @@ +package com.hzya.frame.cbs8.dto.res; + +/** + * @Description 交易结果查询data节点响应的参数 + * @Author xiangerlin + * @Date 2024/1/3 15:45 + **/ +public class PayResultResDTO { + + private String payDate;//支付日期 + private String accountFlag; + + private String agentDetails; + + private String amount; + + private String bankExtend1; + + private String bankExtend10; + + private String bankExtend11; + + private String bankExtend2; + + private String bankExtend3; + + private String bankExtend4; + + private String bankExtend5; + + private String bankExtend6; + + private String bankExtend7; + + private String bankExtend8; + + private String bankExtend9; + + private String bankInterfaceType; + + private String bankNum; + + private String bankVersion; + + private String batchNum; + + private String busNum; + + private String busType; + + private String checkCodeList; + + private String cityFlag; + + private String cnapsCode; + + private String createBy; + + private String createByName; + + private String createTime; + + private String currency; + + private String dealPeopleList; + + private String detailNum; + + private String erpExtend1; + + private String erpExtend2; + + private String erpExtend3; + + private String errorMsg; + + private String expectTime; + + + + private String extend1; + + private String extend2; + + private String extend3; + + private String extend4; + + private String extend5; + + private String freezeFlowNum; + + private String freezeStatus; + + private String id; + + private String innerAccount; + + private String innerAccountName; + + private String inputType; + + private String isDeleted; + + private String isSaveRev; + + private String lastPrintTime; + + private String lastPrintUser; + + private String operaterOrgCode; + + private String operaterOrgCodeList; + + private String operaterOrgName; + + private String payAccount; + + private String payAccountName; + + private String payAccountSeq; + + private String payBankName; + + private String payBankType; + + private String payChannel; + + private String payOrgCode; + + private String payOrgName; + + private String payStatus;// 支付状态 + + private String paymentApplyUnionDTO; + + private String personalFlag; + + private String printTimes; + + private String procInstId; + + private String procStatus; + + private String projectCode; + + private String purpose; + + private String realName; + + private String realRevAccount; + + private String realTimeTag; + + private String referenceNum; + + private String revAccount; + + private String revAccountName; + + private String revAccountSeq; + + private String revBankArea; + + private String revBankName; + + private String revBankType; + + private String revCity; + + private String revProvince; + + private String status;//支付申请状态 + + private String summary; + + private String unitCode; + + private String unitName; + + private String updateBy; + + private String updateTime; + + private String urgentTag; + + public String getAccountFlag() { + return accountFlag; + } + + public void setAccountFlag(String accountFlag) { + this.accountFlag = accountFlag; + } + + public String getAgentDetails() { + return agentDetails; + } + + public void setAgentDetails(String agentDetails) { + this.agentDetails = agentDetails; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getBankExtend1() { + return bankExtend1; + } + + public void setBankExtend1(String bankExtend1) { + this.bankExtend1 = bankExtend1; + } + + public String getBankExtend10() { + return bankExtend10; + } + + public void setBankExtend10(String bankExtend10) { + this.bankExtend10 = bankExtend10; + } + + public String getBankExtend11() { + return bankExtend11; + } + + public void setBankExtend11(String bankExtend11) { + this.bankExtend11 = bankExtend11; + } + + public String getBankExtend2() { + return bankExtend2; + } + + public void setBankExtend2(String bankExtend2) { + this.bankExtend2 = bankExtend2; + } + + public String getBankExtend3() { + return bankExtend3; + } + + public void setBankExtend3(String bankExtend3) { + this.bankExtend3 = bankExtend3; + } + + public String getBankExtend4() { + return bankExtend4; + } + + public void setBankExtend4(String bankExtend4) { + this.bankExtend4 = bankExtend4; + } + + public String getBankExtend5() { + return bankExtend5; + } + + public void setBankExtend5(String bankExtend5) { + this.bankExtend5 = bankExtend5; + } + + public String getBankExtend6() { + return bankExtend6; + } + + public void setBankExtend6(String bankExtend6) { + this.bankExtend6 = bankExtend6; + } + + public String getBankExtend7() { + return bankExtend7; + } + + public void setBankExtend7(String bankExtend7) { + this.bankExtend7 = bankExtend7; + } + + public String getBankExtend8() { + return bankExtend8; + } + + public void setBankExtend8(String bankExtend8) { + this.bankExtend8 = bankExtend8; + } + + public String getBankExtend9() { + return bankExtend9; + } + + public void setBankExtend9(String bankExtend9) { + this.bankExtend9 = bankExtend9; + } + + public String getBankInterfaceType() { + return bankInterfaceType; + } + + public void setBankInterfaceType(String bankInterfaceType) { + this.bankInterfaceType = bankInterfaceType; + } + + public String getBankNum() { + return bankNum; + } + + public void setBankNum(String bankNum) { + this.bankNum = bankNum; + } + + public String getBankVersion() { + return bankVersion; + } + + public void setBankVersion(String bankVersion) { + this.bankVersion = bankVersion; + } + + public String getBatchNum() { + return batchNum; + } + + public void setBatchNum(String batchNum) { + this.batchNum = batchNum; + } + + public String getBusNum() { + return busNum; + } + + public void setBusNum(String busNum) { + this.busNum = busNum; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getCheckCodeList() { + return checkCodeList; + } + + public void setCheckCodeList(String checkCodeList) { + this.checkCodeList = checkCodeList; + } + + public String getCityFlag() { + return cityFlag; + } + + public void setCityFlag(String cityFlag) { + this.cityFlag = cityFlag; + } + + public String getCnapsCode() { + return cnapsCode; + } + + public void setCnapsCode(String cnapsCode) { + this.cnapsCode = cnapsCode; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public String getCreateByName() { + return createByName; + } + + public void setCreateByName(String createByName) { + this.createByName = createByName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getDealPeopleList() { + return dealPeopleList; + } + + public void setDealPeopleList(String dealPeopleList) { + this.dealPeopleList = dealPeopleList; + } + + public String getDetailNum() { + return detailNum; + } + + public void setDetailNum(String detailNum) { + this.detailNum = detailNum; + } + + public String getErpExtend1() { + return erpExtend1; + } + + public void setErpExtend1(String erpExtend1) { + this.erpExtend1 = erpExtend1; + } + + public String getErpExtend2() { + return erpExtend2; + } + + public void setErpExtend2(String erpExtend2) { + this.erpExtend2 = erpExtend2; + } + + public String getErpExtend3() { + return erpExtend3; + } + + public void setErpExtend3(String erpExtend3) { + this.erpExtend3 = erpExtend3; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getExpectTime() { + return expectTime; + } + + public void setExpectTime(String expectTime) { + this.expectTime = expectTime; + } + + public String getExtend1() { + return extend1; + } + + public void setExtend1(String extend1) { + this.extend1 = extend1; + } + + public String getExtend2() { + return extend2; + } + + public void setExtend2(String extend2) { + this.extend2 = extend2; + } + + public String getExtend3() { + return extend3; + } + + public void setExtend3(String extend3) { + this.extend3 = extend3; + } + + public String getExtend4() { + return extend4; + } + + public void setExtend4(String extend4) { + this.extend4 = extend4; + } + + public String getExtend5() { + return extend5; + } + + public void setExtend5(String extend5) { + this.extend5 = extend5; + } + + public String getFreezeFlowNum() { + return freezeFlowNum; + } + + public void setFreezeFlowNum(String freezeFlowNum) { + this.freezeFlowNum = freezeFlowNum; + } + + public String getFreezeStatus() { + return freezeStatus; + } + + public void setFreezeStatus(String freezeStatus) { + this.freezeStatus = freezeStatus; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getInnerAccount() { + return innerAccount; + } + + public void setInnerAccount(String innerAccount) { + this.innerAccount = innerAccount; + } + + public String getInnerAccountName() { + return innerAccountName; + } + + public void setInnerAccountName(String innerAccountName) { + this.innerAccountName = innerAccountName; + } + + public String getInputType() { + return inputType; + } + + public void setInputType(String inputType) { + this.inputType = inputType; + } + + public String getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(String isDeleted) { + this.isDeleted = isDeleted; + } + + public String getIsSaveRev() { + return isSaveRev; + } + + public void setIsSaveRev(String isSaveRev) { + this.isSaveRev = isSaveRev; + } + + public String getLastPrintTime() { + return lastPrintTime; + } + + public void setLastPrintTime(String lastPrintTime) { + this.lastPrintTime = lastPrintTime; + } + + public String getLastPrintUser() { + return lastPrintUser; + } + + public void setLastPrintUser(String lastPrintUser) { + this.lastPrintUser = lastPrintUser; + } + + public String getOperaterOrgCode() { + return operaterOrgCode; + } + + public void setOperaterOrgCode(String operaterOrgCode) { + this.operaterOrgCode = operaterOrgCode; + } + + public String getOperaterOrgCodeList() { + return operaterOrgCodeList; + } + + public void setOperaterOrgCodeList(String operaterOrgCodeList) { + this.operaterOrgCodeList = operaterOrgCodeList; + } + + public String getOperaterOrgName() { + return operaterOrgName; + } + + public void setOperaterOrgName(String operaterOrgName) { + this.operaterOrgName = operaterOrgName; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPayAccountName() { + return payAccountName; + } + + public void setPayAccountName(String payAccountName) { + this.payAccountName = payAccountName; + } + + public String getPayAccountSeq() { + return payAccountSeq; + } + + public void setPayAccountSeq(String payAccountSeq) { + this.payAccountSeq = payAccountSeq; + } + + public String getPayBankName() { + return payBankName; + } + + public void setPayBankName(String payBankName) { + this.payBankName = payBankName; + } + + public String getPayBankType() { + return payBankType; + } + + public void setPayBankType(String payBankType) { + this.payBankType = payBankType; + } + + public String getPayChannel() { + return payChannel; + } + + public void setPayChannel(String payChannel) { + this.payChannel = payChannel; + } + + public String getPayOrgCode() { + return payOrgCode; + } + + public void setPayOrgCode(String payOrgCode) { + this.payOrgCode = payOrgCode; + } + + public String getPayOrgName() { + return payOrgName; + } + + public void setPayOrgName(String payOrgName) { + this.payOrgName = payOrgName; + } + + public String getPayStatus() { + return payStatus; + } + + public void setPayStatus(String payStatus) { + this.payStatus = payStatus; + } + + public String getPaymentApplyUnionDTO() { + return paymentApplyUnionDTO; + } + + public void setPaymentApplyUnionDTO(String paymentApplyUnionDTO) { + this.paymentApplyUnionDTO = paymentApplyUnionDTO; + } + + public String getPersonalFlag() { + return personalFlag; + } + + public void setPersonalFlag(String personalFlag) { + this.personalFlag = personalFlag; + } + + public String getPrintTimes() { + return printTimes; + } + + public void setPrintTimes(String printTimes) { + this.printTimes = printTimes; + } + + public String getProcInstId() { + return procInstId; + } + + public void setProcInstId(String procInstId) { + this.procInstId = procInstId; + } + + public String getProcStatus() { + return procStatus; + } + + public void setProcStatus(String procStatus) { + this.procStatus = procStatus; + } + + public String getProjectCode() { + return projectCode; + } + + public void setProjectCode(String projectCode) { + this.projectCode = projectCode; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getRealName() { + return realName; + } + + public void setRealName(String realName) { + this.realName = realName; + } + + public String getRealRevAccount() { + return realRevAccount; + } + + public void setRealRevAccount(String realRevAccount) { + this.realRevAccount = realRevAccount; + } + + public String getRealTimeTag() { + return realTimeTag; + } + + public void setRealTimeTag(String realTimeTag) { + this.realTimeTag = realTimeTag; + } + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getRevAccountSeq() { + return revAccountSeq; + } + + public void setRevAccountSeq(String revAccountSeq) { + this.revAccountSeq = revAccountSeq; + } + + public String getRevBankArea() { + return revBankArea; + } + + public void setRevBankArea(String revBankArea) { + this.revBankArea = revBankArea; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getRevCity() { + return revCity; + } + + public void setRevCity(String revCity) { + this.revCity = revCity; + } + + public String getRevProvince() { + return revProvince; + } + + public void setRevProvince(String revProvince) { + this.revProvince = revProvince; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getUnitCode() { + return unitCode; + } + + public void setUnitCode(String unitCode) { + this.unitCode = unitCode; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUrgentTag() { + return urgentTag; + } + + public void setUrgentTag(String urgentTag) { + this.urgentTag = urgentTag; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/TransactionDetailDTO.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/TransactionDetailDTO.java new file mode 100644 index 00000000..9cd4e3cd --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/dto/res/TransactionDetailDTO.java @@ -0,0 +1,207 @@ +package com.hzya.frame.cbs8.dto.res; + +/** + * @Description 境内账户交易明细 + * @Author xiangerlin + * @Date 2023/12/29 16:40 + **/ +public class TransactionDetailDTO{ + private String accountNo;//银行账号 + private String accountName;//银行名称 + private String bankType;//银行类型 + private String openBank;//开户行名称 + private String bankTransactionDate;//交易日期 + private String bankSerialNumber;//银行流水号 + private String transactionSerialNumber;//交易流水号 + private String currency;//币种 + private String loanType;//借贷类型 + private String incurredAmount;//发生额 + private String accountBalance;//交易后余额 + private String purpose;//用途 + private String digest;//摘要 + private String oppositeAccount;//对方账号 + private String oppositeName;//对方户名 + private String oppositeOpeningBank;//对方开户行 + private String associatedCustomerNumber;//关联客户号 + private String merchantNumber;//客商编号 + private String merchantName;//客商名称 + private String transactionCode;//交易代码 + private String remark;//备注 + private String erpSerialNumber;//erp业务参考号 + + public String getAccountNo() { + return accountNo; + } + + public void setAccountNo(String accountNo) { + this.accountNo = accountNo; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getBankType() { + return bankType; + } + + public void setBankType(String bankType) { + this.bankType = bankType; + } + + public String getOpenBank() { + return openBank; + } + + public void setOpenBank(String openBank) { + this.openBank = openBank; + } + + public String getBankTransactionDate() { + return bankTransactionDate; + } + + public void setBankTransactionDate(String bankTransactionDate) { + this.bankTransactionDate = bankTransactionDate; + } + + public String getBankSerialNumber() { + return bankSerialNumber; + } + + public void setBankSerialNumber(String bankSerialNumber) { + this.bankSerialNumber = bankSerialNumber; + } + + public String getTransactionSerialNumber() { + return transactionSerialNumber; + } + + public void setTransactionSerialNumber(String transactionSerialNumber) { + this.transactionSerialNumber = transactionSerialNumber; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getLoanType() { + return loanType; + } + + public void setLoanType(String loanType) { + this.loanType = loanType; + } + + public String getIncurredAmount() { + return incurredAmount; + } + + public void setIncurredAmount(String incurredAmount) { + this.incurredAmount = incurredAmount; + } + + public String getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(String accountBalance) { + this.accountBalance = accountBalance; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getDigest() { + return digest; + } + + public void setDigest(String digest) { + this.digest = digest; + } + + public String getOppositeAccount() { + return oppositeAccount; + } + + public void setOppositeAccount(String oppositeAccount) { + this.oppositeAccount = oppositeAccount; + } + + public String getOppositeName() { + return oppositeName; + } + + public void setOppositeName(String oppositeName) { + this.oppositeName = oppositeName; + } + + public String getOppositeOpeningBank() { + return oppositeOpeningBank; + } + + public void setOppositeOpeningBank(String oppositeOpeningBank) { + this.oppositeOpeningBank = oppositeOpeningBank; + } + + public String getAssociatedCustomerNumber() { + return associatedCustomerNumber; + } + + public void setAssociatedCustomerNumber(String associatedCustomerNumber) { + this.associatedCustomerNumber = associatedCustomerNumber; + } + + public String getMerchantNumber() { + return merchantNumber; + } + + public void setMerchantNumber(String merchantNumber) { + this.merchantNumber = merchantNumber; + } + + public String getMerchantName() { + return merchantName; + } + + public void setMerchantName(String merchantName) { + this.merchantName = merchantName; + } + + public String getTransactionCode() { + return transactionCode; + } + + public void setTransactionCode(String transactionCode) { + this.transactionCode = transactionCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getErpSerialNumber() { + return erpSerialNumber; + } + + public void setErpSerialNumber(String erpSerialNumber) { + this.erpSerialNumber = erpSerialNumber; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/entity/PaymentEntity.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/entity/PaymentEntity.java new file mode 100644 index 00000000..c98cfb5f --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/entity/PaymentEntity.java @@ -0,0 +1,327 @@ +package com.hzya.frame.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/6 16:17 + **/ +public class PaymentEntity extends BaseEntity { + + private String oaId;//主表id + private String formsonId;//明细表id + private String payCompany;//付款公司 + private String title;//流程标题 + private String tableName;//表名称 + private String billName;//单据名称 + private String referenceNum;//业务参考号 唯一id + private String referenceNumNew;//重试的时候生成新的业务参考号 + private String busType;//业务类型 + private String payResultField;//支付结果字段 + private String payDateField;//打款日期字段 + private String applyCodeField;//支付申请单号字段 + private String receiptFiled;//电子回单字段 + private String summaryId;//summaryid + private String startDate;//单据日期 + private String finishedflag;//流程状态 + private String payDate;//打款日期 + private String payResult;//支付结果 + private String applyCode;//支付申请单号 + private String payAccount;//付款账号 + private String payBankName;//付款开户银行 + private String amount;//金额 + private String purpose;//支付用途 + private String revAccount;//收款账号 + private String revBankName;//收款开户行名称 + private String revBankType;//收款银行类型 + private String revAccountName;//收款账户名称 + private String cnapsCode;//联行号 + private String receipt;//电子回单 + private String currency;//币种 数字 + private String currencyName;//币种 中文 + private String currencyCode;//币种编码 + private String personalFlag;//公私标记 + private String payType;//付款类别 + private String payCompanyCode;//付款公司编码 + + public String getOaId() { + return oaId; + } + + public void setOaId(String oaId) { + this.oaId = oaId; + } + + public String getPayCompany() { + return payCompany; + } + + public void setPayCompany(String payCompany) { + this.payCompany = payCompany; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getBillName() { + return billName; + } + + public void setBillName(String billName) { + this.billName = billName; + } + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getReferenceNumNew() { + return referenceNumNew; + } + + public void setReferenceNumNew(String referenceNumNew) { + this.referenceNumNew = referenceNumNew; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getPayResultField() { + return payResultField; + } + + public void setPayResultField(String payResultField) { + this.payResultField = payResultField; + } + + public String getPayDateField() { + return payDateField; + } + + public void setPayDateField(String payDateField) { + this.payDateField = payDateField; + } + + public String getReceiptFiled() { + return receiptFiled; + } + + public void setReceiptFiled(String receiptFiled) { + this.receiptFiled = receiptFiled; + } + + public String getSummaryId() { + return summaryId; + } + + public void setSummaryId(String summaryId) { + this.summaryId = summaryId; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getFinishedflag() { + return finishedflag; + } + + public void setFinishedflag(String finishedflag) { + this.finishedflag = finishedflag; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } + + public String getPayResult() { + return payResult; + } + + public void setPayResult(String payResult) { + this.payResult = payResult; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPayBankName() { + return payBankName; + } + + public void setPayBankName(String payBankName) { + this.payBankName = payBankName; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getCnapsCode() { + return cnapsCode; + } + + public void setCnapsCode(String cnapsCode) { + this.cnapsCode = cnapsCode; + } + + public String getReceipt() { + return receipt; + } + + public void setReceipt(String receipt) { + this.receipt = receipt; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getCurrencyName() { + return currencyName; + } + + public void setCurrencyName(String currencyName) { + this.currencyName = currencyName; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public String getPersonalFlag() { + return personalFlag; + } + + public void setPersonalFlag(String personalFlag) { + this.personalFlag = personalFlag; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public String getPayCompanyCode() { + return payCompanyCode; + } + + public void setPayCompanyCode(String payCompanyCode) { + this.payCompanyCode = payCompanyCode; + } + + public String getFormsonId() { + return formsonId; + } + + public void setFormsonId(String formsonId) { + this.formsonId = formsonId; + } + + public String getApplyCodeField() { + return applyCodeField; + } + + public void setApplyCodeField(String applyCodeField) { + this.applyCodeField = applyCodeField; + } + + public String getApplyCode() { + return applyCode; + } + + public void setApplyCode(String applyCode) { + this.applyCode = applyCode; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8ExtService.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8ExtService.java new file mode 100644 index 00000000..5f47a625 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8ExtService.java @@ -0,0 +1,60 @@ +package com.hzya.frame.cbs8.service; + +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/7 14:20 + **/ +public interface ICbs8ExtService { + + /** + * 支付经办 + * @param entity + * @return + */ + SysExtensionApiEntity payApply(SysExtensionApiEntity entity); + + /** + * 代发代扣 支付申请 + * @param entity + * @return + */ + SysExtensionApiEntity agentPayApply(SysExtensionApiEntity entity); + + /** + * 交易结果查询 + * @param entity + * @return + */ + SysExtensionApiEntity payResult(SysExtensionApiEntity entity); + + /** + * 交易明细查询 + * @param entity + * @return + */ + SysExtensionApiEntity transactionDetailQuery(SysExtensionApiEntity entity); + /** + * 代发代扣 + * @param entity + * @return + */ + SysExtensionApiEntity payApplyAgent(SysExtensionApiEntity entity); + + /** + * 代发代扣结果查询 + * @param entity + * @return + */ + SysExtensionApiEntity payApplyAgentResult(SysExtensionApiEntity entity); + + /** + * 电子回单查询 + * @param entity + * @return + */ + SysExtensionApiEntity elecQuery(SysExtensionApiEntity entity); + +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8Service.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8Service.java new file mode 100644 index 00000000..670cd66f --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/ICbs8Service.java @@ -0,0 +1,66 @@ +package com.hzya.frame.cbs8.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.cbs8.dto.req.*; +import com.hzya.frame.cbs8.dto.res.*; +import com.hzya.frame.cbs8.entity.PaymentEntity; + +import java.util.List; + +/** + * @Description cbs8接口 + * @Author xiangerlin + * @Date 2024/6/6 15:30 + **/ +public interface ICbs8Service { + + /** + * 支付申请 + * @param payJsonStr + */ + PayResponseDTO payApply(String payJsonStr); + + /** + * 通过业务参考号查询交易结果 3.2.6 + * @param resultRequestDTO + * @return + * @throws Exception + */ + List<PayResultResDTO> queryPayResult(PayResultRequestDTO resultRequestDTO); + + /** + * 查询电子回单 + * @param elecRequestDTO + * startDate 开始日期 - 必填 + * endDate 结束日期 -必填 + * billStatus 回单状态 1-已取回 0-未取回 ,只有已取回的才能下载 + * settleBusinessReferenceCode 业务参考号 + * @return List<ElecResponseDTO> + * bucketFileUrl 回单下载地址 + * billFileName 回单文件名称 + * settleBusinessReferenceCode 业务参考号 + */ + List<ElecResponseDTO> queryElecBill(ElecRequestDTO elecRequestDTO); + + /** + * 查询交易明细 + * @param transactionDetailReqDTO + * @return + */ + CbsResDataDTO queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO); + + /** + * 代发代扣 支付申请 + * @param paymentApplySubmitReqDTO + * @param paymentApplyAgentList + */ + PayResponseDTO agentPayApply(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO, List<PaymentApplyAgentDTO> paymentApplyAgentList); + + /** + * 代发代扣 详情查询 + * @param agentPayResultRequestDTO + * @return + */ + AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO); + +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ExtServiceImpl.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ExtServiceImpl.java new file mode 100644 index 00000000..68527318 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ExtServiceImpl.java @@ -0,0 +1,216 @@ +package com.hzya.frame.cbs8.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.cbs8.dto.req.*; +import com.hzya.frame.cbs8.entity.PaymentEntity; +import com.hzya.frame.cbs8.service.ICbs8ExtService; +import com.hzya.frame.cbs8.util.CBSUtil; +import com.hzya.frame.cbs8.util.CbsAccessToken; +import com.hzya.frame.stringutil.StringUtil; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.http.protocol.HTTP; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import java.util.*; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/7 14:20 + **/ + +@Service(value = "cbs8Ext") +public class Cbs8ExtServiceImpl implements ICbs8ExtService { + + Logger logger = LoggerFactory.getLogger(getClass()); + /** + * 支付经办 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity payApply(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + PaymentEntity paymentEntity = JSONObject.parseObject(bodys,PaymentEntity.class); + if (null != paymentEntity){ + PayRequestDTO payRequestDTO = new PayRequestDTO(); + String ferenceNum = Convert.toStr(paymentEntity.getReferenceNumNew(),paymentEntity.getReferenceNum()); + payRequestDTO.setReferenceNum(ferenceNum); + payRequestDTO.setBusType(paymentEntity.getBusType()); + payRequestDTO.setAmount(paymentEntity.getAmount()); + payRequestDTO.setCurrency(paymentEntity.getCurrency()); + payRequestDTO.setPayAccount(StringUtil.replaceBlank(paymentEntity.getPayAccount())); + payRequestDTO.setRevAccount(StringUtil.replaceBlank(paymentEntity.getRevAccount())); + payRequestDTO.setRevAccountName(StringUtil.replaceBlank(paymentEntity.getRevAccountName())); + payRequestDTO.setRevBankType(StringUtil.replaceBlank((paymentEntity.getRevBankType()))); + payRequestDTO.setRevBankName(StringUtil.replaceBlank(paymentEntity.getRevBankName())); + payRequestDTO.setCnapsCode(StringUtil.replaceBlank((paymentEntity.getCnapsCode()))); + payRequestDTO.setPurpose(paymentEntity.getPurpose()); + payRequestDTO.setErpExtend1(paymentEntity.getPayType()); + //集中支付模式 + if (CBSUtil.CENTRALIZED_PAYMENT_TYPE.equals(payRequestDTO.getBusType())){ + payRequestDTO.setBusiStep("1"); + payRequestDTO.setApplyUnitCode(paymentEntity.getPayCompanyCode()); + payRequestDTO.setPayAccount(null); + } + List<PayRequestDTO> list = Arrays.asList(payRequestDTO); + String requestData = JSONObject.toJSONString(list); + //加密 签名 + encrypAndsign(entity,requestData); + } + } + return entity; + } + + /** + * 代发代扣 支付申请 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity agentPayApply(SysExtensionApiEntity entity) { + String boyds = entity.getBodys(); + if (StrUtil.isNotEmpty(boyds)){ + AgentPayRequestDTO agentPayRequest = JSONObject.parseObject(boyds,AgentPayRequestDTO.class); + String requestData = JSONObject.toJSONString(agentPayRequest); + //加密签名 + encrypAndsign(entity, requestData); + } + return entity; + } + + /** + * 交易结果查询 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity payResult(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + PayResultRequestDTO payResultRequest = JSONObject.parseObject(bodys,PayResultRequestDTO.class); + if (null != payResultRequest && StrUtil.isNotEmpty(payResultRequest.getReferenceNum())){ + String requestData = JSONObject.toJSONString(payResultRequest); + //加密 签名 + encrypAndsign(entity,requestData); + }else { + throw new BaseSystemException("业务参考号不能为空!!!!"); + } + } + return entity; + } + + /** + * 交易明细查询 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity transactionDetailQuery(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + TransactionDetailReqDTO transactionDetailReqDTO = JSONObject.parseObject(bodys,TransactionDetailReqDTO.class); + String requestData = JSONObject.toJSONString(transactionDetailReqDTO); + ////加密签名 + encrypAndsign(entity, requestData); + } + return entity; + } + + /** + * 代发代扣 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity payApplyAgent(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + AgentPayRequestDTO agentPayRequest = JSONObject.parseObject(bodys,AgentPayRequestDTO.class); + String requestData = JSONObject.toJSONString(agentPayRequest); + ////加密签名 + encrypAndsign(entity, requestData); + } + return entity; + } + + + + /** + * 代发代扣结果查询 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity payApplyAgentResult(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + AgentPayResultRequestDTO agentPayResultRequestDTO = JSONObject.parseObject(bodys,AgentPayResultRequestDTO.class); + String requestData = JSONObject.toJSONString(agentPayResultRequestDTO); + encrypAndsign(entity,requestData); + } + return entity; + } + + /** + * 电子回单查询 + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity elecQuery(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + ElecRequestDTO elecRequestDTO = JSONObject.parseObject(bodys,ElecRequestDTO.class); + String requestData = JSONObject.toJSONString(elecRequestDTO); + //加密 签名 + encrypAndsign(entity,requestData); + } + return entity; + } + + + /** + * 请求头 + * @param sign + * @param timestamp + * @return + */ + private Map<String,String> headersValueOf(String sign, long timestamp){ + Map<String,String> header = new HashMap(); + header.put(CBSUtil.SIGN_HEADER_NAME,sign); + header.put(CBSUtil.TIMESTAMP_HEADER,Long.toString(timestamp)); + header.put(HTTP.CONTENT_TYPE,CBSUtil.TARGET_CONTENT_TYPE); + header.put(CBSUtil.AUTHORIZATION,CBSUtil.BEARER+ CbsAccessToken.getToken()); + return header; + } + + /** + * 加密 签名 + * @param entity 接口转发参数对象 + * @param requestData 请求参数json字符串 + */ + private void encrypAndsign(SysExtensionApiEntity entity, String requestData) { + //签名 + long timestamp = System.currentTimeMillis(); + logger.info("CBS请求参数明文:{}",requestData); + String sign = CBSUtil.sign(requestData,timestamp); + //加密 + byte[] encryptedData = CBSUtil.encrypt(requestData); + Map<String,String> header = headersValueOf(sign,timestamp); + entity.setByteBodys(encryptedData); + entity.setHeaders(header); + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ServiceImpl.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ServiceImpl.java new file mode 100644 index 00000000..f70359cc --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/service/impl/Cbs8ServiceImpl.java @@ -0,0 +1,271 @@ +package com.hzya.frame.cbs8.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapBuilder; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.hzya.frame.cbs8.dto.req.*; +import com.hzya.frame.cbs8.dto.res.*; +import com.hzya.frame.cbs8.entity.PaymentEntity; +import com.hzya.frame.cbs8.service.ICbs8Service; +import com.hzya.frame.cbs8.util.CBSUtil; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.Map; + +/** + * @Description cbs8接口 + * @Author xiangerlin + * @Date 2024/6/7 14:44 + **/ +@Service +public class Cbs8ServiceImpl implements ICbs8Service { + Logger logger = LoggerFactory.getLogger(getClass()); + @Value("${zt.url}") + private String zt_url; + @Override + public PayResponseDTO payApply(String payJsonStr) { + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260001") + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj") + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(payJsonStr).timeout(60000).execute().body(); + //解密响应报文 + String result = decryptResBody(body); + if (StrUtil.isNotEmpty(result)){ + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + List<JSONObject> dataList = cbsResponseDTO.getData(); + if (CollectionUtils.isNotEmpty(dataList)){ + JSONObject o = dataList.get(0); + PayResponseDTO payResponseDTO = JSON.toJavaObject(o, PayResponseDTO.class); + return payResponseDTO; + } + } + return new PayResponseDTO(); + } + + /** + * 通过业务参考号查询交易结果 3.2.6 + * + * @param resultRequestDTO + * @return + * @throws Exception + */ + @Override + public List<PayResultResDTO> queryPayResult(PayResultRequestDTO resultRequestDTO) { + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260002") + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj") + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(JSONObject.toJSONString(resultRequestDTO)).timeout(60000).execute().body(); + String result = decryptResBody(body); + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){ + List<JSONObject> dataList = cbsResponseDTO.getData(); + List<PayResultResDTO> payResultList = CBSUtil.convertJsonArrayToList(dataList, PayResultResDTO.class); + return payResultList; + } + return new ArrayList<PayResultResDTO>(); + } + + /** + * 查询电子回单 + * + * @param elecRequestDTO startDate 开始日期 - 必填 + * endDate 结束日期 -必填 + * billStatus 回单状态 1-已取回 0-未取回 ,只有已取回的才能下载 + * settleBusinessReferenceCode 业务参考号 + * @return List<ElecResponseDTO> + * bucketFileUrl 回单下载地址 + * billFileName 回单文件名称 + * settleBusinessReferenceCode 业务参考号 + */ + @Override + public List<ElecResponseDTO> queryElecBill(ElecRequestDTO elecRequestDTO) { + if (null == elecRequestDTO){ + elecRequestDTO = new ElecRequestDTO(); + } + if (StrUtil.isEmpty(elecRequestDTO.getStartDate())){ + elecRequestDTO.setStartDate(DateUtil.today()); + } + if (StrUtil.isEmpty(elecRequestDTO.getEndDate())){ + elecRequestDTO.setEndDate(DateUtil.today()); + } + String params = JSON.toJSONString(elecRequestDTO, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.QuoteFieldNames); + logger.info("电子回单查询请求参数为:{}", params); + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260005") + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj") + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(params).timeout(60000).execute().body(); + String result = decryptResBody(body); + if (StrUtil.isNotEmpty(result)){ + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + if (null != cbsResponseDTO){ + if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){ + List<JSONObject> dataList = cbsResponseDTO.getData(); + if (CollectionUtils.isNotEmpty(dataList)){ + JSONObject jsonObject = dataList.get(0); + CbsResDataDTO dataDTO = JSON.toJavaObject(jsonObject, CbsResDataDTO.class); + List<ElecResponseDTO> elecResponseDTOList = CBSUtil.convertJsonArrayToList(dataDTO.getList(), ElecResponseDTO.class); + return elecResponseDTOList; + } + } + } + } + return null; + } + + /** + * 查询交易明细 + * + * @param transactionDetailReqDTO + * @return + */ + @Override + public CbsResDataDTO queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO) { + //页码 + int currentPage = transactionDetailReqDTO.getCurrentPage(); + //每页条数 + int pageSize = transactionDetailReqDTO.getPageSize(); + if (currentPage == 0){ + currentPage = CBSUtil.DEFAULT_CURRENT_PAGE; + transactionDetailReqDTO.setCurrentPage(currentPage);//页码 + } + if (pageSize == 0){ + pageSize = CBSUtil.DEFAULT_PAGE_SIZE; + transactionDetailReqDTO.setPageSize(pageSize); + } + if (StrUtil.isNotEmpty(transactionDetailReqDTO.getStartDate())){ + transactionDetailReqDTO.setStartDate(DateUtil.today()); + } + if (StrUtil.isNotEmpty(transactionDetailReqDTO.getEndDate())){ + transactionDetailReqDTO.setEndDate(DateUtil.today()); + } + String params = JSON.toJSONString(transactionDetailReqDTO); + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260006") + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj") + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(params).timeout(60000).execute().body(); + String result = decryptResBody(body); + if (StrUtil.isNotEmpty(result)){ + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + if (null != cbsResponseDTO){ + if (CollectionUtils.isNotEmpty(cbsResponseDTO.getData())){ + List<JSONObject> list = cbsResponseDTO.getData(); + if (CollectionUtils.isNotEmpty(list)){ + JSONObject jsonObject = list.get(0); + CbsResDataDTO dataDTO = JSON.toJavaObject(jsonObject, CbsResDataDTO.class); + return dataDTO; + } + } + } + } + return new CbsResDataDTO(); + } + + /** + * 代发代扣 支付申请 + * @param paymentApplySubmitReqDTO + * @param paymentApplyAgentList + */ + @Override + public PayResponseDTO agentPayApply(PaymentApplySubmitReqDTO paymentApplySubmitReqDTO, List<PaymentApplyAgentDTO> paymentApplyAgentList) { + AgentPayRequestDTO param = new AgentPayRequestDTO(); + param.setPaymentApplySubmitReqDTO(paymentApplySubmitReqDTO); + param.setPaymentApplyAgentDTO(paymentApplyAgentList); + String params = JSON.toJSONString(param); + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260003") + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj") + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(params).timeout(60000).execute().body(); + String result = decryptResBody(body); + if (StrUtil.isNotEmpty(result)){ + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + List<JSONObject> dataList = cbsResponseDTO.getData(); + if (CollectionUtils.isNotEmpty(dataList)){ + JSONObject o = dataList.get(0); + PayResponseDTO payResponseDTO = JSON.toJavaObject(o, PayResponseDTO.class); + return payResponseDTO; + } + } + return new PayResponseDTO(); + } + + /** + * 代发代扣 详情查询 + * + * @param agentPayResultRequestDTO + * @return + */ + @Override + public AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO) { + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000260004")//数智办公 + .put("publicKey","ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//数智财资 + .put("secretKey","7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800026") + .build(); + String params = JSON.toJSONString(agentPayResultRequestDTO); + String body = HttpRequest.post(zt_url).addHeaders(headerMap).body(params).timeout(60000).execute().body(); + //解密报文 + String result = decryptResBody(body); + if (StrUtil.isNotEmpty(result)){ + CbsResponseDTO cbsResponseDTO = JSONObject.parseObject(result, CbsResponseDTO.class); + List<JSONObject> dataList = cbsResponseDTO.getData(); + if (CollectionUtils.isNotEmpty(dataList)){ + JSONObject o = dataList.get(0); + AgentPayResultResDTO agentPayResultResDTO = JSON.toJavaObject(o, AgentPayResultResDTO.class); + return agentPayResultResDTO; + } + } + return new AgentPayResultResDTO(); + } + + /** + * 解密响应报文 + * @param body + * @return + */ + private String decryptResBody(String body){ + if (StrUtil.isNotEmpty(body)){ + JsonResultEntity resultEntity = JSONObject.parseObject(body,JsonResultEntity.class); + String bodyBase64 = String.valueOf(resultEntity.getAttribute()); + byte[] bodyBytes = Base64.getDecoder().decode(bodyBase64); + //这里验证一下,如果系统异常 返回的报文没加密 + String test = new String(bodyBytes); + if (JSONUtil.isTypeJSON(test)){ + return test; + } + //解密报文 + String result = CBSUtil.decrypt(bodyBytes); + logger.info("银行响应参数:{}",result); + return result; + } + return null; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CBSUtil.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CBSUtil.java new file mode 100644 index 00000000..602a9124 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CBSUtil.java @@ -0,0 +1,187 @@ +package com.hzya.frame.cbs8.util; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import org.apache.commons.codec.binary.Base64; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/7 15:38 + **/ +@Component +public class CBSUtil { + /** + * 集中支付模式 + */ + public static final String CENTRALIZED_PAYMENT_TYPE = "401"; + /** + * 分页查询 最大条数 + */ + public static final int MAX_PAGE_SIZE = 1000; + /** + * 默认分页查询条数 + */ + public static final int DEFAULT_PAGE_SIZE = 100; + /** + * 默认页码 + */ + public static final int DEFAULT_CURRENT_PAGE = 1; + static Logger logger = LogManager.getLogger(CBSUtil.class); + + /** + * 请求参数格式 + */ + public static String TARGET_CONTENT_TYPE = "application/json"; + + /** + * 签名请求头参数名 + */ + public static String SIGN_HEADER_NAME = "X-MBCLOUD-API-SIGN"; + /** + * 时间戳请求头参数名 + */ + public static String TIMESTAMP_HEADER = "X-MBCLOUD-TIMESTAMP"; + + public static String ENCRYPTION_ENABLED_HEADER_NAME = "X-MBCLOUD-ENCRYPTION-ENABLED"; + + public static String X_MBCLOUD_COMPRESS = "X-Mbcloud-Compress"; + + /** + * 请求头token参数名 + */ + public static String AUTHORIZATION = "Authorization"; + + /** + *token前缀 + */ + public static String BEARER = "Bearer "; + + /** + * 财资管理云公钥(平台公钥) + */ + public static String bodyEncryptionKey; + + /** + * 企业私钥(加密) + */ + public static String signEncryptionPrivateKey; + + /** + * 企业私钥(解密) + */ + public static String bodyDecryptionKey; + + /** + * 财资管理云公钥(平台公钥) + */ + @Value("${cbs8.cbs_public_key:}") + public void setBodyEncryptionKey(String bodyEncryptionKey) { + CBSUtil.bodyEncryptionKey = bodyEncryptionKey; + } + /** + * 企业私钥(解密) + */ + @Value("${cbs8.ya_private_key:}") + public void setSignEncryptionPrivateKey(String signEncryptionPrivateKey) { + CBSUtil.signEncryptionPrivateKey = signEncryptionPrivateKey; + } + /** + * 企业私钥(解密) + */ + @Value("${cbs8.ya_private_key:}") + public void setBodyDecryptionKey(String bodyDecryptionKey) { + CBSUtil.bodyDecryptionKey = bodyDecryptionKey; + } + + //将json数组转为list + public static <T> List<T> convertJsonArrayToList(List<JSONObject> list, Class<T> clazz) { + String jsonArray = JSON.toJSONString(list); + List<T> result = JSON.parseObject(jsonArray, new TypeReference<List<T>>(clazz) {}); + return result; + } + + /** + * 将时间戳转换成日期字符串 + * @param timestamp + * @return + */ + public static String convertTimestampToString(String timestamp) { + if (StrUtil.isNotEmpty(timestamp) && NumberUtil.isNumber(timestamp)){ + // 创建SimpleDateFormat对象,指定日期时间格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 将时间戳转换为Date对象 + Date date = new Date(Long.valueOf(timestamp)); + + // 使用SimpleDateFormat格式化Date对象,得到字符串表示 + return sdf.format(date); + } + return null; + } + + /** + * 签名 + * @param requestData + * @return + */ + public static String sign(String requestData){ + long timestamp = System.currentTimeMillis(); + return sign(requestData,timestamp); + } + + /** + * 签名 + * @param requestData + * @param timestamp + * @return + */ + public static String sign(String requestData,long timestamp){ + + // 请求数据拼接: 报文体+时间戳 + byte[] requestDataBytes = requestData.getBytes(StandardCharsets.UTF_8); + byte[] timestampBytes = ("×tamp=" + timestamp).getBytes(StandardCharsets.UTF_8); + byte[] newBytes = new byte[requestDataBytes.length + timestampBytes.length]; + System.arraycopy(requestDataBytes, 0, newBytes, 0, requestDataBytes.length); + System.arraycopy(timestampBytes, 0, newBytes, requestDataBytes.length, timestampBytes.length); + + // 生成签名 + byte[] signature = SM2Util.sign(signEncryptionPrivateKey, newBytes); + String sign = Base64.encodeBase64String(SM2Util.encodeDERSignature(signature)); + logger.info("签名:{}", sign); + return sign; + } + + /** + * 加密 + * @param requestData + * @return + */ + public static byte[] encrypt(String requestData){ + byte[] encrypt = SM2Util.encrypt(bodyEncryptionKey, requestData.getBytes(StandardCharsets.UTF_8)); + return encrypt; + } + + public static String decrypt(byte[] cipherData){ + try { + byte[] decrypt = SM2Util.decrypt(bodyDecryptionKey, cipherData); + String text = new String(decrypt); + return text; + }catch (Exception e){ + logger.error("解密失败",e); + e.printStackTrace(); + } + return null; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CbsAccessToken.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CbsAccessToken.java new file mode 100644 index 00000000..341af450 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CbsAccessToken.java @@ -0,0 +1,140 @@ +package com.hzya.frame.cbs8.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.web.action.ApplicationContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.relational.core.sql.In; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description cbs token + * @Author xiangerlin + * @Date 2024/6/7 15:56 + **/ +@Component +public class CbsAccessToken { + + private static final Logger logger = LoggerFactory.getLogger(CbsAccessToken.class); + @Value("${cbs8.appId:}") + private String app_id; + @Value("${cbs8.appSecret:}") + private String app_secret; + @Value("${cbs8.url:}") + private String app_url; + + private static String appId; + private static String appSecret; + private static String url; + @PostConstruct + public void init() { + appId = app_id; + appSecret = app_secret; + url = app_url; + } + //刷新token用 + private static final String BEARER = "Bearer "; + /** + * 过期时间 + */ + private Long expiryTime ; + private String token; + + private CbsAccessToken(){ + + } + private static CbsAccessToken cbsAccessToken = new CbsAccessToken(); + + + public static CbsAccessToken getInstance() { + if (null == cbsAccessToken.token){ + initToken(); + }else { + //判断token有没有过期 + if (System.currentTimeMillis() >= cbsAccessToken.expiryTime){ + initToken(); + }else { + refreshToken(); + } + } + return cbsAccessToken; + } + + public static String getToken(){ + return getInstance().token; + } + /** + * 获取token + */ + private static void initToken(){ + CbsAccessToken ct = (CbsAccessToken) ApplicationContextUtil.getBeanByName("cbsAccessToken"); + logger.info("开始获取cbstoken"); + Map<String,String> param = new HashMap<>(); + param.put("app_id",ct.appId); + param.put("app_secret",ct.appSecret); + param.put("grant_type","client_credentials"); + String res = HttpRequest.post(ct.url+"/openapi/app/v1/app/token").body(JSONObject.toJSONString(param)).execute().body(); + logger.info("获取cbstoken结果",res); + if (StrUtil.isNotEmpty(res) && JSONUtil.isTypeJSON(res)){ + JSONObject tokenObject = JSONObject.parseObject(res); + String code = tokenObject.getString("code");//0表示成功 + if ("0".equals(code)){ + JSONObject dataObj = tokenObject.getJSONObject("data"); + if (null != dataObj){ + String token = dataObj.getString("token"); + //过期时间 单位是秒 30分钟有效 + Integer expires = dataObj.getInteger("expires"); + cbsAccessToken.token = token; + //提前5分钟让token失效 所以这里设置成过期时间为当前时间+25分钟 + cbsAccessToken.expiryTime = System.currentTimeMillis()+1000*60*25L; + } + } + } + } + + /** + * 刷新token + */ + private static void refreshToken(){ + CbsAccessToken ct = (CbsAccessToken) ApplicationContextUtil.getBeanByName("cbsAccessToken"); + //token不为空,并且没过期 刷新token + if (null != cbsAccessToken.token && System.currentTimeMillis() < cbsAccessToken.expiryTime ){ + String res = HttpRequest.get(ct.url + "/openapi/app/v1/app/refresh-token").header("Authorization", BEARER + cbsAccessToken.token).execute().body(); + logger.info("刷新cbstoken结果",res); + if (StrUtil.isNotEmpty(res) && JSONUtil.isTypeJSON(res)){ + JSONObject tokenObject = JSONObject.parseObject(res); + String code = tokenObject.getString("code");//0表示成功 + if ("0".equals(code)){ + JSONObject dataObj = tokenObject.getJSONObject("data"); + if (null != dataObj){ + //续期的token + String token = dataObj.getString("token"); + //新token过期时间 单位是秒 30分钟有效 + Integer expires = dataObj.getInteger("expires"); + cbsAccessToken.token = token; + //提前5分钟让token失效 所以这里设置成过期时间为当前时间+25分钟 + cbsAccessToken.expiryTime = System.currentTimeMillis()+1000*60*25L; + } + }else { + initToken(); + } + } + }else { + initToken(); + } + } + + public static void main(String[] args) { + System.out.println("第1次取token:"+getToken()); + System.out.println("第2次取token:"+getToken()); + System.out.println("第3次取token:"+getToken()); + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CurrencyEnum.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CurrencyEnum.java new file mode 100644 index 00000000..abde767c --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/CurrencyEnum.java @@ -0,0 +1,137 @@ +package com.hzya.frame.cbs8.util; + +/** + * @Description 币种枚举表 + * @Author xiangerlin + * @Date 2024/6/25 10:20 + **/ +public enum CurrencyEnum { + + CNY("10", "人民币", "CNY", "¥"), + ASF("11", "记帐瑞士法朗", "ASF", "ASF"), + BRL("12", "巴西里亚尔", "BRL", "BRL"), + IDR("13", "印度尼西亚卢比", "IDR", "rps"), + INR("14", "印度卢比", "INR", "rs"), + IRR("15", "伊朗里亚尔", "IRR", "ri"), + JOD("16", "约旦第纳尔", "JOD", "jdr"), + KRW("17", "韩国圆", "KRW", "$"), + KWD("18", "科威特第纳尔", "KWD", "kd"), + MOP("19", "澳门元", "MOP", "pat"), + MXN("20", "墨西哥比索", "MXN", "mex$"), + HKD("21", "港币", "HKD", "HK$"), + MYR("22", "马来西亚林吉特", "MYR", "m$"), + NPR("23", "尼泊尔卢比", "NPR", "nrs"), + NZD("24", "新西兰元", "NZD", "$nz"), + PHP("25", "菲律宾比索", "PHP", "phil"), + PKR("26", "巴基斯坦卢比", "PKR", "prs"), + RUB("27", "俄罗斯卢布", "RUB", "RUB"), + AUD("29", "澳元", "AUD", "A$"), + THB("30", "泰国铢", "THB", "bt"), + TWD("31", "台湾元", "TWD", "$"), + USD("32", "美元", "USD", "US$"), + TZS("33", "坦桑尼亚先令", "TZS", "tsh"), + EUR("35", "欧元", "EUR", "EUR"), + CAD("39", "加拿大元", "CAD", "CAN$"), + GBP("43", "英镑", "GBP", "£"), + JPY("65", "日元", "JPY", "J"), + SGD("69", "新加坡元", "SGD", "S$"), + NOK("83", "挪威克朗", "NOK", "nkr"), + DKK("85", "丹麦克朗", "DKK", "DKr"), + AED("86", "阿联酋迪拉姆", "AED", "AED"), + CHF("87", "瑞士法朗", "CHF", "SF"), + SEK("88", "瑞典克朗", "SEK", "SKR"), + ZAR("89", "南非兰特", "ZAR", "ZAR"), + AOA("71", "安哥拉宽扎", "AOA", "kz"), + DZD("72", "阿尔及利亚第纳尔", "DZD", "AD."), + GHS("73", "塞地", "GHS", "¢"), + KES("74", "肯尼亚先令", "KES", "K.Sh"), + NGN("75", "奈拉", "NGN", "N"), + QAR("76", "卡塔尔里亚尔", "QAR", "QR."), + VND("77", "越南盾", "VND", "D."), + PES("78", "新索尔", "PES", "S/."), + PLZ("79", "兹罗提", "PLZ", "ZL."), + TRY("80", "土耳其镑", "TRY", "£T."), + SAR("81", "亚尔", "SAR", "SAR."), + KZT("82", "哈萨克斯坦腾格", "KZT", "〒"), + CDF("90", "刚果法郎", "CDF", "FC"), + LYD("91", "利比亚第纳尔", "LYD", "LD."), + EGP("92", "埃及镑", "EGP", "£E."), + VEF("93", "委内瑞拉玻利瓦尔", "VEF", "B"), + OMR("94", "阿曼里尔", "OMR", "RO."), + PLN("95", "波兰兹罗提", "PLN", "Zl"), + HUF("96", "匈牙利福林", "HUF", "Ft"), + BDT("97", "孟加拉塔卡", "BDT", "TK"), + LAK("98", "老挝基普", "LAK", "K"), + ZMW("37", "赞比亚克瓦查", "ZMW", "ZM"), + ETB("28", "埃塞俄比亚比尔", "ETB", "Br"), + PRK("34", "巴基斯坦卢比", "PRK", "Rs."), + BND("36", "文莱元", "BND", "B$"), + XOF("38", "西非法郎", "XOF", "XOF"), + PGK("41", "巴布亚新几内亚基纳", "PGK", "PGK"), + LKR("40", "斯里兰卡卢比", "LKR", "LK"), + GNF("46", "几内亚法郎", "GNF", "GNF"), + TND("42", "突尼斯第纳尔", "TND", "TN"), + UZS("44", "乌兹别克斯坦苏姆", "UZS", "UZ"), + XAF("45", "中非法郎", "XAF", "XA"), + SDG("49", "苏丹磅", "SDG", "£S"), + GE("47", "格鲁吉亚拉里", "GEL", "GE"), + MN("48", "蒙图", "MNT", "MN"), + TJS("50", "塔吉克索莫尼", "TJS", "TJS"), + UGX("51", "乌干达先令", "UGX", "UGX"), + CLP("52", "智利比索", "CLP", "CLP"), + MMK("53", "缅元", "MMK", "MMK"), + KHR("54", "柬埔寨瑞尔", "KHR", "KHR"), + BHD("55", "巴林第纳尔", "BHD", "BHD"), + RSD("56", "塞尔维亚第纳尔", "RSD", "RSD"), + KGS("57", "吉尔吉斯斯坦索姆", "KGS", "KGS"), + COP("58", "哥伦比亚比索", "COP", "COP"), + GYD("59", "圭亚那元", "GYD", "GYD"), + ARS("60", "阿根廷比索", "ARS", "ARS"), + CZK("61", "捷克克朗", "CZK", "CZK"), + PEN("62", "秘鲁索尔", "PEN", "PEN"), + RON("63", "罗马尼亚列伊", "RON", "RON"), + UAH("64", "乌克兰格里夫纳", "UAH", "UAH"), + ILS("66", "以色列新谢克尔", "ILS", "ILS"), + IQD("67", "伊拉克第纳尔", "IQD", "IQD"), + ERN("68", "厄立特里亚纳克法", "ERN", "ERN"), + CNH("84", "离岸人民币", "CNH", "CNH"), + MKD("99", "马其顿第纳尔", "MKD", "MKD"); + + private final String code; + private final String chineseName; + private final String internationalCode; + private final String symbol; + + CurrencyEnum(String code, String chineseName, String internationalCode, String symbol) { + this.code = code; + this.chineseName = chineseName; + this.internationalCode = internationalCode; + this.symbol = symbol; + } + + public String getCode() { + return code; + } + + public String getChineseName() { + return chineseName; + } + + public String getInternationalCode() { + return internationalCode; + } + + public String getSymbol() { + return symbol; + } + + //根据币种code获取币种中文名 + public static String getChineseNameByCode(String code) { + for (CurrencyEnum currency : values()) { + if (currency.code.equals(code)) { + return currency.chineseName; + } + } + return null; // 或者抛出异常,表示找不到对应的币种 + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/PayState.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/PayState.java new file mode 100644 index 00000000..0ab494c7 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/PayState.java @@ -0,0 +1,73 @@ +package com.hzya.frame.cbs8.util; + +/** + * @Author:hecan + * @Description:支付类型(支付状态) + * @params: + * @return: + * @Date: 2023/3/14 15:05 + */ +public enum PayState { + a("a","待提交直联"), + b("b","已提交直联"), + c("c","银行已受理"), + d("d","银行未受理"), + e("e","可疑"), + f("f","待人工确认"), + g("g","支付成功"), + h("h","支付失败"), + i("i","部分成功"), + j("j","退票"), + k("k","取消支付"), + n("n","其他"), + p("p","支付中"), + q("q","待支付"), + one("1","待处理"), + two("2","审批中"), + three("3","处理失败"), + four("4","审批完成"), + five("5","审批撤销"), + six("6","审批拒绝"), + seven("7","待发送审批"), + eight("8","集中受理中"), + nine("9","审批退回"), + ten("10","预处理中"), + eleven("11","预处理拒绝"), + twelve("12","资金监控审批中"); + + + //类型 + private String type; + //值 + private String value; + + PayState(String type, String value){ + this.type=type; + this.value=value; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String payStateGetValue(String type){ + for (PayState payState : PayState.values()){ + if(payState.getType()==type||payState.getType().equals(type)){ + return payState.getValue().toString(); + } + } + return null; + } +} diff --git a/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/SM2Util.java b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/SM2Util.java new file mode 100644 index 00000000..46b20936 --- /dev/null +++ b/fw-cbs/src/main/java/com/hzya/frame/cbs8/util/SM2Util.java @@ -0,0 +1,237 @@ +package com.hzya.frame.cbs8.util; + +import org.bouncycastle.asn1.*; +import org.bouncycastle.crypto.engines.SM2Engine; +import org.bouncycastle.crypto.params.*; +import org.bouncycastle.crypto.signers.SM2Signer; +import org.bouncycastle.jce.ECNamedCurveTable; +import org.bouncycastle.jce.spec.ECParameterSpec; +import org.bouncycastle.math.ec.ECCurve; +import org.bouncycastle.math.ec.ECPoint; +import org.bouncycastle.util.encoders.Hex; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.ByteArrayInputStream; +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.security.SecureRandom; +import java.util.Base64; +import java.util.Enumeration; + +/** + * @author: xiang2lin + * @time: 2024/6/14 + * @description: SM2加解密工具类 + */ + +public class SM2Util { + static Logger logger = LoggerFactory.getLogger(SM2Util.class); + private SM2Util() { + throw new IllegalStateException("Utility class"); + } + + private static final String STD_NAME = "sm2p256v1"; + + /** + * SM2加密算法 + * + * @param publicKey 公钥 + * @param data 明文数据 + * @return + */ + public static byte[] encrypt(String publicKey, byte[] data) { + ECPublicKeyParameters ecPublicKeyParameters = encodePublicKey(Hex.decode(publicKey)); + SM2Engine engine = new SM2Engine(); + engine.init(true, new ParametersWithRandom(ecPublicKeyParameters, new SecureRandom())); + + byte[] bytes = null; + try { + byte[] cipherText = engine.processBlock(data, 0, data.length); + bytes = C1C2C3ToC1C3C2(cipherText); + } catch (Exception e) { + logger.warn("SM2加密时出现异常:" + e.getMessage()); + } + return bytes; + } + + /** + * SM2解密算法 + * + * @param privateKey 私钥 + * @param cipherData 密文数据 + * @return + */ + public static byte[] decrypt(String privateKey, byte[] cipherData) { + ECPrivateKeyParameters ecPrivateKeyParameters = encodePrivateKey(Hex.decode(privateKey)); + SM2Engine engine = new SM2Engine(); + engine.init(false, ecPrivateKeyParameters); + + byte[] bytes = null; + try { + cipherData = C1C3C2ToC1C2C3(cipherData); + bytes = engine.processBlock(cipherData, 0, cipherData.length); + } catch (Exception e) { + logger.warn("SM2解密时出现异常:" + e.getMessage()); + } + return bytes; + } + + /** + * 签名算法 + * + * @param privateKey 私钥 + * @param data 明文数据 + * @return + */ + public static byte[] sign(String privateKey, byte[] data) { + ECPrivateKeyParameters ecPrivateKeyParameters = encodePrivateKey(hexToByte(privateKey)); + SM2Signer signer = new SM2Signer(); + ParametersWithID parameters = new ParametersWithID(ecPrivateKeyParameters, "1234567812345678".getBytes()); + signer.init(true, parameters); + signer.update(data, 0, data.length); + + byte[] signature = null; + try { + signature = decodeDERSignature(signer.generateSignature()); + } catch (Exception e) { + logger.warn("SM2签名时出现异常:" + e.getMessage()); + } + return signature; + } + + private static byte[] hexToByte(String hex) + throws IllegalArgumentException { + if (hex.length() % 2 != 0) { + throw new IllegalArgumentException(); + } + char[] arr = hex.toCharArray(); + byte[] b = new byte[hex.length() / 2]; + for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) { + String swap = "" + arr[i++] + arr[i]; + int byteInt = Integer.parseInt(swap, 16) & 0xFF; + b[j] = BigInteger.valueOf(byteInt).byteValue(); + } + return b; + } + + private static byte[] C1C2C3ToC1C3C2(byte[] cipherText) throws Exception { + if (cipherText != null && cipherText.length >= 97) { + byte[] bytes = new byte[cipherText.length]; + System.arraycopy(cipherText, 0, bytes, 0, 65); + System.arraycopy(cipherText, cipherText.length - 32, bytes, 65, 32); + System.arraycopy(cipherText, 65, bytes, 97, cipherText.length - 97); + return bytes; + } else { + throw new Exception("SM2 cipher text error, must be more than 96 bytes and in the format C1||C3||C2."); + } + } + + private static byte[] C1C3C2ToC1C2C3(byte[] cipherText) throws Exception { + if (cipherText != null && cipherText.length >= 97) { + byte[] bytes = new byte[cipherText.length]; + System.arraycopy(cipherText, 0, bytes, 0, 65); + System.arraycopy(cipherText, 97, bytes, 65, cipherText.length - 97); + System.arraycopy(cipherText, 65, bytes, cipherText.length - 32, 32); + return bytes; + } else { + throw new Exception("SM2 cipher text error, must be more than 96 bytes and in the format C1||C3||C2."); + } + } + + private static ECPublicKeyParameters encodePublicKey(byte[] value) { + byte[] x = new byte[32]; + byte[] y = new byte[32]; + System.arraycopy(value, 1, x, 0, 32); + System.arraycopy(value, 33, y, 0, 32); + BigInteger X = new BigInteger(1, x); + BigInteger Y = new BigInteger(1, y); + ECPoint Q = getSM2Curve().createPoint(X, Y); + return new ECPublicKeyParameters(Q, getECDomainParameters()); + } + + private static ECCurve getSM2Curve() { + ECParameterSpec spec = ECNamedCurveTable.getParameterSpec(STD_NAME); + return spec.getCurve(); + } + + private static ECPrivateKeyParameters encodePrivateKey(byte[] value) { + BigInteger d = new BigInteger(1, value); + return new ECPrivateKeyParameters(d, getECDomainParameters()); + } + + private static ECDomainParameters getECDomainParameters() { + ECParameterSpec spec = ECNamedCurveTable.getParameterSpec(STD_NAME); + return new ECDomainParameters(spec.getCurve(), spec.getG(), spec.getN(), spec.getH(), spec.getSeed()); + } + + private static byte[] decodeDERSignature(byte[] signature) { + ASN1InputStream stream = new ASN1InputStream(new ByteArrayInputStream(signature)); + + byte[] bytes = new byte[64]; + try { + ASN1Sequence primitive = (ASN1Sequence) stream.readObject(); + Enumeration enumeration = primitive.getObjects(); + BigInteger R = ((ASN1Integer) enumeration.nextElement()).getValue(); + BigInteger S = ((ASN1Integer) enumeration.nextElement()).getValue(); + byte[] r = format(R.toByteArray()); + byte[] s = format(S.toByteArray()); + System.arraycopy(r, 0, bytes, 0, 32); + System.arraycopy(s, 0, bytes, 32, 32); + } catch (Exception e) { + logger.warn("decodeDERSignature时出现异常:" + e.getMessage()); + } + return bytes; + } + + public static byte[] encodeDERSignature(byte[] signature) { + byte[] r = new byte[32]; + byte[] s = new byte[32]; + System.arraycopy(signature, 0, r, 0, 32); + System.arraycopy(signature, 32, s, 0, 32); + ASN1EncodableVector vector = new ASN1EncodableVector(); + vector.add(new ASN1Integer(new BigInteger(1, r))); + vector.add(new ASN1Integer(new BigInteger(1, s))); + + byte[] encoded = null; + try { + encoded = (new DERSequence(vector)).getEncoded(); + } catch (Exception e) { + logger.warn("encodeDERSignature时出现异常:" + e.getMessage()); + } + return encoded; + } + + private static byte[] format(byte[] value) { + if (value.length == 32) { + return value; + } else { + byte[] bytes = new byte[32]; + if (value.length > 32) { + System.arraycopy(value, value.length - 32, bytes, 0, 32); + } else { + System.arraycopy(value, 0, bytes, 32 - value.length, value.length); + } + return bytes; + } + } + + + public static void main(String[] args) { + String requestData = "hello啊"; + byte[] encrypt = encrypt("0452d60e72f6a3050d2f8e8f4505f874ef345e15da38fda8dd64b9e756b7231c056dff1674c4826ada424cc78ea36fd58afc50bcefb5d721bf25b179efac2ebb17", requestData.getBytes(StandardCharsets.UTF_8)); + String temp = new String(encrypt); + byte[] decrypt = decrypt("c3509b6df8bdaf84c464daa1b6fa11a8fca77b0e4a6f076ee68487f288278a85", encrypt); + System.out.println("解密完成"+new String(decrypt)); + + String encodeToString = Base64.getEncoder().encodeToString(encrypt); + byte[] decode = Base64.getDecoder().decode(encodeToString); + byte[] decrypt1 = decrypt("c3509b6df8bdaf84c464daa1b6fa11a8fca77b0e4a6f076ee68487f288278a85", decode); + System.out.println("解密完成1"+new String(decrypt1)); + + String base64 = "eyJtc2ciOiLns7vnu5/lvILluLjvvIzor7fnqI3lkI7lho3or5UiLCJkYXRhIjpudWxsLCJjb2RlIjoiNTAwIn0="; + byte[] decode1 = Base64.getDecoder().decode(base64); + String decode2 = new String(decode1); + byte[] decryptbyte = decrypt("83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44", decode1); + System.out.println("解密完成"+new String(decryptbyte)); + } +} diff --git a/fw-cbs/src/main/webapp/WEB-INF/web.xml b/fw-cbs/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/fw-cbs/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" + version="4.0"> +</web-app> \ No newline at end of file diff --git a/fw-oa/pom.xml b/fw-oa/pom.xml new file mode 100644 index 00000000..04552396 --- /dev/null +++ b/fw-oa/pom.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>kangarooDataCenterV3</artifactId> + <groupId>com.hzya.frame</groupId> + <version>${revision}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>fw-oa</artifactId> + <packaging>jar</packaging> + <version>${revision}</version> + + <dependencies> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>base-service</artifactId> + <version>${revision}</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql-connector-java}</version> + </dependency> + + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <mainClass>none</mainClass> <!-- 取消查找本项目下的Main方法:为了解决Unable to find main class的问题 --> + <classifier>execute</classifier> <!-- 为了解决依赖模块找不到此模块中的类或属性 --> + <skip>true</skip> + </configuration> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDTO.java new file mode 100644 index 00000000..e9fe54b8 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDTO.java @@ -0,0 +1,74 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import java.util.List; + +/** + * @Description 无流程表单批量保存请求参数 + * @Author xiangerlin + * @Date 2024/1/8 11:18 + **/ +public class FormDTO { + @JSONField(ordinal = 4) + private String formCode;//模版编号 + @JSONField(ordinal = 5) + private String loginName;//模版编号 + @JSONField(ordinal = 2) + private String rightId;//权限id,找到无流程表单,点新增,弹出的窗口上会有这个参数 + @JSONField(ordinal = 3) + private List<FormDataDTO> dataList;//导入的数据 + @JSONField(ordinal = 1) + private String[] uniqueFiled;//更新用的唯一标识 + @JSONField(ordinal = 6) + private Boolean doTrigger;//是否执行触发(Since V8.0sp2),测试中发现传了这个参数会报错 + + public String getFormCode() { + return formCode; + } + + public void setFormCode(String formCode) { + this.formCode = formCode; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getRightId() { + return rightId; + } + + public void setRightId(String rightId) { + this.rightId = rightId; + } + + public List<FormDataDTO> getDataList() { + return dataList; + } + + public void setDataList(List<FormDataDTO> dataList) { + this.dataList = dataList; + } + + public String[] getUniqueFiled() { + return uniqueFiled; + } + + public void setUniqueFiled(String[] uniqueFiled) { + this.uniqueFiled = uniqueFiled; + } + + public Boolean getDoTrigger() { + return doTrigger; + } + + public void setDoTrigger(Boolean doTrigger) { + this.doTrigger = doTrigger; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDataDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDataDTO.java new file mode 100644 index 00000000..b69031d6 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/FormDataDTO.java @@ -0,0 +1,36 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import java.util.List; + +/** + * @Description dataList节点 + * @Author xiangerlin + * @Date 2024/1/8 11:26 + **/ +public class FormDataDTO { + @JSONField(ordinal = 1) + private MasterTableDTO masterTable;//主表数据 + @JSONField(ordinal = 2) + private List<SubTableDTO> subTables;//子表数据 + + //private List<> attachmentInfos;//附件列表 + + public MasterTableDTO getMasterTable() { + return masterTable; + } + + public void setMasterTable(MasterTableDTO masterTable) { + this.masterTable = masterTable; + } + + public List<SubTableDTO> getSubTables() { + return subTables; + } + + public void setSubTables(List<SubTableDTO> subTables) { + this.subTables = subTables; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/MasterTableDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/MasterTableDTO.java new file mode 100644 index 00000000..56f5f9fb --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/MasterTableDTO.java @@ -0,0 +1,45 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import java.util.List; + +/** + * @Description 主表数据 + * @Author xiangerlin + * @Date 2024/1/8 11:29 + **/ + +public class MasterTableDTO { + @JSONField(ordinal = 1) + private String name;//表名 + @JSONField(ordinal = 2) + private RecordDTO record;//数据 + @JSONField(ordinal = 3) + private List<String> changedFields;//需要计算的字段 + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public RecordDTO getRecord() { + return record; + } + + public void setRecord(RecordDTO record) { + this.record = record; + } + + public List<String> getChangedFields() { + return changedFields; + } + + public void setChangedFields(List<String> changedFields) { + this.changedFields = changedFields; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordDTO.java new file mode 100644 index 00000000..cc3857e0 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordDTO.java @@ -0,0 +1,34 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import java.util.List; + +/** + * @Description record节点 + * @Author xiangerlin + * @Date 2024/1/8 11:31 + **/ +public class RecordDTO { + @JSONField(ordinal = 1) + private long id;//数据id,测试中发现新增时这个参数随便填写 不影响导入 + @JSONField(ordinal = 2) + private List<RecordFieldDTO> fields;//字段列表 + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public List<RecordFieldDTO> getFields() { + return fields; + } + + public void setFields(List<RecordFieldDTO> fields) { + this.fields = fields; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordFieldDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordFieldDTO.java new file mode 100644 index 00000000..a2bfa15b --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/RecordFieldDTO.java @@ -0,0 +1,52 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +/** + * @Description masterTable—record—fields的结构 + * @Author xiangerlin + * @Date 2024/1/8 11:32 + **/ +public class RecordFieldDTO { + @JSONField(ordinal = 1) + private String name;//数据域名称 ,fieldxxxx + @JSONField(ordinal = 2) + private String value;//数据值(优先) + @JSONField(ordinal = 3) + private String showValue;//显示值 + + public RecordFieldDTO() { + + } + + public RecordFieldDTO(String name, String value, String showValue) { + this.name = name; + this.value = value; + this.showValue = showValue; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getShowValue() { + return showValue; + } + + public void setShowValue(String showValue) { + this.showValue = showValue; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/SubTableDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/SubTableDTO.java new file mode 100644 index 00000000..8d5e5226 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cap4/form/dto/SubTableDTO.java @@ -0,0 +1,9 @@ +package com.hzya.frame.seeyon.cap4.form.dto; + +/** + * @Description 子表数据 + * @Author xiangerlin + * @Date 2024/1/8 11:29 + **/ +public class SubTableDTO { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDao.java new file mode 100644 index 00000000..5336cd91 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.cbs8.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; + +/** + * @Description 代发代扣 + * @Author xiangerlin + * @Date 2024/6/26 10:50 + **/ +public interface IAgentPaymentDao extends IBaseDao<AgentPaymentEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDetailDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDetailDao.java new file mode 100644 index 00000000..96895bb4 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IAgentPaymentDetailDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.cbs8.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; + +/** + * @Description 代发代扣明细 + * @Author xiangerlin + * @Date 2024/6/26 10:54 + **/ +public interface IAgentPaymentDetailDao extends IBaseDao<AgentPaymentDetailEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ICbsLogDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ICbsLogDao.java new file mode 100644 index 00000000..032d1a3e --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ICbsLogDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.cbs8.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity; + +/** + * @Description cbs8支付日志 + * @Author xiangerlin + * @Date 2024/6/14 17:30 + **/ +public interface ICbsLogDao extends IBaseDao<CbsLogEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java new file mode 100644 index 00000000..c8a18848 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java @@ -0,0 +1,10 @@ +package com.hzya.frame.seeyon.cbs8.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; + +/** + * oa集成cbs + */ +public interface IPaymentDao extends IBaseDao<PaymentEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ITransactionDetailDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ITransactionDetailDao.java new file mode 100644 index 00000000..37cf015a --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/ITransactionDetailDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.cbs8.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity; + +/** + * @Description cbs交易明细 oa底表 + * @Author xiangerlin + * @Date 2024/6/24 11:10 + **/ +public interface ITransactionDetailDao extends IBaseDao<TransactionDetailEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDaoImpl.java new file mode 100644 index 00000000..5b2e3852 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.seeyon.cbs8.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.cbs8.dao.IAgentPaymentDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/26 10:51 + **/ +@Repository("OAAgentPaymentDaoImpl") +public class AgentPaymentDaoImpl extends MybatisGenericDao<AgentPaymentEntity,String> implements IAgentPaymentDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDetailDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDetailDaoImpl.java new file mode 100644 index 00000000..2b873067 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/AgentPaymentDetailDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.seeyon.cbs8.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.cbs8.dao.IAgentPaymentDetailDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/26 10:55 + **/ +@Repository("OAAgentPaymentDetailDaoImpl") +public class AgentPaymentDetailDaoImpl extends MybatisGenericDao<AgentPaymentDetailEntity,String> implements IAgentPaymentDetailDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/CbsLogDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/CbsLogDaoImpl.java new file mode 100644 index 00000000..a42437b0 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/CbsLogDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.seeyon.cbs8.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.cbs8.dao.ICbsLogDao; +import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/14 17:31 + **/ +@Repository() +public class CbsLogDaoImpl extends MybatisGenericDao<CbsLogEntity,String> implements ICbsLogDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java new file mode 100644 index 00000000..f2744983 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.seeyon.cbs8.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.cbs8.dao.IPaymentDao; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description oa集成cbs + * @Author xiangerlin + * @Date 2024/6/6 16:28 + **/ +@Repository("OAPaymentDaoImpl") +public class PaymentDaoImpl extends MybatisGenericDao<PaymentEntity,String> implements IPaymentDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/TransactionDetailDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/TransactionDetailDaoImpl.java new file mode 100644 index 00000000..e4fb1bac --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/TransactionDetailDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.seeyon.cbs8.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.cbs8.dao.IPaymentDao; +import com.hzya.frame.seeyon.cbs8.dao.ITransactionDetailDao; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/24 11:10 + **/ +@Repository("OATransactionDetailDaoImpl") +public class TransactionDetailDaoImpl extends MybatisGenericDao<TransactionDetailEntity,String> implements ITransactionDetailDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.java new file mode 100644 index 00000000..4776058c --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.java @@ -0,0 +1,113 @@ +package com.hzya.frame.seeyon.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description 代发代扣明细表 + * @Author xiangerlin + * @Date 2024/6/18 14:58 + **/ +public class AgentPaymentDetailEntity extends BaseEntity { + //每笔明细金额 + private String dtlAmount; + //收款账号 + private String dtlRevAccount; + //联行号 同行可不传,跨行必传 + private String dtlCnapsCode; + //收款账户名称 + private String dtlRevName; + //收款开户行 ,如果传的联行号能匹配到对应到开户行,cbs8会自动带出 + private String dtlRevBankName; + //主表id + private String formmainId; + //表名 + private String tabName; + + //明细序号,从1开始递增 + private int dtlSeqNum; + + //支付结果 + private String payResult; + //支付日期 + private String payDate; + + public String getDtlAmount() { + return dtlAmount; + } + + public void setDtlAmount(String dtlAmount) { + this.dtlAmount = dtlAmount; + } + + public String getDtlRevAccount() { + return dtlRevAccount; + } + + public void setDtlRevAccount(String dtlRevAccount) { + this.dtlRevAccount = dtlRevAccount; + } + + public String getDtlCnapsCode() { + return dtlCnapsCode; + } + + public void setDtlCnapsCode(String dtlCnapsCode) { + this.dtlCnapsCode = dtlCnapsCode; + } + + public String getDtlRevName() { + return dtlRevName; + } + + public void setDtlRevName(String dtlRevName) { + this.dtlRevName = dtlRevName; + } + + public String getDtlRevBankName() { + return dtlRevBankName; + } + + public void setDtlRevBankName(String dtlRevBankName) { + this.dtlRevBankName = dtlRevBankName; + } + + public String getFormmainId() { + return formmainId; + } + + public void setFormmainId(String formmainId) { + this.formmainId = formmainId; + } + + public String getTabName() { + return tabName; + } + + public void setTabName(String tabName) { + this.tabName = tabName; + } + + public int getDtlSeqNum() { + return dtlSeqNum; + } + + public void setDtlSeqNum(int dtlSeqNum) { + this.dtlSeqNum = dtlSeqNum; + } + + public String getPayResult() { + return payResult; + } + + public void setPayResult(String payResult) { + this.payResult = payResult; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.xml new file mode 100644 index 00000000..43869fc1 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentDetailEntity.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.cbs8.dao.impl.AgentPaymentDetailDaoImpl"> + <resultMap id="get-AgentPaymentDetailEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity"> + <result property="id" column="id" /> + <result property="formmainId" column="formmainId" /> + <result property="tabName" column="tabName" /> + <result property="dtlSeqNum" column="dtlSeqNum" /> + <result property="dtlAmount" column="dtlAmount" /> + <result property="dtlRevAccount" column="dtlRevAccount" /> + <result property="dtlCnapsCode" column="dtlCnapsCode" /> + <result property="dtlRevName" column="dtlRevName" /> + <result property="dtlRevBankName" column="dtlRevBankName" /> + <result property="payResult" column="payResult" /> + <result property="payDate" column="payDate" /> + </resultMap> + + <sql id="AgentPaymentDetailEntity_Base_Column_List"> + id, + formmainId, + tabName, + dtlSeqNum, + dtlAmount, + dtlRevAccount, + dtlCnapsCode, + dtlRevName, + dtlRevBankName, + payResult, + payDate + </sql> + + + <!-- 采用==查询 --> + <select id="entity_list_base" resultMap="get-AgentPaymentDetailEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity"> + select + <include refid="AgentPaymentDetailEntity_Base_Column_List"/> + from ( + SELECT + formson_0225.id, + formson_0225.formmain_id AS formmainId, + 'formson_0225' AS tabName, + formson_0225.field0001 AS dtlSeqNum, + formson_0225.field0019 AS dtlAmount, + formson_0225.field0036 AS dtlRevAccount, + formson_0225.field0035 AS dtlCnapsCode, + formson_0225.field0037 AS dtlRevName, + formson_0225.field0034 AS dtlRevBankName, + formson_0225.field0044 AS payResult, + formson_0225.field0045 AS payDate + FROM + formson_0225 + )formson_0225 + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id !='' "> formson_0225.id = #{id} </if> + <if test="formmainId != null and formmainId !='' "> and formson_0225.formmainId = #{formmainId} </if> + <if test="tabName != null and tabName !='' "> and formson_0225.tabName = #{tabName} </if> + <if test="dtlSeqNum != null and dtlSeqNum !='' "> and formson_0225.dtlSeqNum = #{dtlSeqNum} </if> + <if test="dtlAmount != null and dtlAmount !='' "> and formson_0225.dtlAmount = #{dtlAmount} </if> + <if test="dtlRevAccount != null and dtlRevAccount !='' "> and formson_0225.dtlRevAccount = #{dtlRevAccount} </if> + <if test="dtlCnapsCode != null and dtlCnapsCode !='' "> and formson_0225.dtlCnapsCode = #{dtlCnapsCode} </if> + <if test="dtlRevName != null and dtlRevName !='' "> and formson_0225.dtlRevName = #{dtlRevName} </if> + <if test="dtlRevBankName != null and dtlRevBankName !='' "> and formson_0225.dtlRevBankName = #{dtlRevBankName} </if> + </trim> + </select> + + <update id="entity_update" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity"> + update formson_0225 set + <trim suffix="" suffixOverrides=","> + <if test="payDate != null and payDate !='' ">field0045 =#{payDate},</if> + <if test="payResult != null and payResult !='' ">field0044 =#{payResult}</if> + </trim> + where id = #{id} + </update> + + <!-- 更新支付结果 --> + <update id="entity_update_result" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity"> + update formson_0225 set + <trim suffix="" suffixOverrides=","> + <if test="payDate != null and payDate !='' ">field0045 =#{payDate},</if> + <if test="payResult != null and payResult !='' ">field0044 =#{payResult}</if> + </trim> + where field0001=#{dtlSeqNum} and field0019=#{dtlAmount} and field0035=#{dtlCnapsCode} and field0037=#{dtlRevName} + </update> +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.java new file mode 100644 index 00000000..b4b2748a --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.java @@ -0,0 +1,145 @@ +package com.hzya.frame.seeyon.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description 代发代扣 主表 + * @Author xiangerlin + * @Date 2024/6/18 14:44 + **/ +public class AgentPaymentEntity extends BaseEntity { + + //oa id + private String oaId; + private String finishedflag; + //流程标题 + private String title; + //业务参考号 + private String referenceNum; + /** + * 业务类型 + * 201-代扣 + * 203-代发 + * 代发工资传203 + */ + private String busType; + //总金额 小数位2位 + private String amount; + //币种 + private String currency; + //付款账号 + private String payAccount; + //用途 + private String purpose; + //申请单号 + private String applyCode; + //支付结果 + private String payResult; + + private String tableName;//表名称 + private String billName;//单据名称 + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getBillName() { + return billName; + } + + public void setBillName(String billName) { + this.billName = billName; + } + + public String getOaId() { + return oaId; + } + + public void setOaId(String oaId) { + this.oaId = oaId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getFinishedflag() { + return finishedflag; + } + + public void setFinishedflag(String finishedflag) { + this.finishedflag = finishedflag; + } + + public String getApplyCode() { + return applyCode; + } + + public void setApplyCode(String applyCode) { + this.applyCode = applyCode; + } + + public String getPayResult() { + return payResult; + } + + public void setPayResult(String payResult) { + this.payResult = payResult; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.xml new file mode 100644 index 00000000..c0b0f6f0 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/AgentPaymentEntity.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.cbs8.dao.impl.AgentPaymentDaoImpl"> + <resultMap id="get-AgentPaymentEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity"> + <result property="oaId" column="oaId" /> + <result property="title" column="title" /> + <result property="finishedflag" column="finishedflag" /> + <result property="referenceNum" column="referenceNum" /> + <result property="busType" column="busType" /> + <result property="amount" column="amount" /> + <result property="currency" column="currency" /> + <result property="payAccount" column="payAccount" /> + <result property="purpose" column="purpose" /> + <result property="tableName" column="tableName" /> + <result property="billName" column="billName" /> + <result property="applyCode" column="applyCode" /> + <result property="payResult" column="payResult" /> + </resultMap> + + <sql id="AgentPaymentEntity_Base_Column_List"> + oaId, + tableName, + finishedflag, + title, + billName, + referenceNum, + busType, + amount, + currency, + payAccount, + applyCode, + payResult, + purpose + </sql> + + + <!-- 采用==查询 --> + <select id="entity_list_base" resultMap="get-AgentPaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity"> + select + <include refid="AgentPaymentEntity_Base_Column_List"/> + from ( + SELECT + formmain_0224.id AS oaId, + 'formmain_0224' as tableName, + formmain_0224.finishedflag, + COL_SUMMARY.SUBJECT AS title, + '工资表' AS billName, + formmain_0224.field0002 AS referenceNum, + '203' AS busType, + formmain_0224.field0020 AS amount, + '10' AS currency, + '755915707610112' AS payAccount, + formmain_0224.field0043 AS applyCode, + formmain_0224.field0046 AS payResult, + '工资' AS purpose + FROM + formmain_0224 + LEFT JOIN COL_SUMMARY ON COL_SUMMARY.FORM_RECORDID = formmain_0224.id + )formmain_0224 + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> formmain_0224.referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and formmain_0224.busType = #{busType} </if> + <if test="amount != null and amount !='' ">and formmain_0224.amount = #{amount} </if> + <if test="currency != null and currency !='' "> and formmain_0224.currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and formmain_0224.payAccount = #{payAccount} </if> + <if test="applyCode != null and applyCode !='' ">and formmain_0224.applyCode = #{applyCode} </if> + <if test="payResult != null and payResult !='' ">and formmain_0224.payResult = #{payResult} </if> + <if test="purpose != null and purpose !='' "> and formmain_0224.purpose = #{purpose} </if> + <if test="tableName != null and tableName !='' "> and formmain_0224.tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and formmain_0224.oaId = #{oaId} </if> + <if test="title != null and title !='' "> and formmain_0224.title = #{title} </if> + <if test="billName != null and billName !='' "> and formmain_0224.billName = #{billName} </if> + <if test="finishedflag != null and finishedflag !='' "> and formmain_0224.finishedflag = #{finishedflag} </if> + </trim> + </select> + + <select id="entity_list_base_unpaid" resultMap="get-AgentPaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity"> + select + <include refid="AgentPaymentEntity_Base_Column_List"/> + from ( + SELECT + formmain_0224.id AS oaId, + 'formmain_0224' as tableName, + formmain_0224.finishedflag, + COL_SUMMARY.SUBJECT AS title, + '工资表' AS billName, + formmain_0224.field0002 AS referenceNum, + '203' AS busType, + formmain_0224.field0020 AS amount, + '10' AS currency, + '755915707610112' AS payAccount, + formmain_0224.field0043 AS applyCode, + formmain_0224.field0046 AS payResult, + '工资' AS purpose + FROM + formmain_0224 + LEFT JOIN COL_SUMMARY ON COL_SUMMARY.FORM_RECORDID = formmain_0224.id + )formmain_0224 + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> formmain_0224.referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and formmain_0224.busType = #{busType} </if> + <if test="amount != null and amount !='' ">and formmain_0224.amount = #{amount} </if> + <if test="currency != null and currency !='' "> and formmain_0224.currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and formmain_0224.payAccount = #{payAccount} </if> + <if test="applyCode != null and applyCode !='' ">and formmain_0224.applyCode = #{applyCode} </if> + <if test="purpose != null and purpose !='' "> and formmain_0224.purpose = #{purpose} </if> + <if test="tableName != null and tableName !='' "> and formmain_0224.tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and formmain_0224.oaId = #{oaId} </if> + <if test="title != null and title !='' "> and formmain_0224.title = #{title} </if> + <if test="billName != null and billName !='' "> and formmain_0224.billName = #{billName} </if> + <if test="finishedflag != null and finishedflag !='' "> and formmain_0224.finishedflag = #{finishedflag} </if> + </trim> + and formmain_0224.applyCode is null + and formmain_0224.payResult is null + </select> + + + <update id="entity_update" parameterType="com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity"> + update formmain_0224 set + <trim suffix="" suffixOverrides=","> + <if test="applyCode != null and applyCode !='' ">field0043 =#{applyCode},</if> + <if test="payResult != null and payResult !='' ">field0046 =#{payResult}</if> + </trim> + where id = #{oaId} + </update> +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.java new file mode 100644 index 00000000..21cc1a4f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.java @@ -0,0 +1,151 @@ +package com.hzya.frame.seeyon.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description cbs支付日志 + * @Author xiangerlin + * @Date 2024/6/14 17:16 + **/ +public class CbsLogEntity extends BaseEntity { + //流程标题 + private String title; + //请款主体 + private String pay_company; + //收款人 + private String payee; + //金额 + private String amount; + //cbs申请单号 + private String cbs_apply_code; + //日志表id + private String id; + //oa单据id + private String oa_id; + //oa单据号 + private String bill_code; + //英文表名 + private String tab_name_en; + //中文表名 + private String tab_name_ch; + //支付状态 + private String pay_state; + //支付信息 + private String message; + //支付申请状态 + private String apply_state; + //成功标记 + private String successed; + + public String getOa_id() { + return oa_id; + } + + public void setOa_id(String oa_id) { + this.oa_id = oa_id; + } + + public String getBill_code() { + return bill_code; + } + + public void setBill_code(String bill_code) { + this.bill_code = bill_code; + } + + public String getTab_name_en() { + return tab_name_en; + } + + public void setTab_name_en(String tab_name_en) { + this.tab_name_en = tab_name_en; + } + + public String getTab_name_ch() { + return tab_name_ch; + } + + public void setTab_name_ch(String tab_name_ch) { + this.tab_name_ch = tab_name_ch; + } + + public String getPay_state() { + return pay_state; + } + + public void setPay_state(String pay_state) { + this.pay_state = pay_state; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getApply_state() { + return apply_state; + } + + public void setApply_state(String apply_state) { + this.apply_state = apply_state; + } + + public String getSuccessed() { + return successed; + } + + public void setSuccessed(String successed) { + this.successed = successed; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getPay_company() { + return pay_company; + } + + public void setPay_company(String pay_company) { + this.pay_company = pay_company; + } + + public String getPayee() { + return payee; + } + + public void setPayee(String payee) { + this.payee = payee; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getCbs_apply_code() { + return cbs_apply_code; + } + + public void setCbs_apply_code(String cbs_apply_code) { + this.cbs_apply_code = cbs_apply_code; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.xml new file mode 100644 index 00000000..3e03a88a --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/CbsLogEntity.xml @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.cbs8.dao.impl.CbsLogDaoImpl"> + <resultMap id="get-CbsLogEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity"> + <result property="id" column="id" /> + <result property="oa_id" column="oa_id" /> + <result property="bill_code" column="bill_code" /> + <result property="tab_name_en" column="tab_name_en" /> + <result property="tab_name_ch" column="tab_name_ch" /> + <result property="pay_state" column="pay_state" /> + <result property="message" column="message" /> + <result property="apply_state" column="apply_state" /> + <result property="successed" column="successed" /> + <result property="title" column="title" /> + <result property="pay_company" column="pay_company" /> + <result property="payee" column="payee" /> + <result property="amount" column="amount" /> + <result property="cbs_apply_code" column="cbs_apply_code" /> + </resultMap> + + <sql id="CbsLogEntity_Base_Column_List"> + id, + field0002 as title, + field0003 as pay_company, + field0004 as payee, + field0005 as cbs_apply_code, + field0006 as bill_code, + field0007 as oa_id, + field0008 as tab_name_ch, + field0009 as tab_name_en, + field0010 as pay_state, + field0011 as message, + field0012 as apply_state, + field0014 as successed + </sql> + + <!-- 查询推送失败,用户手动发起请求 采用==查询 --> + <select id="entity_list_base" resultMap="get-CbsLogEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity"> + select + <include refid="CbsLogEntity_Base_Column_List"/> + from + formmain_0232 + <trim prefix="where" prefixOverrides="and"> + <if test="title != null and title !='' "> field0002 = #{title} </if> + <if test="pay_company != null and pay_company !='' "> and field0003 = #{pay_company} </if> + <if test="payee != null and payee !='' "> and field0004 = #{payee} </if> + <if test="cbs_apply_code != null and cbs_apply_code !='' "> and field0005 = #{cbs_apply_code} </if> + <if test="bill_code != null and bill_code !='' "> and field0006 = #{bill_code} </if> + <if test="oa_id != null and oa_id !='' "> and field0007 = #{oa_id} </if> + <if test="tab_name_ch != null and tab_name_ch !='' "> and field0008 = #{tab_name_ch} </if> + <if test="tab_name_en != null and tab_name_en !='' "> and field0009 = #{tab_name_en} </if> + <if test="pay_state != null and pay_state !='' "> and field0010 = #{pay_state} </if> + <if test="message != null and message !='' "> and field0011 = #{message} </if> + <if test="apply_state != null and apply_state !='' "> and field0012 = #{apply_state} </if> + <if test="successed != null and successed !='' "> and field0014 = #{successed} </if> + </trim> + </select> + + <select id="entity_list_like" resultMap="get-CbsLogEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity"> + select + <include refid="CbsLogEntity_Base_Column_List"/> + from + formmain_0232 + <trim prefix="where" prefixOverrides="and"> + <if test="title != null and title !='' "> field0002 = #{title} </if> + <if test="id != null and id !='' "> and id = #{id} </if> + <if test="pay_company != null and pay_company !='' "> and field0003 like '${pay_company}%' </if> + <if test="payee != null and payee !='' "> and field0004 like '${payee}%' </if> + <if test="cbs_apply_code != null and cbs_apply_code !='' "> and field0005 like '${cbs_apply_code}%' </if> + <if test="bill_code != null and bill_code !='' "> and field0006 like '${bill_code}%' </if> + <if test="oa_id != null and oa_id !='' "> and field0007 = #{oa_id} </if> + <if test="tab_name_ch != null and tab_name_ch !='' "> and field0008 like '${tab_name_ch}%' </if> + <if test="tab_name_en != null and tab_name_en !='' "> and field0009 like '${tab_name_en}%' </if> + <if test="pay_state != null and pay_state !='' "> and field0010 like '${pay_state}%' </if> + <if test="message != null and message !='' "> and field0011 like '${message}%' </if> + <if test="apply_state != null and apply_state !='' "> and field0012 like '${apply_state}%' </if> + <if test="successed != null and successed !='' "> and field0014 like '${successed}%' </if> + </trim> + </select> + + <select id="CbsLogEntity_list_base_in_payment" resultMap="get-CbsLogEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity"> + select + <include refid="CbsLogEntity_Base_Column_List"/> + from + formmain_0232 + <trim prefix="where" prefixOverrides="and"> + <if test="oa_id != null and oa_id !='' "> field0007 = #{oa_id} </if> + <if test="id != null and id !='' "> and id = #{id} </if> + <if test="bill_code != null and bill_code !='' "> and field0006 = #{bill_code} </if> + <if test="tab_name_en != null and tab_name_en !='' "> and field0008 = #{tab_name_en} </if> + <if test="tab_name_ch != null and tab_name_ch !='' "> and field0009 = #{tab_name_ch} </if> + <if test="pay_state != null and pay_state !='' "> and field0010 = #{pay_state} </if> + <if test="message != null and message !='' "> and field0011 = #{message} </if> + <if test="apply_state != null and apply_state !='' "> and field0012 = #{apply_state} </if> + <if test="successed != null and successed !='' "> and field0014 = #{successed} </if> + and (field0010='支付中' + or field0010 not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败','推送失败')) + </trim> + </select> + + + <!--修改视图支付状态--> + <update id="entity_update" parameterType="com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity"> + update formmain_0232 set + <trim suffix="" suffixOverrides=","> + <if test="pay_state != null and pay_state !='' ">field0010 =#{pay_state},</if> + field0011 =#{message}, + <if test="apply_state != null and apply_state !='' ">field0012 =#{apply_state},</if> + <if test="successed != null and successed !='' ">field0014 =#{successed}</if> + </trim> + where id = #{id} + </update> + + + +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java new file mode 100644 index 00000000..9f68e3ff --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java @@ -0,0 +1,327 @@ +package com.hzya.frame.seeyon.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/6 16:17 + **/ +public class PaymentEntity extends BaseEntity { + + private String oaId;//主表id + private String formsonId;//明细表id + private String payCompany;//付款公司 + private String title;//流程标题 + private String tableName;//表名称 + private String billName;//单据名称 + private String referenceNum;//业务参考号 唯一id + private String referenceNumNew;//重试的时候生成新的业务参考号 + private String busType;//业务类型 + private String payResultField;//支付结果字段 + private String payDateField;//打款日期字段 + private String applyCodeField;//支付申请单号字段 + private String receiptFiled;//电子回单字段 + private String summaryId;//summaryid + private String startDate;//单据日期 + private String finishedflag;//流程状态 + private String payDate;//打款日期 + private String payResult;//支付结果 + private String applyCode;//支付申请单号 + private String payAccount;//付款账号 + private String payBankName;//付款开户银行 + private String amount;//金额 + private String purpose;//支付用途 + private String revAccount;//收款账号 + private String revBankName;//收款开户行名称 + private String revBankType;//收款银行类型 + private String revAccountName;//收款账户名称 + private String cnapsCode;//联行号 + private String receipt;//电子回单 + private String currency;//币种 数字 + private String currencyName;//币种 中文 + private String currencyCode;//币种编码 + private String personalFlag;//公私标记 + private String payType;//付款类别 + private String payCompanyCode;//付款公司编码 + + public String getOaId() { + return oaId; + } + + public void setOaId(String oaId) { + this.oaId = oaId; + } + + public String getPayCompany() { + return payCompany; + } + + public void setPayCompany(String payCompany) { + this.payCompany = payCompany; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getBillName() { + return billName; + } + + public void setBillName(String billName) { + this.billName = billName; + } + + public String getReferenceNum() { + return referenceNum; + } + + public void setReferenceNum(String referenceNum) { + this.referenceNum = referenceNum; + } + + public String getReferenceNumNew() { + return referenceNumNew; + } + + public void setReferenceNumNew(String referenceNumNew) { + this.referenceNumNew = referenceNumNew; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getPayResultField() { + return payResultField; + } + + public void setPayResultField(String payResultField) { + this.payResultField = payResultField; + } + + public String getPayDateField() { + return payDateField; + } + + public void setPayDateField(String payDateField) { + this.payDateField = payDateField; + } + + public String getReceiptFiled() { + return receiptFiled; + } + + public void setReceiptFiled(String receiptFiled) { + this.receiptFiled = receiptFiled; + } + + public String getSummaryId() { + return summaryId; + } + + public void setSummaryId(String summaryId) { + this.summaryId = summaryId; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getFinishedflag() { + return finishedflag; + } + + public void setFinishedflag(String finishedflag) { + this.finishedflag = finishedflag; + } + + public String getPayDate() { + return payDate; + } + + public void setPayDate(String payDate) { + this.payDate = payDate; + } + + public String getPayResult() { + return payResult; + } + + public void setPayResult(String payResult) { + this.payResult = payResult; + } + + public String getPayAccount() { + return payAccount; + } + + public void setPayAccount(String payAccount) { + this.payAccount = payAccount; + } + + public String getPayBankName() { + return payBankName; + } + + public void setPayBankName(String payBankName) { + this.payBankName = payBankName; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getRevAccount() { + return revAccount; + } + + public void setRevAccount(String revAccount) { + this.revAccount = revAccount; + } + + public String getRevBankName() { + return revBankName; + } + + public void setRevBankName(String revBankName) { + this.revBankName = revBankName; + } + + public String getRevBankType() { + return revBankType; + } + + public void setRevBankType(String revBankType) { + this.revBankType = revBankType; + } + + public String getRevAccountName() { + return revAccountName; + } + + public void setRevAccountName(String revAccountName) { + this.revAccountName = revAccountName; + } + + public String getCnapsCode() { + return cnapsCode; + } + + public void setCnapsCode(String cnapsCode) { + this.cnapsCode = cnapsCode; + } + + public String getReceipt() { + return receipt; + } + + public void setReceipt(String receipt) { + this.receipt = receipt; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getCurrencyName() { + return currencyName; + } + + public void setCurrencyName(String currencyName) { + this.currencyName = currencyName; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public String getPersonalFlag() { + return personalFlag; + } + + public void setPersonalFlag(String personalFlag) { + this.personalFlag = personalFlag; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public String getPayCompanyCode() { + return payCompanyCode; + } + + public void setPayCompanyCode(String payCompanyCode) { + this.payCompanyCode = payCompanyCode; + } + + public String getFormsonId() { + return formsonId; + } + + public void setFormsonId(String formsonId) { + this.formsonId = formsonId; + } + + public String getApplyCodeField() { + return applyCodeField; + } + + public void setApplyCodeField(String applyCodeField) { + this.applyCodeField = applyCodeField; + } + + public String getApplyCode() { + return applyCode; + } + + public void setApplyCode(String applyCode) { + this.applyCode = applyCode; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml new file mode 100644 index 00000000..b8d3deee --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml @@ -0,0 +1,339 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + <resultMap id="get-PaymentEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + <result property="referenceNum" column="referenceNum" /> + <result property="busType" column="busType" /> + <result property="title" column="title" /> + <result property="amount" column="amount" /> + <result property="currency" column="currency" /> + <result property="payAccount" column="payAccount" jdbcType="VARCHAR" /> + <result property="revAccount" column="revAccount" /> + <result property="revAccountName" column="revAccountName" /> + <result property="revBankType" column="revBankType" /> + <result property="revBankName" column="revBankName" /> + <result property="cnapsCode" column="cnapsCode" /> + <result property="purpose" column="purpose" /> + <result property="personalFlag" column="personalFlag" /> + <result property="tableName" column="tableName" /> + <result property="oaId" column="oaId" /> + <result property="formsonId" column="formsonId" /> + <result property="payCompany" column="payCompany" /> + <result property="billName" column="billName" /> + <result property="payResultField" column="payResultField" /> + <result property="payDateField" column="payDateField" /> + <result property="applyCodeField" column="applyCodeField" /> + <result property="applyCode" column="applyCode" /> + <result property="receiptFiled" column="receiptFiled" /> + <result property="summaryId" column="summaryId" /> + <result property="startDate" column="startDate" /> + <result property="finishedflag" column="finishedflag" /> + <result property="payDate" column="payDate" /> + <result property="payResult" column="payResult" /> + <result property="payBankName" column="payBankName" /> + <result property="receipt" column="receipt" /> + <result property="payType" column="payType" /> + <result property="payCompanyCode" column="payCompanyCode" /> + </resultMap> + + <sql id="PaymentEntity_Base_Column_List"> + oaId, + formsonId, + payCompany, + payCompanyCode, + title, + tableName, + billName, + referenceNum, + busType, + payResultField, + payDateField, + applyCodeField, + receiptFiled, + summaryId, + startDate, + finishedflag, + payDate, + payResult, + applyCode, + payAccount, + payBankName, + amount, + purpose, + revAccount, + revBankName, + revBankType, + revAccountName, + cnapsCode, + receipt, + currency, + personalFlag, + payType + </sql> + + <!-- 基础查询语句 --> + <sql id="base_sql"> + SELECT + formmain_0209.id as oaId, -- 主表id + formson_0210.formsonId, + 'formson_0210' as tableName, -- 表名 + COL_SUMMARY.SUBJECT as title, -- 单据标题 + unit.name as payCompany, -- 付款公司 + '差旅费报销单' as billName, + 'field0072' as payResultField, -- 支付结果字段 + 'field0073' as payDateField, -- 打款日期字段 + 'field0080' AS applyCodeField,-- CBS支付申请单号 + '' as receiptFiled,-- 电子回单字段 + COL_SUMMARY.id as summaryId, + formmain_0209.field0017||'-'||formson_0210.sort as referenceNum, -- 单据编号 + formmain_0209.START_DATE as startDate, -- 单据日期 + formmain_0209.FINISHEDFLAG as finishedflag, -- 流程状态 + formson_0210.field0073 as payDate, -- 打款日期 + formson_0210.field0072 as payResult, -- 支付结果 + formson_0210.field0080 AS applyCode,-- 支付申请单号 + REGEXP_REPLACE(formmain_0209.field0042, '[[:space:]]', '') as payAccount, -- 付款账户 + REGEXP_REPLACE(formmain_0209.field0041, '[[:space:]]', '') as payBankName, -- 付款开户行 + formson_0210.field0031 as amount, -- 金额 + formmain_0209.field0038 as purpose, -- 用途 + formmain_0209.field0038 as cbsAbstract, -- 摘要 + REGEXP_REPLACE(formson_0210.field0069, '[[:space:]]', '') as revAccount, -- 收款账户 + formson_0210.field0068 as revBankName, -- 收款开户行 + formson_0210.field0075 as revAccountName, -- 收款人 + REGEXP_REPLACE(formson_0210.field0071, '[[:space:]]', '') as cnapsCode, -- 收款联行号 + item.ENUMVALUE as personalFlag,-- 公私标记 + formson_0210.field0079 as revBankType, + '10' as currency, + '202' as busType, + '' as receipt -- 电子回单 + FROM + ( + SELECT + WM_CONCAT(id) AS formsonId, + formmain_id, + SUM(field0031) AS field0031, + MIN(sort) AS sort, + field0068, + field0069, + field0071, + field0079, + field0075, + field0070, + field0072, + field0073, + field0080 + FROM + formson_0210 + WHERE + field0067 = '-5486592002512828355' + GROUP BY + formmain_id, + field0068, + field0069, + field0071, + field0079, + field0075, + field0070, + field0072, + field0073, + field0080 + )formson_0210 + LEFT JOIN formmain_0209 ON formson_0210.FORMMAIN_ID = formmain_0209.id + LEFT JOIN COL_SUMMARY ON COL_SUMMARY.FORM_RECORDID = formmain_0209.id + left join CTP_ENUM_ITEM item on item.id =formson_0210.field0070 + left join ORG_UNIT unit on unit.id =formmain_0209.field0002 + </sql> + <!-- 采用==查询 --> + <select id="entity_list_base" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + select v.* from ( + <include refid="base_sql"/> + ) v + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> v.referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and v.busType = #{busType} </if> + <if test="amount != null and amount !='' ">and v.amount = #{amount} </if> + <if test="currency != null and currency !='' "> and v.currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and v.payAccount = #{payAccount} </if> + <if test="revAccount != null and revAccount !='' "> and v.revAccount = #{revAccount} </if> + <if test="revAccountName != null and revAccountName !='' "> and v.revAccountName = #{revAccountName} </if> + <if test="revBankType != null and revBankType !='' "> and v.revBankType = #{revBankType} </if> + <if test="revBankName != null and revBankName !='' ">and v.revBankName = #{revBankName} </if> + <if test="cnapsCode != null and cnapsCode !='' ">and v.cnapsCode = #{cnapsCode} </if> + <if test="purpose != null and purpose !='' "> and v.purpose = #{purpose} </if> + <if test="personalFlag != null and personalFlag !='' ">and v.personalFlag = #{personalFlag} </if> + <if test="tableName != null and tableName !='' "> and v.tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and v.oaId = #{oaId} </if> + <if test="payCompany != null and payCompany !='' "> and v.payCompany = #{payCompany} </if> + <if test="payCompanyCode != null and payCompanyCode !='' "> and v.payCompanyCode = #{payCompanyCode} </if> + <if test="title != null and title !='' "> and v.title = #{title} </if> + <if test="billName != null and billName !='' "> and v.billName = #{billName} </if> + <if test="payResult != null and payResult !='' ">and v.payResult = #{payResult} </if> + <if test="applyCode != null and applyCode !='' ">and v.applyCode = #{applyCode} </if> + <if test="payBankName != null and payBankName !='' ">and v.payBankName = #{payBankName} </if> + <if test="payType != null and payType !='' "> and v.payType = #{payType} </if> + <if test="finishedflag != null and finishedflag !='' "> and v.finishedflag = #{finishedflag} </if> + + </trim> + </select> + + <!-- 查询交易成功,且电子回单为空的,上传电子回单用 --> + <select id="PaymentEntity_list_base_elec_isnull" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + <!-- select + <include refid="PaymentEntity_Base_Column_List"/> + from + v_hzya_oa_cbs_all--> + -- 差旅费报销单 + SELECT + formson_0210.id as oaId, -- 主表id + 'formson_0210' as tableName, -- 表名 + COL_SUMMARY.SUBJECT as title, -- 单据标题 + unit.name as payCompany, -- 付款公司 + '差旅费报销单' as billName, + 'field0072' as payResultField, -- 支付结果字段 + 'field0073' as payDateField, -- 打款日期字段 + '' as receiptFiled,-- 电子回单字段 + COL_SUMMARY.id as summaryId, + formmain_0209.field0017||'-'||formson_0210.sort as referenceNum, -- 单据编号 + formmain_0209.START_DATE as startDate, -- 单据日期 + formmain_0209.FINISHEDFLAG as finishedflag, -- 流程状态 + formson_0210.field0073 as payDate, -- 打款日期 + formson_0210.field0072 as payResult, -- 支付结果 + REGEXP_REPLACE(formmain_0209.field0042, '[[:space:]]', '') as payAccount, -- 付款账户 + REGEXP_REPLACE(formmain_0209.field0041, '[[:space:]]', '') as payBankName, -- 付款开户行 + formson_0210.field0031 as amount, -- 金额 + formmain_0209.field0038 as purpose, -- 用途 + formmain_0209.field0038 as cbsAbstract, -- 摘要 + REGEXP_REPLACE(formson_0210.field0069, '[[:space:]]', '') as revAccount, -- 收款账户 + formson_0210.field0068 as revBankName, -- 收款开户行 + '' as revAccountName, -- 收款人 + REGEXP_REPLACE(formson_0210.field0071, '[[:space:]]', '') as cnapsCode, -- 收款联行号 + item.showvalue as personalFlag,-- 公私标记 + '' as revBankType,-- 收款银行类型 + '10' as currency,-- 币种 + '' as busType,-- 业务类型 + '' as receipt -- 电子回单 + from + formson_0210 + LEFT JOIN formmain_0209 ON formson_0210.FORMMAIN_ID = formmain_0209.id + LEFT JOIN COL_SUMMARY ON COL_SUMMARY.FORM_RECORDID = formmain_0209.id + LEFT JOIN CTP_AFFAIR ON CTP_AFFAIR.object_id = COL_SUMMARY.id + left join CTP_ENUM_ITEM item on item.id =formson_0210.field0070 + left join ORG_UNIT unit on unit.id =formmain_0209.field0002 + -- left join V_USER_VIEW_ALL us on us.staffid=formmain_0209.field0024 + WHERE 1=1 + -- and formson_0210.field0031>0 + and CTP_AFFAIR.node_name = '发起者' and CTP_AFFAIR.COMPLETE_TIME is null and CTP_AFFAIR.STATE = 3 + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and busType = #{busType} </if> + <if test="amount != null and amount !='' ">and amount = #{amount} </if> + <if test="currency != null and currency !='' "> and currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if> + <if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if> + <if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if> + <if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if> + <if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if> + <if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if> + <if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if> + <if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if> + <if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if> + <if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if> + <if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if> + <if test="title != null and title !='' "> and title = #{title} </if> + <if test="billName != null and billName !='' "> and billName = #{billName} </if> + <if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if> + <if test="payType != null and payType !='' "> and payType = #{payType} </if> + and receipt is null and personalFlag='0' and payResult = '支付成功' + </trim> + </select> + <!-- 查询待支付的 --> + <select id="PaymentEntity_list_base_unpaid" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + select v.* from ( + <include refid="base_sql"/> + ) v + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> v.referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and v.busType = #{busType} </if> + <if test="amount != null and amount !='' ">and v.amount = #{amount} </if> + <if test="currency != null and currency !='' "> and v.currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and v.payAccount = #{payAccount} </if> + <if test="revAccount != null and revAccount !='' "> and v.revAccount = #{revAccount} </if> + <if test="revAccountName != null and revAccountName !='' "> and v.revAccountName = #{revAccountName} </if> + <if test="revBankType != null and revBankType !='' "> and v.revBankType = #{revBankType} </if> + <if test="revBankName != null and revBankName !='' ">and v.revBankName = #{revBankName} </if> + <if test="cnapsCode != null and cnapsCode !='' ">and v.cnapsCode = #{cnapsCode} </if> + <if test="purpose != null and purpose !='' "> and v.purpose = #{purpose} </if> + <if test="personalFlag != null and personalFlag !='' ">and v.personalFlag = #{personalFlag} </if> + <if test="tableName != null and tableName !='' "> and v.tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and v.oaId = #{oaId} </if> + <if test="payCompany != null and payCompany !='' "> and v.payCompany = #{payCompany} </if> + <if test="payCompanyCode != null and payCompanyCode !='' "> and v.payCompanyCode = #{payCompanyCode} </if> + <if test="title != null and title !='' "> and v.title = #{title} </if> + <if test="billName != null and billName !='' "> and v.billName = #{billName} </if> + <if test="payResult != null and payResult !='' ">and v.payResult = #{payResult} </if> + <if test="payBankName != null and payBankName !='' ">and v.payBankName = #{payBankName} </if> + <if test="payType != null and payType !='' "> and v.payType = #{payType} </if> + <if test="finishedflag != null and finishedflag !='' "> and v.finishedflag = #{finishedflag} </if> + and v.amount > 0 + and v.payResult is null + </trim> + </select> + + + + + + <!-- 查询未完成的 采用==查询 --> + <select id="PaymentEntity_list_base_in_payment" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + select + <include refid="PaymentEntity_Base_Column_List"/> + from + v_hzya_oa_cbs + <trim prefix="where" prefixOverrides="and"> + <if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if> + <if test="busType != null and busType !='' "> and busType = #{busType} </if> + <if test="amount != null and amount !='' ">and amount = #{amount} </if> + <if test="currency != null and currency !='' "> and currency = #{currency} </if> + <if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if> + <if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if> + <if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if> + <if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if> + <if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if> + <if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if> + <if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if> + <if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if> + <if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if> + <if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if> + <if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if> + <if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if> + <if test="title != null and title !='' "> and title = #{title} </if> + <if test="billName != null and billName !='' "> and billName = #{billName} </if> + <if test="payResult != null and payResult !='' ">and payResult = #{payResult} </if> + <if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if> + <if test="payType != null and payType !='' "> and payType = #{payType} </if> + and (payResult='支付中' + or payResult not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败')) + and personalFlag='0' + </trim> + </select> + + + + + <!--修改视图支付状态--> + <update id="PaymentEntity_update_payState" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + update ${tableName} set + <trim suffix="" suffixOverrides=","> + <if test="payDate != null and payDate !='' ">${payDateField} =#{payDate},</if> + <if test="payResult != null and payResult !='' ">${payResultField} =#{payResult},</if> + <if test="applyCodeField != null and applyCodeField !='' ">${applyCodeField} =#{applyCode}</if> + </trim> + where id = #{formsonId} + </update> + + <!--修改电子回单--> + <update id="PaymentEntity_update_electronic" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity"> + update ${tableName} set ${receiptFiled}=#{receipt} where id = #{oaId} and ${receiptFiled} is null + </update> + +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.java new file mode 100644 index 00000000..e1d66a2d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.java @@ -0,0 +1,155 @@ +package com.hzya.frame.seeyon.cbs8.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description cbs交易明细日志OA底表 + * @Author xiangerlin + * @Date 2024/6/24 10:49 + **/ +public class TransactionDetailEntity extends BaseEntity { + private String id;//id + private String accountNo;//银行账号 + private String accountName;//户名 + private String openBank;//开户行名称 + private String bankType;//我方银行类型 + private String bankTransactionDate;//交易日期 + private String transactionSerialNumber;//交易流水号 + private String bankSerialNumber;//银行流水号 + private String currency;//币种 + private String incurredAmount;//发生额 + private String purpose;//用途 + private String digest;//摘要 + private String oppositeAccount;//对方账号 + private String oppositeName;//对方户名 + private String oppositeOpeningBank;//对方开户行 + + private String remark;//备注 + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getAccountNo() { + return accountNo; + } + + public void setAccountNo(String accountNo) { + this.accountNo = accountNo; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getOpenBank() { + return openBank; + } + + public void setOpenBank(String openBank) { + this.openBank = openBank; + } + + public String getBankTransactionDate() { + return bankTransactionDate; + } + + public void setBankTransactionDate(String bankTransactionDate) { + this.bankTransactionDate = bankTransactionDate; + } + + public String getTransactionSerialNumber() { + return transactionSerialNumber; + } + + public void setTransactionSerialNumber(String transactionSerialNumber) { + this.transactionSerialNumber = transactionSerialNumber; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public String getIncurredAmount() { + return incurredAmount; + } + + public void setIncurredAmount(String incurredAmount) { + this.incurredAmount = incurredAmount; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getDigest() { + return digest; + } + + public void setDigest(String digest) { + this.digest = digest; + } + + public String getOppositeAccount() { + return oppositeAccount; + } + + public void setOppositeAccount(String oppositeAccount) { + this.oppositeAccount = oppositeAccount; + } + + public String getOppositeName() { + return oppositeName; + } + + public void setOppositeName(String oppositeName) { + this.oppositeName = oppositeName; + } + + public String getOppositeOpeningBank() { + return oppositeOpeningBank; + } + + public void setOppositeOpeningBank(String oppositeOpeningBank) { + this.oppositeOpeningBank = oppositeOpeningBank; + } + + public String getBankType() { + return bankType; + } + + public void setBankType(String bankType) { + this.bankType = bankType; + } + + public String getBankSerialNumber() { + return bankSerialNumber; + } + + public void setBankSerialNumber(String bankSerialNumber) { + this.bankSerialNumber = bankSerialNumber; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.xml new file mode 100644 index 00000000..3fa7fc60 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/entity/TransactionDetailEntity.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity"> + <resultMap id="get-TransactionDetailEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity"> + <result property="id" column="id" /> + <result property="accountNo" column="accountNo" /> + <result property="accountName" column="accountName" /> + <result property="openBank" column="openBank" /> + <result property="bankType" column="bankType" /> + <result property="bankTransactionDate" column="bankTransactionDate" /> + <result property="transactionSerialNumber" column="transactionSerialNumber" /> + <result property="currency" column="currency" /> + <result property="incurredAmount" column="incurredAmount" /> + <result property="purpose" column="purpose" /> + <result property="digest" column="digest" /> + <result property="oppositeAccount" column="oppositeAccount" /> + <result property="oppositeName" column="oppositeName" /> + <result property="oppositeOpeningBank" column="oppositeOpeningBank" /> + <result property="remark" column="remark" /> + </resultMap> + + <sql id="TransactionDetailEntity_Base_Column_List"> + id, + field0001 as accountNo, + field0002 as accountName, + field0003 as openBank, + field0004 as bankType, + field0005 as transactionSerialNumber, + field0006 as bankTransactionDate, + field0007 as bankSerialNumber, + field0008 as currency, + field0009 as incurredAmount, + field0010 as purpose, + field0011 as digest, + field0012 as oppositeAccount, + field0013 as oppositeName, + field0014 as oppositeOpeningBank, + field0015 as remark + </sql> + + <!-- 采用==查询 --> + <select id="TransactionDetailEntity_list_base" resultMap="get-TransactionDetailEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity"> + select + <include refid="TransactionDetailEntity_Base_Column_List"/> + from + formmain_0233 + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id !='' ">id = #{id} </if> + <if test="accountNo != null and accountNo !='' "> and field0001 = #{accountNo} </if> + <if test="accountName != null and accountName !='' "> and field0002 = #{accountName} </if> + <if test="openBank != null and openBank !='' "> and field0003 = #{openBank} </if> + <if test="bankType != null and bankType !='' "> and field0004 = #{bankType} </if> + <if test="transactionSerialNumber != null and transactionSerialNumber !='' "> and field0005 = #{transactionSerialNumber} </if> + <if test="bankTransactionDate != null and bankTransactionDate !='' "> and field0006 = #{bankTransactionDate} </if> + <if test="bankSerialNumber != null and bankSerialNumber !='' "> and field0007 = #{bankSerialNumber} </if> + <if test="currency != null and currency !='' "> and field0008 = #{currency} </if> + <if test="incurredAmount != null and incurredAmount !='' "> and field0009 = #{incurredAmount} </if> + <if test="purpose != null and purpose !='' "> and field0010 = #{purpose} </if> + <if test="digest != null and digest !='' "> and field0011 = #{digest} </if> + <if test="oppositeAccount != null and oppositeAccount !='' "> and field0012 = #{oppositeAccount} </if> + <if test="oppositeName != null and oppositeName !='' "> and field0013 = #{oppositeName} </if> + <if test="oppositeOpeningBank != null and oppositeOpeningBank !='' "> and field0014 = #{oppositeOpeningBank} </if> + <if test="remark != null and remark !='' "> and field0015 = #{remark} </if> + </trim> + </select> + <!-- 只查询交易流水号--> + <select id="TransactionDetailEntity_list_serialNumber" resultMap="get-TransactionDetailEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity"> + select + field0005 as transactionSerialNumber + from + formmain_0233 + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id !='' ">id = #{id} </if> + <if test="accountNo != null and accountNo !='' "> and field0001 = #{accountNo} </if> + <if test="accountName != null and accountName !='' "> and field0002 = #{accountName} </if> + <if test="openBank != null and openBank !='' "> and field0003 = #{openBank} </if> + <if test="bankType != null and bankType !='' "> and field0004 = #{bankType} </if> + <if test="transactionSerialNumber != null and transactionSerialNumber !='' "> and field0005 = #{transactionSerialNumber} </if> + <if test="bankTransactionDate != null and bankTransactionDate !='' "> and field0006 >= #{bankTransactionDate} </if> + <if test="bankSerialNumber != null and bankSerialNumber !='' "> and field0007 = #{bankSerialNumber} </if> + <if test="currency != null and currency !='' "> and field0008 = #{currency} </if> + <if test="incurredAmount != null and incurredAmount !='' "> and field0009 = #{incurredAmount} </if> + <if test="purpose != null and purpose !='' "> and field0010 = #{purpose} </if> + <if test="digest != null and digest !='' "> and field0011 = #{digest} </if> + <if test="oppositeAccount != null and oppositeAccount !='' "> and field0012 = #{oppositeAccount} </if> + <if test="oppositeName != null and oppositeName !='' "> and field0013 = #{oppositeName} </if> + <if test="oppositeOpeningBank != null and oppositeOpeningBank !='' "> and field0014 = #{oppositeOpeningBank} </if> + <if test="remark != null and remark !='' "> and field0015 = #{remark} </if> + </trim> + </select> +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentDetailService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentDetailService.java new file mode 100644 index 00000000..f0a4811b --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentDetailService.java @@ -0,0 +1,18 @@ +package com.hzya.frame.seeyon.cbs8.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; + +/** + * @Description 代发代扣明细 + * @Author xiangerlin + * @Date 2024/6/26 11:00 + **/ +public interface IAgentPaymentDetailService extends IBaseService<AgentPaymentDetailEntity,String> { + /** + * 更新明细表支付状态 + * @param detail + */ + void updatePayResult(AgentPaymentDetailEntity detail); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentService.java new file mode 100644 index 00000000..dcb6d78f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IAgentPaymentService.java @@ -0,0 +1,45 @@ +package com.hzya.frame.seeyon.cbs8.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; + +import java.util.List; + +/** + * @Description OA代发代扣 + * @Author xiangerlin + * @Date 2024/6/18 15:04 + **/ +public interface IAgentPaymentService extends IBaseService<AgentPaymentEntity,String> { + + /** + * 查询待支付待代发代扣 主表 + * @param entity + * @return + * @throws Exception + */ + List<AgentPaymentEntity> queryUnpaid(AgentPaymentEntity entity) throws Exception; + + /** + * 根据支付申请单号查询 + * @param agentPayment + * @return + * @throws Exception + */ + AgentPaymentEntity queryByApplyCode(AgentPaymentEntity agentPayment)throws Exception; + + /** + * 查询明细表 + * @param entity + * @return + * @throws Exception + */ + List<AgentPaymentDetailEntity> queryDetails(AgentPaymentDetailEntity entity)throws Exception; + + /** + * 更新支付状态 + * @param entity + */ + void updateResult(AgentPaymentEntity entity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ICbsLogService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ICbsLogService.java new file mode 100644 index 00000000..7160c21f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ICbsLogService.java @@ -0,0 +1,53 @@ +package com.hzya.frame.seeyon.cbs8.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; + +import java.util.List; + +/** + * @Description cbs8支付日志 + * @Author xiangerlin + * @Date 2024/6/14 17:22 + **/ +public interface ICbsLogService extends IBaseService<CbsLogEntity,String> { + /** + * 查询支付中的数据 + * @param logEntity + * @return + */ + List<CbsLogEntity> queryInPayment(CbsLogEntity logEntity); + /** + * 保存日志,通过rest接口的形式 + * @param logEntity + */ + void saveLog(CbsLogEntity logEntity); + + /** + * 补推,从自己开发的页面或者APIpost + * 需要传oa表单id和表单编号 + * @param entity + */ + void retry(CbsLogEntity entity); + /** + * 补推,从OA页面 + * 只需要传日志表id就行 + * @param jsonObject + */ + void resend(JSONObject jsonObject); + + /** + * 获取token + * @param entity + * @return + */ + SysExtensionApiEntity getTokenExt(SysExtensionApiEntity entity); + + /** + * 更新日志 + * @param logEntity + */ + void updateLog(CbsLogEntity logEntity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java new file mode 100644 index 00000000..4243084c --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java @@ -0,0 +1,63 @@ +package com.hzya.frame.seeyon.cbs8.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; + +import java.util.List; + +/** + * @Description oa对接cbs + * @Author xiangerlin + * @Date 2024/6/6 16:31 + **/ +public interface IPaymentService extends IBaseService<PaymentEntity,String> { + + /** + * 查询待支付的数据 需要推送到CBS的 + * 如果需要查询流程状态已结束的 需要调用方设置finishedflag=1 + * @param entity + * @return + * @throws Exception + */ + List<PaymentEntity> queryUnpaid(PaymentEntity entity)throws Exception; + + /** + * 查询交易成功的数据 + * 内置了查询条件payResult = PayState.payStateGetValue("g"); 支付成功 + * @param entity + * @return + * @throws Exception + */ + List<PaymentEntity> querySuccess(PaymentEntity entity)throws Exception; + + /** + * 查询交易成功,且电子回单为空的 + * @param entity + * @return + * @throws Exception + */ + List<PaymentEntity> queryElecIsNull(PaymentEntity entity)throws Exception; + + /** + * 查询支付中的数据 + * 内置了查询条件 payResult = '支付中' or payResult not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败') + * @param entity + * @return + * @throws Exception + */ + List<PaymentEntity> queryInPayment(PaymentEntity entity)throws Exception; + + /** + * 更新支付状态 + * @param entity + * @throws Exception + */ + void updatePayState(PaymentEntity entity)throws Exception; + + /** + * 更新电子回单字段 + * @param entity + * @throws Exception + */ + void updateElec(PaymentEntity entity)throws Exception; +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ITransactionDetailService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ITransactionDetailService.java new file mode 100644 index 00000000..61126686 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/ITransactionDetailService.java @@ -0,0 +1,29 @@ +package com.hzya.frame.seeyon.cbs8.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity; + +import java.util.List; + +/** + * @Description cbs交易明细 OA底表 + * @Author xiangerlin + * @Date 2024/6/24 11:07 + **/ +public interface ITransactionDetailService extends IBaseService<TransactionDetailEntity,String> { + + + /** + * 只返回交易流水号 + * @param entity + * @return + */ + List<TransactionDetailEntity> querySerialNumber(TransactionDetailEntity entity); + + /** + * 保存交易明细,通过rest接口的方式 + * @param entity + * @throws Exception + */ + void restSave(TransactionDetailEntity entity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentDetailServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentDetailServiceImpl.java new file mode 100644 index 00000000..8bbbad34 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentDetailServiceImpl.java @@ -0,0 +1,39 @@ +package com.hzya.frame.seeyon.cbs8.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.dao.IAgentPaymentDetailDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; +import com.hzya.frame.seeyon.cbs8.service.IAgentPaymentDetailService; +import com.hzya.frame.seeyon.cbs8.service.IAgentPaymentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/26 11:01 + **/ +@Service("OAAgentPaymentDetailServiceImpl") +public class AgentPaymentDetailServiceImpl extends BaseService<AgentPaymentDetailEntity,String> implements IAgentPaymentDetailService { + + private IAgentPaymentDetailDao agentPaymentDetailDao; + + @Autowired + public void setAgentPaymentDetailDao(IAgentPaymentDetailDao agentPaymentDetailDao) { + this.agentPaymentDetailDao = agentPaymentDetailDao; + this.dao = agentPaymentDetailDao; + } + + /** + * 更新明细表支付状态 + * + * @param detail + */ + @DS("#detail.dataSourceCode") + @Override + public void updatePayResult(AgentPaymentDetailEntity detail) { + agentPaymentDetailDao.update("com.hzya.frame.seeyon.cbs8.dao.impl.AgentPaymentDetailDaoImpl.entity_update_result",detail); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentServiceImpl.java new file mode 100644 index 00000000..ab3ab4b9 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/AgentPaymentServiceImpl.java @@ -0,0 +1,93 @@ +package com.hzya.frame.seeyon.cbs8.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.dao.IAgentPaymentDao; +import com.hzya.frame.seeyon.cbs8.dao.IAgentPaymentDetailDao; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity; +import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity; +import com.hzya.frame.seeyon.cbs8.service.IAgentPaymentDetailService; +import com.hzya.frame.seeyon.cbs8.service.IAgentPaymentService; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/18 15:06 + **/ +@Service(value = "cbs8AgentPaymentServiceImpl") +public class AgentPaymentServiceImpl extends BaseService<AgentPaymentEntity,String> implements IAgentPaymentService { + + private IAgentPaymentDao agentPaymentDao; + + @Autowired + private IAgentPaymentDetailService agentPaymentDetailService; + @Autowired + public void setAgentPaymentDao(IAgentPaymentDao agentPaymentDao) { + this.agentPaymentDao = agentPaymentDao; + this.dao = agentPaymentDao; + } + /** + * 查询待支付待代发代扣 主表 + * + * @param entity + * @return + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public List<AgentPaymentEntity> queryUnpaid(AgentPaymentEntity entity) throws Exception { + List<AgentPaymentEntity> list = agentPaymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.dao.impl.AgentPaymentDaoImpl.entity_list_base_unpaid"); + return list; + } + + /** + * 根据支付申请单号查询 + * + * @param entity + * @return + * @throws Exception + */ + @Override + public AgentPaymentEntity queryByApplyCode(AgentPaymentEntity entity) throws Exception { + if (null != entity && StrUtil.isNotEmpty(entity.getApplyCode())){ + List<AgentPaymentEntity> list = agentPaymentDao.query(entity); + if (CollectionUtils.isNotEmpty(list)){ + if (list.size() > 1){ + throw new BaseSystemException("根据"+entity.getApplyCode()+"查询到多条记录"); + } + return list.get(0); + } + } + return null; + } + + /** + * 查询明细表 + * + * @param entity + * @return + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public List<AgentPaymentDetailEntity> queryDetails(AgentPaymentDetailEntity entity) throws Exception { + List<AgentPaymentDetailEntity> list = agentPaymentDetailService.query(entity); + return list; + } + + /** + * @param entity + */ + @DS("#entity.dataSourceCode") + @Override + public void updateResult(AgentPaymentEntity entity) { + agentPaymentDao.update("com.hzya.frame.seeyon.cbs8.dao.impl.AgentPaymentDaoImpl.entity_update",entity); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/CbsLogServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/CbsLogServiceImpl.java new file mode 100644 index 00000000..5ff114e9 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/CbsLogServiceImpl.java @@ -0,0 +1,197 @@ +package com.hzya.frame.seeyon.cbs8.service.impl; + +import cn.hutool.core.map.MapBuilder; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.dao.ICbsLogDao; +import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.cbs8.service.ICbsLogService; +import com.hzya.frame.seeyon.util.OAPayState; +import com.hzya.frame.seeyon.util.OARestUtil; +import com.hzya.frame.stringutil.StringUtil; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description cbs8支付日志 + * @Author xiangerlin + * @Date 2024/6/14 17:22 + **/ +@Service(value = "CbsLogServiceImpl") +public class CbsLogServiceImpl extends BaseService<CbsLogEntity,String> implements ICbsLogService { + + + Logger log = LoggerFactory.getLogger(getClass()); + + private ICbsLogDao cbsLogDao; + + @Autowired + public void setCbsLogDao(ICbsLogDao cbsLogDao) { + this.cbsLogDao = cbsLogDao; + this.dao = cbsLogDao; + } + @Autowired + private OARestUtil restUtil; + + /** + * 查询支付中的数据 + * + * @param logEntity + * @return + */ + @DS("#logEntity.dataSourceCode") + @Override + public List<CbsLogEntity> queryInPayment(CbsLogEntity logEntity) { + List<CbsLogEntity> logList = cbsLogDao.queryList(logEntity, "CbsLogEntity_list_base_in_payment"); + return logList; + } + + /** + * 保存日志,通过rest接口的形式 + * + * @param cbsLogEntity + */ + @Override + public void saveLog(CbsLogEntity cbsLogEntity) { + String oa_id = StringUtil.nullConvert(cbsLogEntity.getOa_id()); + String bill_code = StringUtil.nullConvert(cbsLogEntity.getBill_code()); + String tab_name_en = StringUtil.nullConvert(cbsLogEntity.getTab_name_en()); + String tab_name_ch = StringUtil.nullConvert(cbsLogEntity.getTab_name_ch()); + String pay_state = StringUtil.nullConvert(cbsLogEntity.getPay_state()); + String message = StringUtil.nullConvert(cbsLogEntity.getMessage()); + String apply_state = StringUtil.nullConvert(cbsLogEntity.getApply_state()); + String successed = StringUtil.nullConvert(cbsLogEntity.getSuccessed()); + String title = StringUtil.nullConvert(cbsLogEntity.getTitle()); + String pay_company = StringUtil.nullConvert(cbsLogEntity.getPay_company()); + String payee = StringUtil.nullConvert(cbsLogEntity.getPayee()); + String amount = StringUtil.nullConvert(cbsLogEntity.getAmount()); + String cbs_apply_code = StringUtil.nullConvert(cbsLogEntity.getCbs_apply_code()); + //根据oaid判断是否在日志表中存在,如果存在,则更新,如果不存在,则新增 + CbsLogEntity cbsLogEntityResend=new CbsLogEntity(); + cbsLogEntityResend.setOa_id(cbsLogEntity.getOa_id()); + cbsLogEntityResend.setDataSourceCode(cbsLogEntity.getDataSourceCode()); + List<CbsLogEntity> queryList = query(cbsLogEntityResend); + if(CollectionUtils.isEmpty(queryList)){ + String data = StrUtil.format(getXmlTemplate(),title,pay_company,payee,amount,cbs_apply_code,bill_code,oa_id,tab_name_ch,tab_name_en,pay_state,message,apply_state,successed); + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000240007") + .put("publicKey","ZJYAorA7JuRDfrVjywcx78BFcqlLwthgXNC65TXxxQMUHuxCe7eDIk+3zDUT+v578prj")//发送者 + .put("secretKey","a54vt9Wx7gdBig+4JCkZ/lISIIL2m4ZEyZkXtW0uQVBDHS+V4SVgT6xhNblacri/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//发送者 + .put("appId","800024") + .build(); + JSONObject paramsTemplate = new JSONObject(); + paramsTemplate.put("loginName", "hzya_rest"); + paramsTemplate.put("dataXml", data); + String params = JSONObject.toJSONString(paramsTemplate); + logger.info("保存支付申请日志到OA底表请求参数:{}",params); + String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(headerMap).body(params).timeout(60000).execute().body(); + logger.info("保存支付申请日志到OA底表响应参数:{}",body); + }else{ + for (CbsLogEntity logEntity : queryList) { + logEntity.setPay_state(pay_state); + logEntity.setMessage(message); + logEntity.setApply_state(apply_state); + logEntity.setSuccessed(successed); + logEntity.setBill_code(cbsLogEntity.getBill_code()); + logEntity.setDataSourceCode(cbsLogEntity.getDataSourceCode()); + try { + update(logEntity); + }catch (Exception e){ + e.printStackTrace(); + logger.error("更新"); + } + } + } + } + + /** + * 补推,从自己开发的页面或者APIpost + * 需要传oa表单id和表单编号 + * + * @param entity + */ + @Override + public void retry(CbsLogEntity entity) { + PaymentEntity paymentEntity = new PaymentEntity(); + paymentEntity.setOaId(entity.getOa_id()); + paymentEntity.setReferenceNum(entity.getBill_code()); + CbsLogEntity logEntity = new CbsLogEntity(); + logEntity.setId(entity.getId()); + logEntity = cbsLogDao.queryOne(logEntity); + String pay_state = logEntity.getPay_state(); + if (OAPayState.h.getValue().equals(pay_state) + || OAPayState.three.getValue().equals(pay_state) + || OAPayState.k.getValue().equals(pay_state) + || "推送失败".equals(pay_state)){ + //todo 调用重试方法 + }else { + throw new BaseSystemException("只允许补推支付失败的记录"); + } + } + + /** + * 补推,从OA页面 + * 只需要传日志表id就行 + * + * @param jsonObject + */ + @Override + public void resend(JSONObject jsonObject) { + if (null != jsonObject && StrUtil.isNotEmpty(jsonObject.getString("id"))){ + String id = jsonObject.getString("id"); + CbsLogEntity cbsLogEntity = new CbsLogEntity(); + cbsLogEntity.setId(id); + cbsLogEntity =cbsLogDao.queryOne(cbsLogEntity); + if (null != cbsLogEntity && StrUtil.isNotEmpty(cbsLogEntity.getOa_id()) && StrUtil.isNotEmpty(cbsLogEntity.getBill_code())){ + retry(cbsLogEntity); + } + } + } + + /** + * 获取token + * + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity getTokenExt(SysExtensionApiEntity entity) { + String token = restUtil.getToken("hzya_rest", "8000240000"); + Map<String, String> headers = entity.getHeaders(); + if (null == headers){ + headers = new HashMap<>(); + } + headers.put("token",token); + return entity; + } + + /** + * 更新日志 + * + * @param logEntity + */ + @DS("#logEntity.dataSourceCode") + @Override + public void updateLog(CbsLogEntity logEntity) { + cbsLogDao.update(logEntity); + } + + //获取xml模板 + private String getXmlTemplate(){ + return "<forms version=\"2.1\"><formExport><summary id=\"9195604394844442459\" name=\"formmain_0232\"/><definitions><column id=\"field0002\" type=\"0\" name=\"流程标题\" isNullable=\"false\" length=\"100\"/><column id=\"field0003\" type=\"0\" name=\"付款主体公司\" isNullable=\"false\" length=\"100\"/><column id=\"field0004\" type=\"0\" name=\"收款人\" isNullable=\"false\" length=\"100\"/><column id=\"field0019\" type=\"4\" name=\"金额\" isNullable=\"false\" length=\"20\"/><column id=\"field0005\" type=\"0\" name=\"CBS支付申请单号\" isNullable=\"false\" length=\"100\"/><column id=\"field0006\" type=\"0\" name=\"OA单据编号\" isNullable=\"false\" length=\"100\"/><column id=\"field0007\" type=\"0\" name=\"OA单据ID\" isNullable=\"false\" length=\"100\"/><column id=\"field0008\" type=\"0\" name=\"OA中文表名\" isNullable=\"false\" length=\"100\"/><column id=\"field0009\" type=\"0\" name=\"OA数据库表名\" isNullable=\"false\" length=\"100\"/><column id=\"field0010\" type=\"0\" name=\"支付状态\" isNullable=\"false\" length=\"100\"/><column id=\"field0011\" type=\"0\" name=\"支付信息\" isNullable=\"false\" length=\"100\"/><column id=\"field0012\" type=\"0\" name=\"支付申请状态\" isNullable=\"false\" length=\"100\"/><column id=\"field0014\" type=\"0\" name=\"成功标记\" isNullable=\"false\" length=\"100\"/></definitions><values><column name=\"流程标题\"><value><![CDATA[{}]]></value></column><column name=\"付款主体公司\"><value><![CDATA[{}]]></value></column><column name=\"收款人\"><value><![CDATA[{}]]></value></column><column name=\"金额\"><value><![CDATA[{}]]></value></column><column name=\"CBS支付申请单号\"><value><![CDATA[{}]]></value></column><column name=\"OA单据编号\"><value><![CDATA[{}]]></value></column><column name=\"OA单据ID\"><value><![CDATA[{}]]></value></column><column name=\"OA中文表名\"><value><![CDATA[{}]]></value></column><column name=\"OA数据库表名\"><value><![CDATA[{}]]></value></column><column name=\"支付状态\"><value><![CDATA[{}]]></value></column><column name=\"支付信息\"><value><![CDATA[{}]]></value></column><column name=\"支付申请状态\"><value><![CDATA[{}]]></value></column><column name=\"成功标记\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>"; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java new file mode 100644 index 00000000..3a8b01f1 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java @@ -0,0 +1,150 @@ +package com.hzya.frame.seeyon.cbs8.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.dao.IPaymentDao; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.cbs8.service.IPaymentService; +import com.hzya.frame.seeyon.util.OAPayState; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/6 16:34 + **/ +@Service("OAPaymentServiceImpl") +public class PaymentServiceImpl extends BaseService<PaymentEntity,String> implements IPaymentService { + + + + private IPaymentDao paymentDao; + + @Autowired + public void setPaymentDao(IPaymentDao paymentDao) { + this.paymentDao = paymentDao; + this.dao = paymentDao; + } + + /** + * 查询列表 + * @param entity + * @return + */ + @DS("#entity.dataSourceCode") + @Override + public List<PaymentEntity> query(PaymentEntity entity) { + List<PaymentEntity> list = paymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.entity_list_base"); + return list; + } + + /** + * 查询待支付的数据 需要推送到CBS的 + * 如果需要查询流程状态已结束的 需要调用方设置finishedflag=1 + * + * @param entity + * @return + * @throws Exception + */ + + + @DS("#entity.dataSourceCode") + @Override + public List<PaymentEntity> queryUnpaid(PaymentEntity entity) throws Exception { + List<PaymentEntity> list = paymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_list_base_unpaid"); + return list; + } + + /** + * 查询交易成功的数据 + * 内置了查询条件payResult = PayState.payStateGetValue("g"); 支付成功 + * + * @param entity + * @return + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public List<PaymentEntity> querySuccess(PaymentEntity entity) throws Exception { + if (null == entity){ + entity = new PaymentEntity(); + } + entity.setPayResult(OAPayState.payStateGetValue("g")); + List<PaymentEntity> list = paymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_list_base"); + return list; + } + + /** + * 查询交易成功,且电子回单为空的 + * + * @param entity + * @return + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public List<PaymentEntity> queryElecIsNull(PaymentEntity entity) throws Exception { + List<PaymentEntity> list = paymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_list_base_elec_isnull"); + return list; + } + + /** + * 查询支付中的数据 + * 内置了查询条件 payResult = '支付中' or payResult not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败') + * + * @param entity + * @return + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public List<PaymentEntity> queryInPayment(PaymentEntity entity) throws Exception { + List<PaymentEntity> list = paymentDao.queryList(entity, "com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_list_base_in_payment"); + return list; + } + + /** + * 更新支付状态 + * + * @param entity + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public void updatePayState(PaymentEntity entity) throws Exception { + if (null != entity + && StrUtil.isNotEmpty(entity.getTableName()) + && StrUtil.isNotEmpty(entity.getOaId()) + && StrUtil.isNotEmpty(entity.getFormsonId()) + && StrUtil.isNotEmpty(entity.getPayDateField()) + && StrUtil.isNotEmpty(entity.getPayResultField())){ + String formsonId = entity.getFormsonId(); + String[] formsonIdArray = formsonId.split(","); + for (String s : formsonIdArray) { + entity.setFormsonId(s); + paymentDao.update("com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_update_payState",entity); + } + } + } + + /** + * 更新电子回单字段 + * + * @param entity + * @throws Exception + */ + @DS("#entity.dataSourceCode") + @Override + public void updateElec(PaymentEntity entity) throws Exception { + if (null != entity + && StrUtil.isNotEmpty(entity.getTableName()) + && StrUtil.isNotEmpty(entity.getOaId()) + && StrUtil.isNotEmpty(entity.getReceiptFiled())){ + paymentDao.update("com.hzya.frame.seeyon.cbs8.entity.PaymentEntity.PaymentEntity_update_electronic",entity); + } + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/TransactionDetailServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/TransactionDetailServiceImpl.java new file mode 100644 index 00000000..21cee3ea --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/TransactionDetailServiceImpl.java @@ -0,0 +1,98 @@ +package com.hzya.frame.seeyon.cbs8.service.impl; + +import cn.hutool.core.map.MapBuilder; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.dao.ITransactionDetailDao; +import com.hzya.frame.seeyon.cbs8.entity.TransactionDetailEntity; +import com.hzya.frame.seeyon.cbs8.service.IPaymentService; +import com.hzya.frame.seeyon.cbs8.service.ITransactionDetailService; +import com.hzya.frame.stringutil.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/24 11:08 + **/ +@Service(value = "OATransactionDetailServiceImpl") +public class TransactionDetailServiceImpl extends BaseService<TransactionDetailEntity,String> implements ITransactionDetailService { + + private ITransactionDetailDao transactionDetailDao; + + @Autowired + public void setTransactionDetailDao(ITransactionDetailDao dao) { + this.transactionDetailDao = dao; + this.dao=dao; + } + + /** + * 只返回交易流水号 + * + * @param entity + * @return + */ + @DS("#entity.dataSourceCode") + @Override + public List<TransactionDetailEntity> querySerialNumber(TransactionDetailEntity entity) { + List<TransactionDetailEntity> list = transactionDetailDao.queryList(entity, "TransactionDetailEntity_list_serialNumber");; + return list; + } + + /** + * 保存交易明细,通过rest接口的方式 + * + * @param entity + * @throws Exception + */ + @Override + public void restSave(TransactionDetailEntity entity) { + String field0001= StringUtil.nullConvert(entity.getAccountNo());//我方银行账号 + String field0002=StringUtil.nullConvert(entity.getAccountName());//我方户名 + String field0003=StringUtil.nullConvert(entity.getOpenBank());//我方开户行 + String field0004=StringUtil.nullConvert(entity.getBankType());//我方银行类型 + String field0005=StringUtil.nullConvert(entity.getTransactionSerialNumber());//交易流水号 + String field0006=StringUtil.nullConvert(entity.getBankTransactionDate());//交易日期 + String field0007=StringUtil.nullConvert(entity.getBankSerialNumber());//银行流水号 + String field0008=StringUtil.nullConvert(entity.getCurrency());//币种 + String field0009=StringUtil.nullConvert(entity.getIncurredAmount());//收款金额 + String field0010=StringUtil.nullConvert(entity.getPurpose());//用途 + String field0011=StringUtil.nullConvert(entity.getDigest());//摘要 + String field0012=StringUtil.nullConvert(entity.getOppositeAccount());//对方账号 + String field0013=StringUtil.nullConvert(entity.getOppositeName());//对方户名 + String field0014=StringUtil.nullConvert(entity.getOppositeOpeningBank());//对方开户行 + String field0015=StringUtil.nullConvert(entity.getRemark());//备注 + String data = StrUtil.format(getXmlTemplate(),field0001,field0002,field0003,field0004,field0005,field0006,field0007,field0008,field0009,field0010,field0011,field0012,field0013,field0014,field0015); + Map<String, String> headerMap = MapBuilder.<String, String>create(true) + .put("apiCode", "8000240006") + .put("publicKey","ZJYAorA7JuRDfrVjywcx78BFcqlLwthgXNC65TXxxQMUHuxCe7eDIk+3zDUT+v578prj") + .put("secretKey","a54vt9Wx7gdBig+4JCkZ/lISIIL2m4ZEyZkXtW0uQVBDHS+V4SVgT6xhNblacri/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") + .put("appId","800024") + .build(); + JSONObject paramsTemplate = new JSONObject(); + paramsTemplate.put("loginName", "hzya_rest"); + paramsTemplate.put("dataXml", data); + String params = JSONObject.toJSONString(paramsTemplate); + logger.info("保存交易明细到OA底表请求参数:{}",params); + String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(headerMap).body(params).timeout(60000).execute().body(); + logger.info("保存交易明细到OA底表响应参数:{}",body); + } + + /** + * 无流程表单模版 + * transaction 交易明细 + * payApply 支付申请日志 + * @return + */ + private String getXmlTemplate(){ + return "<forms version=\"2.1\"><formExport><summary id=\"-6287716442449165745\" name=\"formmain_0233\"/><definitions><column id=\"field0001\" type=\"0\" name=\"我方银行账户\" isNullable=\"false\" length=\"100\"/><column id=\"field0002\" type=\"0\" name=\"我方户名\" isNullable=\"false\" length=\"100\"/><column id=\"field0003\" type=\"0\" name=\"我方开户行\" isNullable=\"false\" length=\"100\"/><column id=\"field0004\" type=\"0\" name=\"我方银行类型\" isNullable=\"false\" length=\"100\"/><column id=\"field0005\" type=\"0\" name=\"交易流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0006\" type=\"3\" name=\"交易日期\" isNullable=\"false\" length=\"255\"/><column id=\"field0007\" type=\"0\" name=\"银行流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0008\" type=\"0\" name=\"币种\" isNullable=\"false\" length=\"100\"/><column id=\"field0009\" type=\"4\" name=\"收款金额\" isNullable=\"false\" length=\"20\"/><column id=\"field0010\" type=\"0\" name=\"用途\" isNullable=\"false\" length=\"800\"/><column id=\"field0011\" type=\"0\" name=\"摘要\" isNullable=\"false\" length=\"256\"/><column id=\"field0012\" type=\"0\" name=\"对方账号\" isNullable=\"false\" length=\"100\"/><column id=\"field0013\" type=\"0\" name=\"对方户名\" isNullable=\"false\" length=\"100\"/><column id=\"field0014\" type=\"0\" name=\"对方开户行\" isNullable=\"false\" length=\"100\"/><column id=\"field0015\" type=\"0\" name=\"备注\" isNullable=\"false\" length=\"800\"/></definitions><values><column name=\"我方银行账户\"><value><![CDATA[{}]]></value></column><column name=\"我方户名\"><value><![CDATA[{}]]></value></column><column name=\"我方开户行\"><value><![CDATA[{}]]></value></column><column name=\"我方银行类型\"><value><![CDATA[{}]]></value></column><column name=\"交易流水号\"><value><![CDATA[{}]]></value></column><column name=\"交易日期\"><value><![CDATA[{}]]></value></column><column name=\"银行流水号\"><value><![CDATA[{}]]></value></column><column name=\"币种\"><value><![CDATA[{}]]></value></column><column name=\"收款金额\"><value><![CDATA[{}]]></value></column><column name=\"用途\"><value><![CDATA[{}]]></value></column><column name=\"摘要\"><value><![CDATA[{}]]></value></column><column name=\"对方账号\"><value><![CDATA[{}]]></value></column><column name=\"对方户名\"><value><![CDATA[{}]]></value></column><column name=\"对方开户行\"><value><![CDATA[{}]]></value></column><column name=\"备注\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>"; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICapFormDefinitionDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICapFormDefinitionDao.java new file mode 100644 index 00000000..f892fa11 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICapFormDefinitionDao.java @@ -0,0 +1,51 @@ +package com.hzya.frame.seeyon.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.entity.CapFormDefinitionEntity; +import com.hzya.frame.seeyon.entity.CtpFileEntity; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; + +import java.util.List; + +/** + * + * @content OA字段配置表DAO + * @className: Administrator + * @author laborer + * @date 2024-09-09 16:00 + * + */ + +public interface ICapFormDefinitionDao extends IBaseDao<CapFormDefinitionEntity,String> { + + /** + * + * @content 通过模版编号获取无流程表单配置信息 + * @className: Administrator + * @author laborer + * @date 2024-09-09 16:02 + * + */ + List<CapFormDefinitionEntity> getFormFiled(CapFormDefinitionEntity fieldInfo); +/** + * + * @content 通过主键删除单据数据 + * @className: Administrator + * @author laborer + * @date 2024-09-09 17:04 + * + */ + + int deleteByKey(CapFormDefinitionEntity fieldInfo); +/** + * + * @content 通过客户传递的数据值查询古河条件的数据 + * @className: Administrator + * @author laborer + * @date 2024-09-09 17:05 + * + */ + + List<CapFormDefinitionEntity> getFormFiledByFileValue(CapFormDefinitionEntity fieldInfo); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpAttachmentDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpAttachmentDao.java new file mode 100644 index 00000000..5c64e35f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpAttachmentDao.java @@ -0,0 +1,21 @@ +package com.hzya.frame.seeyon.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; + +import java.util.List; + +public interface ICtpAttachmentDao extends IBaseDao<CtpAttachmentEntity,String> { + //更新数据 + @DS("#ctpAttachmentEntity.dataSourceCode") + int updateCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity); + + //根据fiel_url查询附件业务记录,如果存在则更新,如果不存在则新增 + @DS("#ctpAttachmentEntity.dataSourceCode") + List<CtpAttachmentEntity> queryCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity); + + //新增 + @DS("#ctpAttachmentEntity.dataSourceCode") + CtpAttachmentEntity saveCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java new file mode 100644 index 00000000..87961648 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.entity.CtpFileEntity; + +/** + * @Description seeyon 附件对象 + * @Author xiangerlin + * @Date 2024/6/17 15:21 + **/ +public interface ICtpFileDao extends IBaseDao<CtpFileEntity,String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonDao.java new file mode 100644 index 00000000..02d6888a --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonDao.java @@ -0,0 +1,108 @@ +package com.hzya.frame.seeyon.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.entity.SeeyonEntity; + +import java.util.List; + +/** + * com.hzya.frame.seeyon.dao + * + * @author yqh + * @date 2023-08 -30 10:43 + */ + +public interface ISeeYonDao extends IBaseDao<SeeyonEntity,String> { + /*** + * @Content:通过类型获取OA基本档案数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年8月30日11:33:17 + * @Param seeyon + * @return + **/ + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectOAListByTypeformson_0324(SeeyonEntity seeyon); + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectOAListByTypeformson_0352(SeeyonEntity seeyon); + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectOAListByTypeMain(SeeyonEntity seeyon); + /** + * 通过关联关系获取附件主键 + * @param seeyonEntity + * @return + */ + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectFileUrl(SeeyonEntity seeyonEntity); +/*** + * @Content:修改数据状态,避免重复抓取 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date + * @Param + * @return + **/ + int updateFormStete(SeeyonEntity s); + + /** + * + * @content 查询付款单中得电子回单 + * @Param + * @Return + * @Author hecan + * @Date 2023/11/9 14:23 + * **/ + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectOAListByTypeformmain_0327(SeeyonEntity seeyon); + @DS("ht_oa_sqlserver") + int updateFormformmain_0327(SeeyonEntity seeyon); + + /** + * + * @content 根据付款方id查询付款名 + * @Param + * @Return + * @Author hecan + * @Date 2023/11/9 14:23 + * **/ + @DS("ht_oa_sqlserver") + List<SeeyonEntity> selectOAListByField0258(SeeyonEntity seeyon); + + /** + * + * @content 查询速网U8C中的所有组织 + * @Param + * @Return + * @Author hecan + * @Date 2023/11/13 11:56 + * **/ + @DS("sowow_sqlserver_test") + List<SeeyonEntity> selectOAListByCorp(SeeyonEntity seeyon); + + /** + * + * @content 修改OA中的字段为速网U8C销售订单主键 + * @Param + * @Return + * @Author hecan + * @Date 2023/11/15 11:28 + * **/ + @DS("swoa_mysql") + int updateFormformmain_0237(SeeyonEntity seeyonEntity); + @DS("swoa_mysql") + int updateFormformson_0238(SeeyonEntity seeyonEntity); + //根据销售订单编码查询档案主键 + @DS("swoa_mysql") + SeeyonEntity selectOAListByformmain_0237(SeeyonEntity seeyonEntity); + + /** + * + * @content 修改付款单报销单等单据的推送状态 + * @Param + * @Return + * @Author hecan + * @Date 2023/12/20 8:59 + * **/ + @DS("ht_oa_sqlserver") + int updatepush(SeeyonEntity seeyon); + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonInterFaceDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonInterFaceDao.java new file mode 100644 index 00000000..2edbc648 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ISeeYonInterFaceDao.java @@ -0,0 +1,37 @@ +package com.hzya.frame.seeyon.dao; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity; + +import java.util.List; +import java.util.Map; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +public interface ISeeYonInterFaceDao { + /*** + * 查询OA档案数据,暂时只根据ID查询,只返回ID集合,此方法暂时用于更新无流程表单判断 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-30 10:54 + * @param + * @return java.util.List<com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity> + **/ + List<SeeYonInterFaceEntity> queryArchives(SeeYonInterFaceEntity seeYonInterFaceEntity); + + /*** + * 答应我写注释好吗 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2024-01-18 16:01 + * @param jsonObject 根据模版ID获取数据 + * @return java.util.List<com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity> + **/ + List<SeeYonInterFaceEntity> queryDefinitionInfo(SeeYonInterFaceEntity jsonObject); + List<Map<String, Object>> queryDefinitionData(SeeYonInterFaceEntity jsonObject); + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CapFormDefinitionDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CapFormDefinitionDaoImpl.java new file mode 100644 index 00000000..07304f45 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CapFormDefinitionDaoImpl.java @@ -0,0 +1,39 @@ +package com.hzya.frame.seeyon.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.dao.ICapFormDefinitionDao; +import com.hzya.frame.seeyon.dao.ICtpFileDao; +import com.hzya.frame.seeyon.entity.CapFormDefinitionEntity; +import com.hzya.frame.seeyon.entity.CtpFileEntity; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * + * @content OA字段配置表DAO + * @className: Administrator + * @author laborer + * @date 2024-09-09 16:00 + * + */ +@Repository(value = "CapFormDefinitionDaoImpl") +public class CapFormDefinitionDaoImpl extends MybatisGenericDao<CapFormDefinitionEntity,String> implements ICapFormDefinitionDao { + @DS("#fieldInfo.dataSourceCode") + @Override + public List<CapFormDefinitionEntity> getFormFiled(CapFormDefinitionEntity fieldInfo) { + return (List<CapFormDefinitionEntity>) selectList("com.hzya.frame.seeyon.entity.CapFormDefinitionEntity.CapFormDefinitionEntity_list_base",fieldInfo); + } + @DS("#fieldInfo.dataSourceCode") + @Override + public int deleteByKey(CapFormDefinitionEntity fieldInfo) { + return super.delete("com.hzya.frame.seeyon.entity.CapFormDefinitionEntity.CapFormDefinitionEntity_delete",fieldInfo); + } + @DS("#fieldInfo.dataSourceCode") + @Override + public List<CapFormDefinitionEntity> getFormFiledByFileValue(CapFormDefinitionEntity fieldInfo) { + return (List<CapFormDefinitionEntity>) selectList("com.hzya.frame.seeyon.entity.CapFormDefinitionEntity.CapFormDefinitionEntity_list_table_info",fieldInfo); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpAttachmentDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpAttachmentDaoImpl.java new file mode 100644 index 00000000..080c28bc --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpAttachmentDaoImpl.java @@ -0,0 +1,31 @@ +package com.hzya.frame.seeyon.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.dao.ICtpAttachmentDao; +import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository(value = "ctpAttachmentDaoImpl") +public class +CtpAttachmentDaoImpl extends MybatisGenericDao<CtpAttachmentEntity,String> implements ICtpAttachmentDao { + @DS("#ctpAttachmentEntity.dataSourceCode") + @Override + public int updateCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity) { + return super.update("com.hzya.frame.seeyon.dao.impl.CtpAttachmentDaoImpl.entity_update",ctpAttachmentEntity); + } + + @DS("#ctpAttachmentEntity.dataSourceCode") + @Override + public List<CtpAttachmentEntity> queryCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity) { + return (List<CtpAttachmentEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.CtpAttachmentDaoImpl.entity_list_base",ctpAttachmentEntity); + } + + @DS("#ctpAttachmentEntity.dataSourceCode") + @Override + public CtpAttachmentEntity saveCtpAttachment(CtpAttachmentEntity ctpAttachmentEntity) { + return super.save("com.hzya.frame.seeyon.dao.impl.CtpAttachmentDaoImpl.entity_insert",ctpAttachmentEntity); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java new file mode 100644 index 00000000..8b80d3d7 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.seeyon.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.dao.ICtpAttachmentDao; +import com.hzya.frame.seeyon.dao.ICtpFileDao; +import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; +import com.hzya.frame.seeyon.entity.CtpFileEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/17 15:22 + **/ +@Repository() +public class CtpFileDaoImpl extends MybatisGenericDao<CtpFileEntity,String> implements ICtpFileDao { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonDaoImpl.java new file mode 100644 index 00000000..332ae7fc --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonDaoImpl.java @@ -0,0 +1,94 @@ +package com.hzya.frame.seeyon.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.dao.ISeeYonDao; +import com.hzya.frame.seeyon.entity.SeeyonEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * com.hzya.frame.seeyon.dao.impl + * + * @author yqh + * @date 2023-08 -30 10:44 + */ +@DS("htsqlserver") +@Repository(value = "seeYonDaoImpl") +public class SeeYonDaoImpl extends MybatisGenericDao<SeeyonEntity,String> implements ISeeYonDao { + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectOAListByTypeformson_0352(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_formson_0352",seeyon); + } + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectOAListByTypeformson_0324(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_formson_0324",seeyon); + } + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectOAListByTypeMain(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_main",seeyon); + } + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectFileUrl(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_ctp_attachment",seeyon); + } + @DS("ht_oa_sqlserver") + @Override + public int updateFormStete(SeeyonEntity s) { + return super.update("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_update",s); + } + + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectOAListByTypeformmain_0327(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_formmain_0327",seeyon); + } + + @DS("ht_oa_sqlserver") + @Override + public int updateFormformmain_0327(SeeyonEntity seeyon) { + return super.update("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_update_formmain_0327",seeyon); + } + + @DS("ht_oa_sqlserver") + @Override + public List<SeeyonEntity> selectOAListByField0258(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_field0258",seeyon); + } + + @DS("sowow_sqlserver_test") + @Override + public List<SeeyonEntity> selectOAListByCorp(SeeyonEntity seeyon) { + return (List<SeeyonEntity>) super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_corp",seeyon); + } + + @Override + @DS("swoa_mysql") + public int updateFormformmain_0237(SeeyonEntity seeyonEntity) { + return super.update("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_update_formmain_0237",seeyonEntity); + } + + @Override + @DS("swoa_mysql") + public int updateFormformson_0238(SeeyonEntity seeyonEntity) { + return super.update("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_update_formson_0238",seeyonEntity); + } + + @Override + @DS("swoa_mysql") + public SeeyonEntity selectOAListByformmain_0237(SeeyonEntity seeyonEntity) { + return (SeeyonEntity) super.selectOne("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_list_base_formmain_0237",seeyonEntity); + } + + @DS("ht_oa_sqlserver") + @Override + public int updatepush(SeeyonEntity seeyon) { + return super.update("com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl.entity_update_push",seeyon); + } + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonInterFaceDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonInterFaceDaoImpl.java new file mode 100644 index 00000000..4091f0be --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/SeeYonInterFaceDaoImpl.java @@ -0,0 +1,43 @@ +package com.hzya.frame.seeyon.dao.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.dao.ISeeYonInterFaceDao; +import com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +@Repository(value = "seeYonInterFaceDao") +public class SeeYonInterFaceDaoImpl extends MybatisGenericDao implements ISeeYonInterFaceDao { + + + @Override + @DS("ht_oa_sqlserver") + public List<SeeYonInterFaceEntity> queryArchives(SeeYonInterFaceEntity seeYonInterFaceEntity) { + List list = super.query("com.hzya.frame.seeyon.dao.impl.SeeYonInterFaceDaoImpl.queryArchives",seeYonInterFaceEntity); + return list; + } + + @Override + @DS("#seeYonInterFaceEntity.dataSourceCode") + public List<SeeYonInterFaceEntity> queryDefinitionInfo(SeeYonInterFaceEntity seeYonInterFaceEntity) { + + return super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonInterFaceDaoImpl.queryDefinitionInfo",seeYonInterFaceEntity); + } + + @Override + @DS("#seeYonInterFaceEntity.dataSourceCode") + public List<Map<String, Object>> queryDefinitionData(SeeYonInterFaceEntity seeYonInterFaceEntity) { + List<Map<String, Object>> list = super.selectList("com.hzya.frame.seeyon.dao.impl.SeeYonInterFaceDaoImpl.queryDefinitionData",seeYonInterFaceEntity); + return list ; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.java new file mode 100644 index 00000000..2ab841bd --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.java @@ -0,0 +1,71 @@ +package com.hzya.frame.seeyon.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.io.File; + +/** + * + * @content OA字段配置表 + * @className: Administrator + * @author laborer + * @date 2024-09-09 15:48 + * + */ + +public class CapFormDefinitionEntity extends BaseEntity { + private String fieldInfo;//字段属性定义 + private String viewInfo;//视图权限定义 + private String appbindInfo;//应用绑定定义 + private String tableName;//表名 + private String fieldName;//字段名称 + private String fieldValue;//字段值 + + public String getFieldValue() { + return fieldValue; + } + + public void setFieldValue(String fieldValue) { + this.fieldValue = fieldValue; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldInfo() { + return fieldInfo; + } + + public void setFieldInfo(String fieldInfo) { + this.fieldInfo = fieldInfo; + } + + public String getViewInfo() { + return viewInfo; + } + + public void setViewInfo(String viewInfo) { + this.viewInfo = viewInfo; + } + + public String getAppbindInfo() { + return appbindInfo; + } + + public void setAppbindInfo(String appbindInfo) { + this.appbindInfo = appbindInfo; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.xml new file mode 100644 index 00000000..5c0a498d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CapFormDefinitionEntity.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.entity.CapFormDefinitionEntity"> + <resultMap id="get-CapFormDefinitionEntity-result" type="com.hzya.frame.seeyon.entity.CapFormDefinitionEntity"> + <!--主键 --> + <result property="id" column="id" /> + <result property="fieldInfo" column="field_info" /> + <result property="viewInfo" column="view_info" /> + <result property="appbindInfo" column="appbind_info" /> + + </resultMap> + + + + <sql id="CapFormDefinitionEntity_sql"> + id, + field_info, + view_info, + appbind_info + </sql> + + + <!-- 查询 采用==查询 --> + <select id="CapFormDefinitionEntity_list_base" resultMap="get-CapFormDefinitionEntity-result" parameterType="com.hzya.frame.seeyon.entity.CapFormDefinitionEntity"> + select + <include refid="CapFormDefinitionEntity_sql"/> + from + cap_form_definition + <trim prefix="where" prefixOverrides="and"> + <if test="appbindInfo != null and appbindInfo != ''">and APPBIND_INFO like '%${appbindInfo}%'</if> + </trim> + </select> + <!-- 查询 采用==查询 --> + <select id="CapFormDefinitionEntity_list_table_info" resultMap="get-CapFormDefinitionEntity-result" parameterType="com.hzya.frame.seeyon.entity.CapFormDefinitionEntity"> + select id from ${tableName} where ${fieldName} = #{fieldValue} + </select> + + <delete id="CapFormDefinitionEntity_delete" parameterType="com.hzya.frame.basedao.entity.RequestDisposeEntity"> + delete from ${tableName} where ${fieldName} = #{id} + </delete> +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CfsLogEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CfsLogEntity.java new file mode 100644 index 00000000..31c22e17 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CfsLogEntity.java @@ -0,0 +1,65 @@ +package com.hzya.frame.seeyon.entity; + +/** + * @Description 保存交行日志用 + * @Author xiangerlin + * @Date 2024/3/18 14:07 + **/ +public class CfsLogEntity { + + private String tab_name_ch;//中文表名 + private String tab_name_en;//英文表名 + private OAWorkflowEventDataEntity oaWorkflowEventDataEntity;//无流程表单数据 + + private String result;//交通银行返回的参数(解析后的) + public CfsLogEntity() { + + } + + /** + * + * @param tab_name_ch 中文表名 + * @param tab_name_en 英文表名 + * @param oaWorkflowEventDataEntity 无流程表单数据 + */ + public CfsLogEntity(String tab_name_ch, String tab_name_en, OAWorkflowEventDataEntity oaWorkflowEventDataEntity,String result) { + this.tab_name_ch = tab_name_ch; + this.tab_name_en = tab_name_en; + this.oaWorkflowEventDataEntity = oaWorkflowEventDataEntity; + this.result=result; + } + + public String getTab_name_ch() { + return tab_name_ch; + } + + public void setTab_name_ch(String tab_name_ch) { + this.tab_name_ch = tab_name_ch; + } + + public String getTab_name_en() { + return tab_name_en; + } + + public void setTab_name_en(String tab_name_en) { + this.tab_name_en = tab_name_en; + } + + + + public OAWorkflowEventDataEntity getOaWorkflowEventDataEntity() { + return oaWorkflowEventDataEntity; + } + + public void setOaWorkflowEventDataEntity(OAWorkflowEventDataEntity oaWorkflowEventDataEntity) { + this.oaWorkflowEventDataEntity = oaWorkflowEventDataEntity; + } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CollAttachmentResDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CollAttachmentResDTO.java new file mode 100644 index 00000000..42094a55 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CollAttachmentResDTO.java @@ -0,0 +1,340 @@ +package com.hzya.frame.seeyon.entity; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson.annotation.JSONField; + +import java.util.List; +import java.util.Map; + +/** + * @Description 查询协同附件列表返回对象 /rest/coll/attachments/{summaryID}/{attType} + * @Author xiangerlin + * @Date 2024/8/16 09:11 + **/ +public class CollAttachmentResDTO { + private String id; //ctp_attachment 表的id + private String reference;// 流程表的id, col_summary + private String subReference;//流程表单附件字段存的id + private String category;//应用分类 + private String type; + private String filename;//附件名称 + private String mimeType;//附件类型 + private String createdate; + private String size;//附件大小 + private String description; + private String fileUrl;//附件id,ctp_file 表的逐渐 + private String extension; + private String icon; + private String iconFont; + private String genesisId; + private String sort; + private String officeTransformEnable; + private String obsObjectKey; + private String secretLevel; + private String secretLevelName; + private String canBrowse; + private String v; + private Boolean wpsOnlineEnable; + private Boolean allowTrans; + private JSONObject transValue; + private String createdateStr; + @JSONField(name = "new") + private Boolean newFile; + private Map<String, String> extraMap; // 使用Map来存储额外的键值对 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReference() { + return reference; + } + + public void setReference(String reference) { + this.reference = reference; + } + + public String getSubReference() { + return subReference; + } + + public void setSubReference(String subReference) { + this.subReference = subReference; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } + + public String getMimeType() { + return mimeType; + } + + public void setMimeType(String mimeType) { + this.mimeType = mimeType; + } + + public String getCreatedate() { + return createdate; + } + + public void setCreatedate(String createdate) { + this.createdate = createdate; + } + + public String getSize() { + return size; + } + + public void setSize(String size) { + this.size = size; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFileUrl() { + return fileUrl; + } + + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getIconFont() { + return iconFont; + } + + public void setIconFont(String iconFont) { + this.iconFont = iconFont; + } + + public String getGenesisId() { + return genesisId; + } + + public void setGenesisId(String genesisId) { + this.genesisId = genesisId; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getOfficeTransformEnable() { + return officeTransformEnable; + } + + public void setOfficeTransformEnable(String officeTransformEnable) { + this.officeTransformEnable = officeTransformEnable; + } + + public String getObsObjectKey() { + return obsObjectKey; + } + + public void setObsObjectKey(String obsObjectKey) { + this.obsObjectKey = obsObjectKey; + } + + public String getSecretLevel() { + return secretLevel; + } + + public void setSecretLevel(String secretLevel) { + this.secretLevel = secretLevel; + } + + public String getSecretLevelName() { + return secretLevelName; + } + + public void setSecretLevelName(String secretLevelName) { + this.secretLevelName = secretLevelName; + } + + public String getCanBrowse() { + return canBrowse; + } + + public void setCanBrowse(String canBrowse) { + this.canBrowse = canBrowse; + } + + public String getV() { + return v; + } + + public void setV(String v) { + this.v = v; + } + + public Boolean getWpsOnlineEnable() { + return wpsOnlineEnable; + } + + public void setWpsOnlineEnable(Boolean wpsOnlineEnable) { + this.wpsOnlineEnable = wpsOnlineEnable; + } + + public Boolean getAllowTrans() { + return allowTrans; + } + + public void setAllowTrans(Boolean allowTrans) { + this.allowTrans = allowTrans; + } + + public JSONObject getTransValue() { + return transValue; + } + + public void setTransValue(JSONObject transValue) { + this.transValue = transValue; + } + + public String getCreatedateStr() { + return createdateStr; + } + + public void setCreatedateStr(String createdateStr) { + this.createdateStr = createdateStr; + } + + public Boolean getNewFile() { + return newFile; + } + + public void setNewFile(Boolean newFile) { + this.newFile = newFile; + } + + public Map<String, String> getExtraMap() { + return extraMap; + } + + public void setExtraMap(Map<String, String> extraMap) { + this.extraMap = extraMap; + } + + public static void main(String[] args) { + String str = "[{\n" + + "\t\"id\": 5180424495316486643,\n" + + "\t\"reference\": -1741558410793893622,\n" + + "\t\"subReference\": 584122959825946183,\n" + + "\t\"category\": 66,\n" + + "\t\"type\": 0,\n" + + "\t\"filename\": \"Order.pdf\",\n" + + "\t\"mimeType\": \"application/pdf\",\n" + + "\t\"createdate\": 1723454209000,\n" + + "\t\"size\": 131234,\n" + + "\t\"description\": null,\n" + + "\t\"fileUrl\": -5577707714790406265,\n" + + "\t\"extension\": \"pdf\",\n" + + "\t\"icon\": \"pdf.gif\",\n" + + "\t\"iconFont\": \"pdf\",\n" + + "\t\"genesisId\": null,\n" + + "\t\"sort\": 0,\n" + + "\t\"officeTransformEnable\": \"disable\",\n" + + "\t\"obsObjectKey\": \"\",\n" + + "\t\"secretLevel\": null,\n" + + "\t\"secretLevelName\": null,\n" + + "\t\"canBrowse\": 1,\n" + + "\t\"v\": \"fcdf8ae9d97bf2969fa6005394442885\",\n" + + "\t\"wpsOnlineEnable\": false,\n" + + "\t\"allowTrans\": false,\n" + + "\t\"transValue\": {\n" + + "\t\t\"isWpsOnlineEnable\": false,\n" + + "\t\t\"isAllowTrans\": false\n" + + "\t},\n" + + "\t\"createdateStr\": \"1723454209000\",\n" + + "\t\"new\": false,\n" + + "\t\"extraMap\": {}\n" + + "}, {\n" + + "\t\"id\": -6639984402087339,\n" + + "\t\"reference\": -1741558410793893622,\n" + + "\t\"subReference\": 649078190027982545,\n" + + "\t\"category\": 66,\n" + + "\t\"type\": 0,\n" + + "\t\"filename\": \"Invoice.pdf\",\n" + + "\t\"mimeType\": \"application/pdf\",\n" + + "\t\"createdate\": 1723454201000,\n" + + "\t\"size\": 158553,\n" + + "\t\"description\": null,\n" + + "\t\"fileUrl\": -4345076582332676605,\n" + + "\t\"extension\": \"pdf\",\n" + + "\t\"icon\": \"pdf.gif\",\n" + + "\t\"iconFont\": \"pdf\",\n" + + "\t\"genesisId\": null,\n" + + "\t\"sort\": 0,\n" + + "\t\"officeTransformEnable\": \"disable\",\n" + + "\t\"obsObjectKey\": \"\",\n" + + "\t\"secretLevel\": null,\n" + + "\t\"secretLevelName\": null,\n" + + "\t\"canBrowse\": 1,\n" + + "\t\"v\": \"85d721af033c7dddf385be2c7ea8d423\",\n" + + "\t\"wpsOnlineEnable\": false,\n" + + "\t\"allowTrans\": false,\n" + + "\t\"transValue\": {\n" + + "\t\t\"isWpsOnlineEnable\": false,\n" + + "\t\t\"isAllowTrans\": false\n" + + "\t},\n" + + "\t\"createdateStr\": \"1723454201000\",\n" + + "\t\"new\": false,\n" + + "\t\"extraMap\": {}\n" + + "}]"; + List<CollAttachmentResDTO> list = JSON.parseArray(str,CollAttachmentResDTO.class); + System.out.println(list); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.java new file mode 100644 index 00000000..1b482263 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.java @@ -0,0 +1,124 @@ +package com.hzya.frame.seeyon.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.Date; + +/** + * + * @content OA附件业务表 + * @Param + * @Return + * @Author hecan + * @Date 2023/11/1 14:58 + * **/ +public class CtpAttachmentEntity extends BaseEntity { + private String id;//主键ID + private String sub_reference;//次数据ID此id为真正写在流程表单中的ID + private String category; //应用分类、 + private String type;//分类 + private String filename;//附件名称 + private String file_url;//附件链接 + private String mime_type;// + private Date createdate;//创建时间 + private String attachment_size;//附件大小 + private String sort;//序号 + private String att_reference;//流程表的ID(col_summary) + private String uuid; + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSub_reference() { + return sub_reference; + } + + public void setSub_reference(String sub_reference) { + this.sub_reference = sub_reference; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } + + public String getFile_url() { + return file_url; + } + + public void setFile_url(String file_url) { + this.file_url = file_url; + } + + public String getMime_type() { + return mime_type; + } + + public void setMime_type(String mime_type) { + this.mime_type = mime_type; + } + + public Date getCreatedate() { + return createdate; + } + + public void setCreatedate(Date createdate) { + this.createdate = createdate; + } + + public String getAttachment_size() { + return attachment_size; + } + + public void setAttachment_size(String attachment_size) { + this.attachment_size = attachment_size; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getAtt_reference() { + return att_reference; + } + + public void setAtt_reference(String att_reference) { + this.att_reference = att_reference; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.xml new file mode 100644 index 00000000..f4747121 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpAttachmentEntity.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.dao.impl.CtpAttachmentDaoImpl"> + <resultMap id="get-CtpAttachmentEntity-result" type="com.hzya.frame.seeyon.entity.CtpAttachmentEntity"> + <result property="id" column="id" /> + <result property="sub_reference" column="sub_reference" /> + <result property="category" column="category" /> + <result property="type" column="type" /> + <result property="filename" column="filename" /> + <result property="file_url" column="file_url" /> + <result property="mime_type" column="mime_type" /> + <result property="createdate" column="createdate" /> + <result property="attachment_size" column="attachment_size" /> + <result property="sort" column="sort" /> + <result property="att_reference" column="att_reference" /> + </resultMap> + + <sql id="CtpAttachmentEntity_Column_List"> + id, + sub_reference, + category, + type, + filename, + file_url, + mime_type, + createdate, + attachment_size, + sort, + att_reference + </sql> + + + + <!-- 查询 采用==查询 --> + <select id="entity_list_base" resultMap="get-CtpAttachmentEntity-result" parameterType="com.hzya.frame.seeyon.entity.CtpAttachmentEntity"> + select + <include refid="CtpAttachmentEntity_Column_List" /> + from CTP_ATTACHMENT + <trim prefix="where" prefixOverrides="and"> + <if test="file_url != null and file_url !='' ">file_url = #{file_url} </if> + </trim> + </select> + + <!-- 新增 --> + <insert id="entity_insert" parameterType="com.hzya.frame.seeyon.entity.CtpAttachmentEntity"> + insert into CTP_ATTACHMENT( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id !='' "> id, </if> + <if test="sub_reference != null and sub_reference !='' "> sub_reference, </if> + <if test="category != null and category !='' "> category, </if> + <if test="type != null and type !='' "> type, </if> + <if test="filename != null and filename !='' "> filename, </if> + <if test="file_url != null and file_url !='' "> file_url, </if> + <if test="mime_type != null and mime_type !='' "> mime_type, </if> + <if test="attachment_size != null and attachment_size !='' "> attachment_size, </if> + <if test="sort != null and sort !='' "> sort, </if> + <if test="att_reference != null and att_reference !='' "> att_reference, </if> + <if test="createdate != null"> createdate</if> + </trim> + )values + ( + <trim suffix="" suffixOverrides=","> + <if test="id != null and id !='' "> #{id}, </if> + <if test="sub_reference != null and sub_reference !='' "> #{sub_reference}, </if> + <if test="category != null and category !='' "> #{category}, </if> + <if test="type != null and type !='' "> #{type}, </if> + <if test="filename != null and filename !='' "> #{filename}, </if> + <if test="file_url != null and file_url !='' "> #{file_url}, </if> + <if test="mime_type != null and mime_type !='' "> #{mime_type}, </if> + <if test="attachment_size != null and attachment_size !='' "> #{attachment_size}, </if> + <if test="sort != null and sort !='' "> #{sort}, </if> + <if test="att_reference != null and att_reference !='' "> #{att_reference}, </if> + <if test="createdate != null "> #{createdate}</if> + </trim> + ) + </insert> + + <!-- 修改 付款单中的电子回单字段--> + <update id="entity_update" parameterType="com.hzya.frame.seeyon.entity.CtpAttachmentEntity"> + update CTP_ATTACHMENT set + <trim suffix="" suffixOverrides=","> + <if test="sub_reference != null and sub_reference !='' "> sub_reference = #{sub_reference},</if> + <if test="att_reference != null and att_reference !='' "> att_reference = #{att_reference}</if> + </trim> + where file_url = #{file_url} + </update> + + +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.java new file mode 100644 index 00000000..61ebce25 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.java @@ -0,0 +1,113 @@ +package com.hzya.frame.seeyon.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.io.File; + +/** + * @Description OA附件表 + * @Author xiangerlin + * @Date 2021/10/29 08:56 + **/ +public class CtpFileEntity extends BaseEntity { + private String category;//应用类别 + private String type;//类型 + private String filename;//文件名 + private String mime_type;//文件类型 + private String create_date; + private String create_member; + private String file_size;//大小 + private String description;//描述 + private String update_date; + private String account_id; + + + private File file;//临时用 + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } + + public String getMime_type() { + return mime_type; + } + + public void setMime_type(String mime_type) { + this.mime_type = mime_type; + } + + public String getCreate_date() { + return create_date; + } + + public void setCreate_date(String create_date) { + this.create_date = create_date; + } + + public String getCreate_member() { + return create_member; + } + + public void setCreate_member(String create_member) { + this.create_member = create_member; + } + + public String getFile_size() { + return file_size; + } + + public void setFile_size(String file_size) { + this.file_size = file_size; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getUpdate_date() { + return update_date; + } + + public void setUpdate_date(String update_date) { + this.update_date = update_date; + } + + public String getAccount_id() { + return account_id; + } + + public void setAccount_id(String account_id) { + this.account_id = account_id; + } + + public File getFile() { + return file; + } + + public void setFile(File file) { + this.file = file; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml new file mode 100644 index 00000000..3f3c8cad --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.entity.CtpFileEntity"> + <resultMap id="get-CtpFileEntity-result" type="com.hzya.frame.seeyon.entity.CtpFileEntity"> + <!--主键 --> + <result property="id" column="id" /> + <result property="category" column="category" /> + <result property="type" column="type" /> + <result property="filename" column="filename" /> + <result property="mime_type" column="mime_type" /> + <result property="create_date" column="create_date" /> + <result property="create_member" column="create_member" /> + <result property="file_size" column="file_size" /> + <result property="description" column="description" /> + <result property="update_date" column="update_date" /> + <result property="account_id" column="account_id" /> + </resultMap> + + + + <sql id="CtpFileEntity_sql"> + id, + category, + type, + filename, + mime_type, + create_date, + create_member, + file_size, + description, + update_date, + account_id + </sql> + + + <!-- 查询 采用==查询 --> + <select id="CtpFileEntity_list_base" resultMap="get-CtpFileEntity-result" parameterType="com.hzya.frame.seeyon.entity.CtpFileEntity"> + select + <include refid="CtpFileEntity_sql"/> + from + ctp_file + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id != ''">id = #{id}</if> + <if test="filename != null and filename != ''">and filename = #{filename}</if> + </trim> + </select> + + +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAU8ResponseDTO.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAU8ResponseDTO.java new file mode 100644 index 00000000..c8b473ec --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAU8ResponseDTO.java @@ -0,0 +1,89 @@ +package com.hzya.frame.seeyon.entity; + +import com.alibaba.fastjson.annotation.JSONField; + +/** + * @Description u8返回对象 + * @Author xiangerlin + * @Date 2024/5/14 15:40 + **/ +public class OAU8ResponseDTO { + @JSONField(name = "Flag") + private String flag; + @JSONField(name = "DataOne") + private String dataOne; + @JSONField(name = "DataTwo") + private String dataTwo; + @JSONField(name = "Msg") + private String msg; + + //如果co初始化失败,或者token不对的时候会返回这些信息 + private String code; + private String success; + private String message; + private String data; + + public String getFlag() { + return flag; + } + + public void setFlag(String flag) { + this.flag = flag; + } + + public String getDataOne() { + return dataOne; + } + + public void setDataOne(String dataOne) { + this.dataOne = dataOne; + } + + public String getDataTwo() { + return dataTwo; + } + + public void setDataTwo(String dataTwo) { + this.dataTwo = dataTwo; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getSuccess() { + return success; + } + + public void setSuccess(String success) { + this.success = success; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAWorkflowEventDataEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAWorkflowEventDataEntity.java new file mode 100644 index 00000000..341e553f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/OAWorkflowEventDataEntity.java @@ -0,0 +1,153 @@ +package com.hzya.frame.seeyon.entity; + + +import com.alibaba.fastjson.JSONObject; + +import java.util.Map; + +/** + * @Content OA监听事件提供的表单内容 + * @Author 👻👻👻👻👻👻👻👻👻👻 gjh + * @Date 2020-12-24 8:38 + * @Version 1.0 + */ +public class OAWorkflowEventDataEntity { + private String id;//业务表单id + private String eventType;//流程类型 + /** 流程ID*/ + private String summaryId; + /** 节点ID*/ + private String affairId; + private String currentActivityId; + /** 表单表的FORM ID,用此字段标记是哪个流程*/ + private String formApp; + /****/ + private String formViewOperation; + private Object summaryObj; + private String deeCfgId; + private String currentNodeLast; + private Map<String, Object> businessData; + private Map<String, Object> extData; + private String businessDataStr; + private JSONObject hzyaExtData;//存放一些扩展数据 + private String OnProcessFinished; + public String getSummaryId() { + return summaryId; + } + + public void setSummaryId(String summaryId) { + this.summaryId = summaryId; + } + + public String getAffairId() { + return affairId; + } + + public void setAffairId(String affairId) { + this.affairId = affairId; + } + + public String getCurrentActivityId() { + return currentActivityId; + } + + public void setCurrentActivityId(String currentActivityId) { + this.currentActivityId = currentActivityId; + } + + public String getFormApp() { + return formApp; + } + + public void setFormApp(String formApp) { + this.formApp = formApp; + } + + public String getFormViewOperation() { + return formViewOperation; + } + + public void setFormViewOperation(String formViewOperation) { + this.formViewOperation = formViewOperation; + } + + public Object getSummaryObj() { + return summaryObj; + } + + public void setSummaryObj(Object summaryObj) { + this.summaryObj = summaryObj; + } + + public String getDeeCfgId() { + return deeCfgId; + } + + public void setDeeCfgId(String deeCfgId) { + this.deeCfgId = deeCfgId; + } + + public String getCurrentNodeLast() { + return currentNodeLast; + } + + public void setCurrentNodeLast(String currentNodeLast) { + this.currentNodeLast = currentNodeLast; + } + + public Map<String, Object> getBusinessData() { + return businessData; + } + + public void setBusinessData(Map<String, Object> businessData) { + this.businessData = businessData; + } + + public Map<String, Object> getExtData() { + return extData; + } + + public void setExtData(Map<String, Object> extData) { + this.extData = extData; + } + + public String getBusinessDataStr() { + return businessDataStr; + } + + public void setBusinessDataStr(String businessDataStr) { + this.businessDataStr = businessDataStr; + } + + public String getOnProcessFinished() { + return OnProcessFinished; + } + + public void setOnProcessFinished(String onProcessFinished) { + OnProcessFinished = onProcessFinished; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public JSONObject getHzyaExtData() { + return hzyaExtData; + } + + public void setHzyaExtData(JSONObject hzyaExtData) { + this.hzyaExtData = hzyaExtData; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.java new file mode 100644 index 00000000..449da122 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.java @@ -0,0 +1,112 @@ +package com.hzya.frame.seeyon.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.List; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:38 + */ +public class SeeYonInterFaceEntity extends BaseEntity { + private String tabName; + //三方系统ID + private String tripartiteId; + //OA对应字段 + private String oaField; + //模板info + private String field_info; + //模版ID + private String formAppId; + //主表集合 + private List<String> formMainIds; + //主表ID,用于查询明细数据 + private String formMainId; + //事件类型 + private String eventType; + //表单名称 + private String name; + //流程id + private String summaryId; + public String getTabName() { + return tabName; + } + + public void setTabName(String tabName) { + this.tabName = tabName; + } + + public String getTripartiteId() { + return tripartiteId; + } + + public void setTripartiteId(String tripartiteId) { + this.tripartiteId = tripartiteId; + } + + public String getOaField() { + return oaField; + } + + public void setOaField(String oaField) { + this.oaField = oaField; + } + + public String getField_info() { + return field_info; + } + + public void setField_info(String field_info) { + this.field_info = field_info; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFormAppId() { + return formAppId; + } + + public void setFormAppId(String formAppId) { + this.formAppId = formAppId; + } + + public List<String> getFormMainIds() { + return formMainIds; + } + + public void setFormMainIds(List<String> formMainIds) { + this.formMainIds = formMainIds; + } + + public String getFormMainId() { + return formMainId; + } + + public void setFormMainId(String formMainId) { + this.formMainId = formMainId; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public String getSummaryId() { + return summaryId; + } + + public void setSummaryId(String summaryId) { + this.summaryId = summaryId; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.xml new file mode 100644 index 00000000..4190704d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeYonInterFaceEntity.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.dao.impl.SeeYonInterFaceDaoImpl"> + <resultMap id="get-entity-result" type="com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity"> + <!--主键 --> + <result property="id" column="id" /> + </resultMap> + + <resultMap id="get-DefinitionEntity-result" type="com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity"> + <result property="id" column="id" /> + <result property="name" column="name" /> + <result property="field_info" column="field_info" /> + </resultMap> + + <sql id="Sysproduct_Base_Column_List"> + id as id + </sql> + + <!-- 修改 --> + <select id="queryArchives" parameterType="com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity" resultMap="get-entity-result"> + select id from ${tabName} + <trim prefix="where" prefixOverrides="and"> + <if test="tripartiteId != null and tripartiteId != '' and oaField != null and oaField != '' ">${oaField} = #{tripartiteId} </if> + </trim> + </select> + + + + <!-- 查询模版数据 --> + <select id="queryDefinitionInfo" parameterType="com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity" resultMap="get-DefinitionEntity-result"> + SELECT id,NAME,FIELD_INFO from CAP_FORM_DEFINITION + <trim prefix="where" prefixOverrides="and"> + <if test="formAppId != null and formAppId != '' "> id = #{formAppId} </if> + </trim> + </select> + + <!-- 查询实体数据 --> + <select id="queryDefinitionData" parameterType="com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity" resultType="java.util.Map"> + SELECT * from ${tabName} + <trim prefix="where" prefixOverrides="and"> + <if test="formMainId != null and formMainId != '' "> + and formmain_id = #{formMainId} + </if> + <if test="formMainIds != null and formMainIds.size >0 "> + and id in + <foreach item="ids" collection="formMainIds" open="(" separator="," close=")"> + #{ids} + </foreach> + </if> + </trim> + </select> +</mapper> diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.java new file mode 100644 index 00000000..773386d0 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.java @@ -0,0 +1,684 @@ +package com.hzya.frame.seeyon.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.List; + +/** + * com.hzya.frame.seeyon.entity + * + * @author yqh + * @date 2023-08 -30 10:45 + */ + +public class SeeyonEntity extends BaseEntity { + private String field0026;//合同评审编号 + private String field0001;//关联合同 + private String field0003;//合同编号 + private String field0016;//创建日期 + private String field0002;//合同名称 + private String field0004;//入账公司 + private String field0005;//供应商 + private String field0006;//合同类型 + private String field0015;//合同签订日期 + private String field0009;//合同开始时间 + private String field0010;//合同结束时间 + private String field0012;//是否固定金额 + private String field0013;//合同总金额 + private String field0027;//是否重大合同 + private String field0008;//项目 + private String field0032;//合同附件 + private String field0033;//其他附件 + private String field0034;//业务板块一级 + private String field0035;//合同分类 + private String field0038;//开票信息查询 + private String field0039;//付款信息查询 + private String field0044;//合同数量 + private String field0047;//业务板块二级 + private String field0048;//内容概要与评审理由 + private String field0049;//是否多方 + private String field0050;//是否多项目 + private String field0054;//合同已付金额 + private String field0055;//发票已收金额 + private String field0056;//审批中付款金额 + private String field0057;//审批中已收发票金额 + private String field0017;//行号 + private String field0018;//标的物名称 + private String field0019;//标的物编码 + private String field0021;//规格型号 + private String field0022;//总数量 + private String field0023;//单价 + private String field0024;//不含税金额 + private String field0025;//含税金额 + private String field0036;//税率 + private String field0037;//税务编码 + private String field0040;//已开票数量 + private String field0041;//剩余数量 + private String field0042;//在途数量 + private String field0051;//标的物明细表项目 + private String field0052;//相对方 + private String field0053;//其他相关方名称 + private String tableName;//表名称 + private List<SeeyonEntity> formson_0324;//合同标的物明细(明细表1) + private List<SeeyonEntity> formson_0352;// 相对方(明细表2) + private String formmain_id;//主表ID + private String file_url;//附件ID + private String sub_reference;//附件管理关系 + private String filename;//附件名称 + private String attachment_size;//文件大小 + private String field0067;//状态 + private String field0066;//业务板块三级 + private String loginName;//登录名 + private String dduid;//钉钉id + + private String field0137;//付款账号 + private String field0264;//CFS电子回单 + private String summary_id;//col_summary表id + private String name;//姓名 + private String pk_corp;//公司主键 + private String field0120;//OA关联速网U8C主键的字段 + + private String field0121;//oa对接erp明细主键 + private String details_id;//销售订单明细id + private String da_id;//销售订单档案id + + private String pushField;//杭泰推送标识字段 + private String pushValue;//推送的值 + private String updateTime; + private String field0066Id; + private String field0047Id; + private String field0034Id; + private String field0103;//钉钉ID + + public String getField0103() { + return field0103; + } + + public void setField0103(String field0103) { + this.field0103 = field0103; + } + + public String getField0066Id() { + return field0066Id; + } + + public void setField0066Id(String field0066Id) { + this.field0066Id = field0066Id; + } + + public String getField0047Id() { + return field0047Id; + } + + public void setField0047Id(String field0047Id) { + this.field0047Id = field0047Id; + } + + public String getField0034Id() { + return field0034Id; + } + + public void setField0034Id(String field0034Id) { + this.field0034Id = field0034Id; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getPushField() { + return pushField; + } + + public void setPushField(String pushField) { + this.pushField = pushField; + } + + public String getPushValue() { + return pushValue; + } + + public void setPushValue(String pushValue) { + this.pushValue = pushValue; + } + + public String getDa_id() { + return da_id; + } + + public void setDa_id(String da_id) { + this.da_id = da_id; + } + + public String getDetails_id() { + return details_id; + } + + public void setDetails_id(String details_id) { + this.details_id = details_id; + } + + public String getField0121() { + return field0121; + } + + public void setField0121(String field0121) { + this.field0121 = field0121; + } + + public String getField0120() { + return field0120; + } + + public void setField0120(String field0120) { + this.field0120 = field0120; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getField0264() { + return field0264; + } + + public void setField0264(String field0264) { + this.field0264 = field0264; + } + + public String getSummary_id() { + return summary_id; + } + + public void setSummary_id(String summary_id) { + this.summary_id = summary_id; + } + + public String getField0137() { + return field0137; + } + + public void setField0137(String field0137) { + this.field0137 = field0137; + } + + public String getDduid() { + return dduid; + } + + public void setDduid(String dduid) { + this.dduid = dduid; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getField0067() { + return field0067; + } + + public void setField0067(String field0067) { + this.field0067 = field0067; + } + + public String getAttachment_size() { + return attachment_size; + } + + public void setAttachment_size(String attachment_size) { + this.attachment_size = attachment_size; + } + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } + + public String getSub_reference() { + return sub_reference; + } + + public void setSub_reference(String sub_reference) { + this.sub_reference = sub_reference; + } + + public String getFile_url() { + return file_url; + } + + public void setFile_url(String file_url) { + this.file_url = file_url; + } + + public String getFormmain_id() { + return formmain_id; + } + + public void setFormmain_id(String formmain_id) { + this.formmain_id = formmain_id; + } + + public List<SeeyonEntity> getFormson_0324() { + return formson_0324; + } + + public void setFormson_0324(List<SeeyonEntity> formson_0324) { + this.formson_0324 = formson_0324; + } + + public List<SeeyonEntity> getFormson_0352() { + return formson_0352; + } + + public void setFormson_0352(List<SeeyonEntity> formson_0352) { + this.formson_0352 = formson_0352; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getField0026() { + return field0026; + } + + public void setField0026(String field0026) { + this.field0026 = field0026; + } + + public String getField0001() { + return field0001; + } + + public void setField0001(String field0001) { + this.field0001 = field0001; + } + + public String getField0003() { + return field0003; + } + + public void setField0003(String field0003) { + this.field0003 = field0003; + } + + public String getField0016() { + return field0016; + } + + public void setField0016(String field0016) { + this.field0016 = field0016; + } + + public String getField0002() { + return field0002; + } + + public void setField0002(String field0002) { + this.field0002 = field0002; + } + + public String getField0004() { + return field0004; + } + + public void setField0004(String field0004) { + this.field0004 = field0004; + } + + public String getField0005() { + return field0005; + } + + public void setField0005(String field0005) { + this.field0005 = field0005; + } + + public String getField0006() { + return field0006; + } + + public void setField0006(String field0006) { + this.field0006 = field0006; + } + + public String getField0015() { + return field0015; + } + + public void setField0015(String field0015) { + this.field0015 = field0015; + } + + public String getField0009() { + return field0009; + } + + public void setField0009(String field0009) { + this.field0009 = field0009; + } + + public String getField0010() { + return field0010; + } + + public void setField0010(String field0010) { + this.field0010 = field0010; + } + + public String getField0012() { + return field0012; + } + + public void setField0012(String field0012) { + this.field0012 = field0012; + } + + public String getField0013() { + return field0013; + } + + public void setField0013(String field0013) { + this.field0013 = field0013; + } + + public String getField0027() { + return field0027; + } + + public void setField0027(String field0027) { + this.field0027 = field0027; + } + + public String getField0008() { + return field0008; + } + + public void setField0008(String field0008) { + this.field0008 = field0008; + } + + public String getField0032() { + return field0032; + } + + public void setField0032(String field0032) { + this.field0032 = field0032; + } + + public String getField0033() { + return field0033; + } + + public void setField0033(String field0033) { + this.field0033 = field0033; + } + + public String getField0034() { + return field0034; + } + + public void setField0034(String field0034) { + this.field0034 = field0034; + } + + public String getField0035() { + return field0035; + } + + public void setField0035(String field0035) { + this.field0035 = field0035; + } + + public String getField0038() { + return field0038; + } + + public void setField0038(String field0038) { + this.field0038 = field0038; + } + + public String getField0039() { + return field0039; + } + + public void setField0039(String field0039) { + this.field0039 = field0039; + } + + public String getField0044() { + return field0044; + } + + public void setField0044(String field0044) { + this.field0044 = field0044; + } + + public String getField0047() { + return field0047; + } + + public void setField0047(String field0047) { + this.field0047 = field0047; + } + + public String getField0048() { + return field0048; + } + + public void setField0048(String field0048) { + this.field0048 = field0048; + } + + public String getField0049() { + return field0049; + } + + public void setField0049(String field0049) { + this.field0049 = field0049; + } + + public String getField0050() { + return field0050; + } + + public void setField0050(String field0050) { + this.field0050 = field0050; + } + + public String getField0054() { + return field0054; + } + + public void setField0054(String field0054) { + this.field0054 = field0054; + } + + public String getField0055() { + return field0055; + } + + public void setField0055(String field0055) { + this.field0055 = field0055; + } + + public String getField0056() { + return field0056; + } + + public void setField0056(String field0056) { + this.field0056 = field0056; + } + + public String getField0057() { + return field0057; + } + + public void setField0057(String field0057) { + this.field0057 = field0057; + } + + public String getField0017() { + return field0017; + } + + public void setField0017(String field0017) { + this.field0017 = field0017; + } + + public String getField0018() { + return field0018; + } + + public void setField0018(String field0018) { + this.field0018 = field0018; + } + + public String getField0019() { + return field0019; + } + + public void setField0019(String field0019) { + this.field0019 = field0019; + } + + public String getField0021() { + return field0021; + } + + public void setField0021(String field0021) { + this.field0021 = field0021; + } + + public String getField0022() { + return field0022; + } + + public void setField0022(String field0022) { + this.field0022 = field0022; + } + + public String getField0023() { + return field0023; + } + + public void setField0023(String field0023) { + this.field0023 = field0023; + } + + public String getField0024() { + return field0024; + } + + public void setField0024(String field0024) { + this.field0024 = field0024; + } + + public String getField0025() { + return field0025; + } + + public void setField0025(String field0025) { + this.field0025 = field0025; + } + + public String getField0036() { + return field0036; + } + + public void setField0036(String field0036) { + this.field0036 = field0036; + } + + public String getField0037() { + return field0037; + } + + public void setField0037(String field0037) { + this.field0037 = field0037; + } + + public String getField0040() { + return field0040; + } + + public void setField0040(String field0040) { + this.field0040 = field0040; + } + + public String getField0041() { + return field0041; + } + + public void setField0041(String field0041) { + this.field0041 = field0041; + } + + public String getField0042() { + return field0042; + } + + public void setField0042(String field0042) { + this.field0042 = field0042; + } + + public String getField0051() { + return field0051; + } + + public void setField0051(String field0051) { + this.field0051 = field0051; + } + + public String getField0052() { + return field0052; + } + + public void setField0052(String field0052) { + this.field0052 = field0052; + } + + public String getField0053() { + return field0053; + } + + public void setField0053(String field0053) { + this.field0053 = field0053; + } + + public String getField0066() { + return field0066; + } + + public void setField0066(String field0066) { + this.field0066 = field0066; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.xml new file mode 100644 index 00000000..83714c7d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/SeeyonEntity.xml @@ -0,0 +1,250 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.dao.impl.SeeYonDaoImpl"> + <resultMap id="get-SeeyonEntity-result" type="com.hzya.frame.seeyon.entity.SeeyonEntity"> + <result property="id" column="id" /> + <result property="field0026" column="field0026" /> + <result property="field0001" column="field0001" /> + <result property="field0003" column="field0003" /> + <result property="field0016" column="field0016" /> + <result property="field0002" column="field0002" /> + <result property="field0004" column="field0004" /> + <result property="field0005" column="field0005" /> + <result property="field0006" column="field0006" /> + <result property="field0015" column="field0015" /> + <result property="field0009" column="field0009" /> + <result property="field0010" column="field0010" /> + <result property="field0012" column="field0012" /> + <result property="field0013" column="field0013" /> + <result property="field0027" column="field0027" /> + <result property="field0008" column="field0008" /> + <result property="field0032" column="field0032" /> + <result property="field0033" column="field0033" /> + <result property="field0034" column="field0034" /> + <result property="field0035" column="field0035" /> + <result property="field0038" column="field0038" /> + <result property="field0039" column="field0039" /> + <result property="field0044" column="field0044" /> + <result property="field0047" column="field0047" /> + <result property="field0048" column="field0048" /> + <result property="field0049" column="field0049" /> + <result property="field0050" column="field0050" /> + <result property="field0054" column="field0054" /> + <result property="field0055" column="field0055" /> + <result property="field0056" column="field0056" /> + <result property="field0057" column="field0057" /> + <result property="field0017" column="field0017" /> + <result property="field0018" column="field0018" /> + <result property="field0019" column="field0019" /> + <result property="field0021" column="field0021" /> + <result property="field0022" column="field0022" /> + <result property="field0023" column="field0023" /> + <result property="field0024" column="field0024" /> + <result property="field0025" column="field0025" /> + <result property="field0036" column="field0036" /> + <result property="field0037" column="field0037" /> + <result property="field0040" column="field0040" /> + <result property="field0041" column="field0041" /> + <result property="field0042" column="field0042" /> + <result property="field0051" column="field0051" /> + <result property="field0052" column="field0052" /> + <result property="field0053" column="field0053" /> + <result property="field0067" column="field0067" /> + <result property="field0066" column="field0066" /> + <result property="formmian_id" column="formmian_id" /> + <result property="file_url" column="file_url" /> + <result property="filename" column="filename" /> + <result property="attachment_size" column="attachment_size" /> + <result property="loginName" column="loginName" /> + <result property="dduid" column="dduid" /> + <result property="field0137" column="field0137" /> + <result property="field0264" column="field0264" /> + <result property="summary_id" column="summary_id" /> + <result property="name" column="name" /> + <result property="pk_corp" column="pk_corp" /> + <result property="field0120" column="field0120" /> + <result property="field0121" column="field0121" /> + <result property="details_id" column="details_id" /> + <result property="da_id" column="da_id" /> + <result property="field0066Id" column="field0066_id" /> + <result property="field0047Id" column="field0047_id" /> + <result property="field0034Id" column="field0034_id" /> + <result property="field0103" column="field0103" /> + </resultMap> + + <sql id="SeeyonEntity_Base_Column_List"> + id + </sql> + + <sql id="SeeyonEntity_Base_Column_List_details"> + splitbank,bankaccno,name,code + </sql> + + + + + <!-- 查询 采用==查询 --> + <select id="entity_list_base_formson_0324" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select + body.id, + field0017, + field0018, + field0019, + field0021, + field0022, + field0023, + field0024, + field0025, + item.code as field0036, + field0037, + field0040, + field0041, + field0042, + field0051 + + from formson_0324 body + left join ctp_enum_item item on body.field0036 = item.id + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id !=''">formmain_id=#{id}</if> + </trim> + </select> + <!-- 查询 采用==查询 --> + <select id="entity_list_base_formson_0352" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select + body.id, + item.SHOWVALUE as field0052, + field0053 + + from formson_0352 body + left join ctp_enum_item item on body.field0052 = item.id + <trim prefix="where" prefixOverrides="and"> + <if test="id != null and id !=''">formmain_id=#{id}</if> + </trim> + </select> + <!-- 查询 采用==查询 --> + <select id="entity_list_base_main" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select + main.id, + field0026, + field0001, + field0003, + field0016, + field0002, + field0004, + field0005, + item1.SHOWVALUE as field0006, + field0015, + field0009, + field0010, + item2.SHOWVALUE as field0012, + field0013, + item3.SHOWVALUE as field0027, + field0008, + field0032, + field0033, + item4.SHOWVALUE as field0034, + item5.SHOWVALUE as field0035, + field0038, + field0039, + field0044, + item6.SHOWVALUE as field0047, + field0048, + item7.SHOWVALUE as field0049, + item8.SHOWVALUE as field0050, + field0054, + field0055, + field0056, + field0057, + field0063, + field0064, + field0065, + item9.SHOWVALUE as field0066, + field0067, + sm_user.loginName, + sm_user.dduid, + field0103, + field0034 as field0034_id, + field0047 as field0047_id, + field0066 as field0066_id + from formmain_0323 main + left join ctp_enum_item item1 on main.field0006 = item1.id + left join ctp_enum_item item2 on main.field0012 = item2.id + left join ctp_enum_item item3 on main.field0027 = item3.id + left join ctp_enum_item item4 on main.field0034 = item4.id + left join ctp_enum_item item5 on main.field0035 = item5.id + left join ctp_enum_item item6 on main.field0047 = item6.id + left join ctp_enum_item item7 on main.field0049 = item7.id + left join ctp_enum_item item8 on main.field0050 = item8.id + left join ctp_enum_item item9 on main.field0066 = item9.id + left join v_user_view_all sm_user on sm_user.id = main.start_member_id + where 1=1 + AND field0003 = '345678' + and (field0103 is null or main.modify_date >= #{updateTime}) + </select> + + <!-- 查询 采用==查询 --> + <select id="entity_list_base_ctp_attachment" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select * FROM ctp_attachment where sub_reference = #{sub_reference} + </select> + + <!-- 查询 查询付款单中电子回单为null得 --> + <select id="entity_list_base_formmain_0327" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select -- top 5. + main.id, + main.field0264, + col.id as summary_id, + formson.field0137 -- 付款账号 + from formmain_0327 main + left join formson_0329 formson on formson.formmain_id=main.id + left join col_summary col on col.form_recordid=main.id + where main.field0264 is null + and CONVERT(varchar,main.start_date,120) > '2023-11-02 10:05' + and formmain_id='6385523488104860827' + group by main.id,formson.field0137,main.field0264,col.id + </select> + + <!-- 查询 根据付款方id查询v_user_view_all中得名称 --> + <select id="entity_list_base_field0258" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select name from v_user_view_all where staffID=#{id} + </select> + + <!-- 查询 查询速网U8C中所有组织--> + <select id="entity_list_base_corp" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select pk_corp from bd_corp; + </select> + + <!-- 查询 根据销售订单单据编码查询销售档案主键--> + <select id="entity_list_base_formmain_0237" resultMap="get-SeeyonEntity-result" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + select id as da_id from formmain_0237 where field0010=#{field0010} + </select> + + <!-- 修改 付款单中的电子回单字段--> + <update id="entity_update_formmain_0327" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + update formmain_0327 set field0264 = #{field0264} where id = #{id} + </update> + + <!-- 修改 --> + <update id="entity_update" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + update formmain_0323 set field0067 = 'Y' + where id = #{id} + </update> + + <!-- 修改 修改OA字段为速网U8C销售订单主键 --> + <update id="entity_update_formmain_0237" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + update formmain_0237 set field0120 = #{field0120} + where field0010 = #{field0010} + </update> + + <!-- 修改 修改OA字段为速网U8C销售订单明细主键 --> + <update id="entity_update_formson_0238" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + update formson_0238 set field0121 = #{field0121} + where field0012 = #{field0012} and formmain_id=#{formmain_id} + </update> + + <!-- 修改 修改付款单报销单等单据的推送状态 --> + <update id="entity_update_push" parameterType="com.hzya.frame.seeyon.entity.SeeyonEntity"> + update ${tableName} set ${pushField} = #{pushValue} + where id=#{id} + </update> +</mapper> + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/enums/ColEventTypeEnum.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/enums/ColEventTypeEnum.java new file mode 100644 index 00000000..69b1af3e --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/enums/ColEventTypeEnum.java @@ -0,0 +1,45 @@ +package com.hzya.frame.seeyon.enums; + +/** + * 流程事件类型枚举 + */ +public enum ColEventTypeEnum { + + ONBEFORESTART("onBeforeStart","流程发起前"), + ONSTART("onStart","流程发起"), + ONBEFORESTOP("onBeforeStop","终止前事件"), + ONSTOP("onStop","终止事件"), + ONBEFORECANCEL("onBeforeCancel","撤销前事件"), + ONCANCEL("onCancel","撤销事件"), + ONPROCESSFINISHED("onProcessFinished","结束事件"), + ONBEFOREFINISHWORKITEM("onBeforeFinishWorkitem","处理前事件"), + ONFINISHWORKITEM("onFinishWorkitem","处理事件"), + ONBEFORESTEPBACK("onBeforeStepBack","回退前事件"), + ONSTEPBACK("onStepBack","回退事件"), + ONBEFORETAKEBACK("onBeforeTakeBack","取回前事件"), + ONTAKEBACK("onTakeBack","取回事件"), + ; + private String type; + private String name; + + ColEventTypeEnum(String type, String name) { + this.type = type; + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/IPayBillDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/IPayBillDao.java new file mode 100644 index 00000000..a0ec8db8 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/IPayBillDao.java @@ -0,0 +1,33 @@ +package com.hzya.frame.seeyon.paybill.dao; + +import com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; + +import java.util.List; +import java.util.Map; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +public interface IPayBillDao { +/** + * + * @content 获取OA工程付款单数据 + * @author laborer + * @date 2024/6/20 0020 11:30 + * + */ + List<PayBillEntity> getOaEngineerPay(PayBillEntity entity); +/** + * + * @content 修改推送状态 + * @author laborer + * @date 2024/6/21 0021 11:15 + * + */ + + int updateState(PayBillEntity pay); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/impl/PayBillDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/impl/PayBillDaoImpl.java new file mode 100644 index 00000000..3a753554 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/dao/impl/PayBillDaoImpl.java @@ -0,0 +1,32 @@ +package com.hzya.frame.seeyon.paybill.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity; +import com.hzya.frame.seeyon.paybill.dao.IPayBillDao; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +@Repository(value = "PayBillDaoImpl") +public class PayBillDaoImpl extends MybatisGenericDao implements IPayBillDao { + + @DS("#entity.dataSourceCode") + @Override + public List<PayBillEntity> getOaEngineerPay(PayBillEntity entity) { + return super.selectList("com.hzya.frame.seeyon.paybill.dao.impl.PayBillDaoImpl.PayBillEntity_list_base",entity); + } + @DS("#pay.dataSourceCode") + @Override + public int updateState(PayBillEntity pay) { + return super.update("com.hzya.frame.seeyon.paybill.dao.impl.PayBillDaoImpl.PayBillEntity_update",pay); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java new file mode 100644 index 00000000..1a9308de --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java @@ -0,0 +1,107 @@ +package com.hzya.frame.seeyon.paybill.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.List; +import java.util.Map; + +/** + * + * @content 付款結算單 + * @author laborer + * @date 2024/6/20 0020 11:07 + * + */ + +public class PayBillEntity extends BaseEntity { + private String billDate;//付款日期 + private String primalMoney;//付款金额信息 + private String pkOppaccount;//付款银行信息 + private String pkSupplier;//供应商信息 + private String tableName;//表名称 + private String fieldName;//字段名称 + private String state;//推送状态 + private String pkOrg;//组织 + private String pkCustomer;//客户 + private String pk_oppaccount;//付款账户 + + public String getPkCustomer() { + return pkCustomer; + } + + public void setPkCustomer(String pkCustomer) { + this.pkCustomer = pkCustomer; + } + + public String getPk_oppaccount() { + return pk_oppaccount; + } + + public void setPk_oppaccount(String pk_oppaccount) { + this.pk_oppaccount = pk_oppaccount; + } + + public String getPkOrg() { + return pkOrg; + } + + public void setPkOrg(String pkOrg) { + this.pkOrg = pkOrg; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getBillDate() { + return billDate; + } + + public void setBillDate(String billDate) { + this.billDate = billDate; + } + + public String getPrimalMoney() { + return primalMoney; + } + + public void setPrimalMoney(String primalMoney) { + this.primalMoney = primalMoney; + } + + public String getPkOppaccount() { + return pkOppaccount; + } + + public void setPkOppaccount(String pkOppaccount) { + this.pkOppaccount = pkOppaccount; + } + + public String getPkSupplier() { + return pkSupplier; + } + + public void setPkSupplier(String pkSupplier) { + this.pkSupplier = pkSupplier; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml new file mode 100644 index 00000000..736d5914 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.paybill.dao.impl.PayBillDaoImpl"> + <resultMap id="get-PayBillEntity-result" type="com.hzya.frame.seeyon.paybill.entity.PayBillEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="pkOrg" column="pk_org" jdbcType="VARCHAR"/> + <result property="billDate" column="bill_date" jdbcType="VARCHAR"/> + <result property="primalMoney" column="primal_money" jdbcType="VARCHAR"/> + <result property="pkOppaccount" column="pk_oppaccount" jdbcType="VARCHAR"/> + <result property="pkSupplier" column="pk_supplier" jdbcType="VARCHAR"/> + <result property="tableName" column="table_name" jdbcType="VARCHAR"/> + <result property="fieldName" column="field_name" jdbcType="VARCHAR"/> + + </resultMap> + + <!--工程项目查询--> + <select id="PayBillEntity_list_base" resultMap="get-PayBillEntity-result" parameterType="com.hzya.frame.seeyon.paybill.entity.PayBillEntity"> + SELECT + body.id as id, + field0070 AS bill_date, + field0057 AS primal_money, + field0019 AS pk_oppaccount, + field0082 AS pk_supplier, + 'formson_0222' as table_name, + 'field0084' as field_name + FROM formmain_0093 main + LEFT JOIN formson_0222 body ON main.id = body.formmain_id + WHERE field0070 IS NOT null and field0084 is null + union all + SELECT + body.id as id, + field0073 AS bill_date, + field0031 AS primal_money, + field0042 AS pk_oppaccount, + field0077 AS pk_supplier, + 'formson_0210' as table_name, + 'field0078' as field_name + FROM formmain_0209 main + LEFT JOIN formson_0210 body ON main.id = body.formmain_id + WHERE field0073 IS NOT null and field0078 is null + union all + SELECT + body.id as id, + field0053 AS bill_date, + field0041 AS primal_money, + field0024 AS pk_oppaccount, + field0057 AS pk_supplier, + 'formson_0223' as table_name, + 'field0058' as field_name + FROM formmain_0094 main + LEFT JOIN formson_0223 body ON main.id = body.formmain_id + WHERE field0053 IS NOT NULL and field0058 is null + </select> + + <!--通过主键修改方法--> + <update id="PayBillEntity_update" parameterType = "java.util.Map" > + update ${tableName} set ${fieldName} = #{state} where id = #{id} + </update> + + +</mapper> + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/IPayBillService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/IPayBillService.java new file mode 100644 index 00000000..caad27a7 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/IPayBillService.java @@ -0,0 +1,29 @@ +package com.hzya.frame.seeyon.paybill.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +import java.util.List; + +/** + * + * @content huoqu + * @author laborer获取OA付款单数据并推送BIP生成付款结算单 + * @date 2024/6/20 0020 11:19 + * + */ + +public interface IPayBillService extends IBaseService<PaymentEntity,String> { +/** + * + * @content 工程付款单数据同步BIP + * @author laborer + * @date 2024/6/20 0020 11:24 + * + */ +JsonResultEntity sendEngineerPayBillToBip(JSONObject requestJson); + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java new file mode 100644 index 00000000..5bdf9b4b --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java @@ -0,0 +1,105 @@ +package com.hzya.frame.seeyon.paybill.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.paybill.dao.IPayBillDao; +import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; +import com.hzya.frame.seeyon.paybill.service.IPayBillService; +import com.hzya.frame.seeyon.service.impl.SeeYonInterFaceImpl; +import com.hzya.frame.seeyon.util.OABipUtil; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * @content 付款单同步BIP + * @author laborer + * @date 2024/6/20 0020 15:20 + * + */ + +@Service("PayBillServiceImpl") +public class PayBillServiceImpl extends BaseService<PaymentEntity,String> implements IPayBillService { + private static final Logger logger = LoggerFactory.getLogger(PayBillServiceImpl.class); + + @Autowired + private IPayBillDao payBillDao; + /** + * + * @content 工程付款单数据同步BIP + * @author laborer + * @date 2024/6/20 0020 11:24 + * + */ + @Override + public JsonResultEntity sendEngineerPayBillToBip(JSONObject requestJson) { + PayBillEntity entity = new PayBillEntity(); + requestJson.put("db_code","OA"); + entity.setDataSourceCode(requestJson.getString("db_code")); + List<PayBillEntity>payBillEntityList = payBillDao.getOaEngineerPay(entity); + if(CollectionUtils.isNotEmpty(payBillEntityList)){ + for(PayBillEntity pay : payBillEntityList){ + String token = OABipUtil.getBipToken("yonyou","8000230000"); + JSONObject main = bindingAdd(pay); + logger.info("工程付款单调用中台生成BIP付款结算单推送报文{}",main.toString()); + String result = OABipUtil.sendU9cTOBipEsb(main.toString(),"8000230014",token); + logger.info("工程付款单调用中台生成BIP付款结算单返回结果{}",result); + JSONObject resultObj = JSON.parseObject(result); + boolean flag = resultObj.getBoolean("success"); + if(flag){ + pay.setState("Y"); + }else{ + pay.setState("N"); + } + pay.setDataSourceCode(requestJson.getString("db_code")); + payBillDao.updateState(pay); + // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 + } + } + return null; + } + + @NotNull + private JSONObject bindingAdd(PayBillEntity pay) { + JSONObject head = new JSONObject(); + head.put("pk_org","");//所属组织 + head.put("pk_group","");//集团 + head.put("bill_type","F5");//单据类型 默认F5 + head.put("trade_type","D5");//付款结算类型 默认D5 + head.put("source_flag","2");//付款结算类型 默认2 + head.put("bill_date",pay.getBillDate());//单据日期 + head.put("primal_money",pay.getPrimalMoney());//付款原币金额 + head.put("pk_currtype","CNY");//币种 + head.put("billmaker","");//制单人 + //处理明细数据,按照明细付款 多个明细生成多个付款结算单 + JSONArray detailsArr = new JSONArray(); + JSONObject body = new JSONObject(); + body.put("pk_org","");//所属组织 + body.put("pk_group","");//集团 + body.put("bill_type","F5");//单据类型 默认F5 + body.put("trade_type","D5");//付款结算类型 默认D5 + body.put("pk_currtype","CNY");//币种 + body.put("bill_date",pay.getBillDate());//单据日期 + body.put("pay_primal",pay.getPrimalMoney());//付款原币金额 + body.put("creationtime",pay.getBillDate());//创建时间 + body.put("direction","-1");//方向 :1=收;-1=付; + body.put("objecttype","0");//交易对象 + body.put("pk_customer",pay.getPkCustomer());//客户 + body.put("pk_account",pay.getPkOppaccount());//付款银行账号 + detailsArr.add(body); + JSONObject main = new JSONObject(); + main.put("head",head);//表头 + main.put("body",detailsArr);//明细数据 + return main; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/IRecBillDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/IRecBillDao.java new file mode 100644 index 00000000..7668f65e --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/IRecBillDao.java @@ -0,0 +1,31 @@ +package com.hzya.frame.seeyon.recbill.dao; + +import com.hzya.frame.seeyon.recbill.entity.RecBillEntity; + +import java.util.List; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +public interface IRecBillDao { +/** + * + * @content 获取OA工程付款单数据 + * @author laborer + * @date 2024/6/20 0020 11:30 + * + */ + List<RecBillEntity> getOaRecBill(RecBillEntity rec); +/** + * + * @content 修改推送状态 + * @author laborer + * @date 2024/6/21 0021 11:15 + * + */ + + int updateState(RecBillEntity rec); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java new file mode 100644 index 00000000..3682e8a2 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java @@ -0,0 +1,30 @@ +package com.hzya.frame.seeyon.recbill.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.recbill.dao.IRecBillDao; +import com.hzya.frame.seeyon.recbill.entity.RecBillEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-30 10:27 + */ +@Repository(value = "RecBillDaoImpl") +public class RecBillDaoImpl extends MybatisGenericDao implements IRecBillDao { + + @DS("#rec.dataSourceCode") + @Override + public List<RecBillEntity> getOaRecBill(RecBillEntity rec) { + return super.selectList("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.PayBillEntity_list_base",rec); + } + @DS("#rec.dataSourceCode") + @Override + public int updateState(RecBillEntity rec) { + return super.update("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.PayBillEntity_update",rec); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java new file mode 100644 index 00000000..5a271b5d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java @@ -0,0 +1,104 @@ +package com.hzya.frame.seeyon.recbill.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * + * @content 付款結算單 + * @author laborer + * @date 2024/6/20 0020 11:07 + * + */ + +public class RecBillEntity extends BaseEntity { + private String billDate;//付款日期 + private String primalMoney;//付款金额信息 + private String pkOppaccount;//付款银行信息 + private String pkSupplier;//供应商信息 + private String tableName;//表名称 + private String fieldName;//字段名称 + private String state;//推送状态 + private String pkCustomer;//客户 + private String pkAccount;//收款账户 + private String pkOrg;//组织 + + public String getPkCustomer() { + return pkCustomer; + } + + public void setPkCustomer(String pkCustomer) { + this.pkCustomer = pkCustomer; + } + + public String getPkAccount() { + return pkAccount; + } + + public void setPkAccount(String pkAccount) { + this.pkAccount = pkAccount; + } + + public String getPkOrg() { + return pkOrg; + } + + public void setPkOrg(String pkOrg) { + this.pkOrg = pkOrg; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getBillDate() { + return billDate; + } + + public void setBillDate(String billDate) { + this.billDate = billDate; + } + + public String getPrimalMoney() { + return primalMoney; + } + + public void setPrimalMoney(String primalMoney) { + this.primalMoney = primalMoney; + } + + public String getPkOppaccount() { + return pkOppaccount; + } + + public void setPkOppaccount(String pkOppaccount) { + this.pkOppaccount = pkOppaccount; + } + + public String getPkSupplier() { + return pkSupplier; + } + + public void setPkSupplier(String pkSupplier) { + this.pkSupplier = pkSupplier; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml new file mode 100644 index 00000000..21f3fc7e --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl"> + <resultMap id="get-RecBillEntity-result" type="com.hzya.frame.seeyon.recbill.entity.RecBillEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="pkOrg" column="pk_org" jdbcType="VARCHAR"/> + <result property="billDate" column="bill_date" jdbcType="VARCHAR"/> + <result property="primalMoney" column="primal_money" jdbcType="VARCHAR"/> + <result property="pkAccount" column="pk_account" jdbcType="VARCHAR"/> + <result property="pkCustomer" column="pk_customer" jdbcType="VARCHAR"/> + <result property="pkOppaccount" column="pk_oppaccount" jdbcType="VARCHAR"/> + <result property="pkSupplier" column="pk_supplier" jdbcType="VARCHAR"/> + <result property="tableName" column="table_name" jdbcType="VARCHAR"/> + <result property="fieldName" column="field_name" jdbcType="VARCHAR"/> + + </resultMap> + + <!--工程项目查询--> + <select id="RecBillEntity_list_base" resultMap="get-RecBillEntity-result" parameterType="com.hzya.frame.seeyon.recbill.entity.RecBillEntity"> + SELECT + field0002 AS pk_org, + field0006 AS bill_date, + field0009 AS primal_money, + field0001 AS pk_account, + field0013 AS pk_customer, + field0012 AS pk_oppaccount, + 'formmain_0233' as table_name, + 'field0016' as field_name + FROM formmain_0233 + WHERE field0016 IS null + </select> + + <!--通过主键修改方法--> + <update id="RecBillEntity_update" parameterType = "java.util.Map" > + update ${tableName} set ${fieldName} = #{state} where id = #{id} + </update> + + +</mapper> + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/IRecBillService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/IRecBillService.java new file mode 100644 index 00000000..96930a43 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/IRecBillService.java @@ -0,0 +1,26 @@ +package com.hzya.frame.seeyon.recbill.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * + * @content huoqu + * @author laborer获取OA付款单数据并推送BIP生成付款结算单 + * @date 2024/6/20 0020 11:19 + * + */ + +public interface IRecBillService extends IBaseService<PaymentEntity,String> { +/** + * + * @content 工程付款单数据同步BIP + * @author laborer + * @date 2024/6/20 0020 11:24 + * + */ +JsonResultEntity sendRecBillToBip(JSONObject requestJson); + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java new file mode 100644 index 00000000..f65d2855 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java @@ -0,0 +1,104 @@ +package com.hzya.frame.seeyon.recbill.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; +import com.hzya.frame.seeyon.recbill.dao.IRecBillDao; +import com.hzya.frame.seeyon.recbill.entity.RecBillEntity; +import com.hzya.frame.seeyon.recbill.service.IRecBillService; +import com.hzya.frame.seeyon.util.OABipUtil; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * @content 付款单同步BIP + * @author laborer + * @date 2024/6/20 0020 15:20 + * + */ + +@Service("RecBillServiceImpl") +public class RecBillServiceImpl extends BaseService<PaymentEntity,String> implements IRecBillService { + private static final Logger logger = LoggerFactory.getLogger(RecBillServiceImpl.class); + + @Autowired + private IRecBillDao payBillDao; + /** + * + * @content 工程付款单数据同步BIP + * @author laborer + * @date 2024/6/20 0020 11:24 + * + */ + @Override + public JsonResultEntity sendRecBillToBip(JSONObject requestJson) { + RecBillEntity entity = new RecBillEntity(); + requestJson.put("db_code","OA"); + entity.setDataSourceCode(requestJson.getString("db_code")); + List<RecBillEntity>payBillEntityList = payBillDao.getOaRecBill(entity); + if(CollectionUtils.isNotEmpty(payBillEntityList)){ + for(RecBillEntity pay : payBillEntityList){ + String token = OABipUtil.getBipToken("yonyou","8000230000"); + JSONObject main = bindingAdd(pay); + logger.info("银行流水收款信息数据{}",main.toString()); + String result = OABipUtil.sendU9cTOBipEsb(main.toString(),"8000230016",token); + logger.info("银行流水收款信息数据{}",result); + JSONObject resultObj = JSON.parseObject(result); + boolean flag = resultObj.getBoolean("success"); + if(flag){ + pay.setState("Y"); + }else{ + pay.setState("N"); + } + pay.setDataSourceCode(requestJson.getString("db_code")); + payBillDao.updateState(pay); + // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 + } + } + return null; + } + + @NotNull + private JSONObject bindingAdd(RecBillEntity pay) { + JSONObject head = new JSONObject(); + head.put("pk_org","");//所属组织 + head.put("pk_group","");//集团 + head.put("bill_type","F4");//单据类型 默认F5 + head.put("trade_type","D4");//付款结算类型 默认D5 + head.put("source_flag","2");//付款结算类型 默认2 + head.put("bill_date",pay.getBillDate());//单据日期 + head.put("primal_money",pay.getPrimalMoney());//付款原币金额 + head.put("pk_currtype","CNY");//币种 + head.put("billmaker","");//制单人 + //处理明细数据,按照明细付款 多个明细生成多个付款结算单 + JSONArray detailsArr = new JSONArray(); + JSONObject body = new JSONObject(); + body.put("pk_org","");//所属组织 + body.put("pk_group","");//集团 + body.put("bill_type","F4");//单据类型 默认F5 + body.put("trade_type","D4");//付款结算类型 默认D5 + body.put("pk_currtype","CNY");//币种 + body.put("bill_date",pay.getBillDate());//单据日期 + body.put("pay_primal",pay.getPrimalMoney());//付款原币金额 + body.put("creationtime",pay.getBillDate());//创建时间 + body.put("direction","-1");//方向 :1=收;-1=付; + body.put("objecttype","0");//交易对象 + body.put("pk_customer",pay.getPkCustomer());//客户 + body.put("pk_account",pay.getPkAccount());//收款银行账号 + detailsArr.add(body); + JSONObject main = new JSONObject(); + main.put("head",head);//表头 + main.put("body",detailsArr);//明细数据 + return main; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpAttachmentService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpAttachmentService.java new file mode 100644 index 00000000..3af20d9d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpAttachmentService.java @@ -0,0 +1,20 @@ +package com.hzya.frame.seeyon.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; + +/** + * @Description seeyon 附件关系 + * @Author xiangerlin + * @Date 2024/6/17 15:30 + **/ +public interface ICtpAttachmentService extends IBaseService<CtpAttachmentEntity, String> { + /** + * 保存附件关系表 + * @param fileUrl ctp_file id + * @param col_summary_id col_summary id + * @param sub_reference 随机uuid + * @return + */ + CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference)throws Exception; +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpFileService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpFileService.java new file mode 100644 index 00000000..b34826ef --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ICtpFileService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.seeyon.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.entity.CtpFileEntity; + +/** + * @Description seeyon 附件 + * @Author xiangerlin + * @Date 2024/6/17 15:23 + **/ +public interface ICtpFileService extends IBaseService<CtpFileEntity, String> { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/INoProcessService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/INoProcessService.java new file mode 100644 index 00000000..57e72e80 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/INoProcessService.java @@ -0,0 +1,26 @@ +package com.hzya.frame.seeyon.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * + * @content 无流程表单公用service + * @className: Administrator + * @author laborer + * @date 2024-09-09 14:53 + * + */ +public interface INoProcessService { +/** + * + * @content 无流程删除通用接口 + * @className: Administrator + * @author laborer + * @date 2024-09-09 15:08 + * + */ + + JsonResultEntity DeleteProcessField(JSONObject requestData); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeYonInterFace.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeYonInterFace.java new file mode 100644 index 00000000..5dc53395 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeYonInterFace.java @@ -0,0 +1,94 @@ +package com.hzya.frame.seeyon.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * 致远OA接口类 + * + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-22 9:29 + */ +public interface ISeeYonInterFace { + + /*** + * 发起OA表单方法 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-22 9:31 + * @param requestData 请求json + * @return com.hzya.frame.web.entity.JsonResultEntity + **/ + JsonResultEntity thirdInterfaceSend(JSONObject requestData); + + + /*** + * @Content: 提供给OA的标准接口方法,包含参数 entity 为OA 的data信息, , eventType 为事件类型 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2020-12-24 10:36 + * @Param [entity, eventType] + * eventType: + * 发起前事件 onBeforeStart , + * 发起事件 onStart , + * 终止前事件 onBeforeStop , + * 终止事件 onStop, + * 撤销前事件 onBeforeCancel, + * 撤销事件 onCancel, + * 结束事件 onProcessFinished, + * 处理前事件 onBeforeFinishWorkitem, + * 处理事件 onFinishWorkitem, + * 回退前事件 onBeforeStepBack, + * 回退事件 onStepBack, + * 取回前事件 onBeforeTakeBack, + * 取回事件 onTakeBack, + * @return string + **/ + JsonResultEntity thirdInterfaceSeeYonPlugInInterfaceEntrance(JSONObject requestData); + + + /*** + * 致远OA业务流程集成补推方法,需要传递参数 + * @param jsonObject formAppId 表单模版ID CAP_FORM_DEFINITION, formMainIds 集合 dataSourceCode 数据源编码 + * @return ht_oa_sqlserver + * @throws Exception + */ + JsonResultEntity thirdInterfaceSeeYonDefinitionRePush(JSONObject jsonObject) throws Exception; + + /** + * seeyon流程事件监听前置方法,绑定数据源 + * + * @param sysExtensionApi + * @return + * @throws Exception + */ + SysExtensionApiEntity colEventPre(SysExtensionApiEntity sysExtensionApi) throws Exception; + + /** + * seeyon流程事件监听 + * + * @param jsonObject + * @return + * @throws Exception + */ + JsonResultEntity colEventListener(JSONObject jsonObject) throws Exception; + + /** + * seeyon流程事件监听后置方法,调用三方接口 + * + * @param jsonStr + * @param formAppId + * @param eventType + * @return + * @throws Exception + */ + JsonResultEntity colEventPost(String jsonStr, String formAppId, String eventType) throws Exception; + + + JsonResultEntity chengeBody(JSONObject jsonObject) throws Exception; + + SysExtensionApiEntity chengeBodySetPlug(SysExtensionApiEntity entity); + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeyonExtService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeyonExtService.java new file mode 100644 index 00000000..4f06472d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/ISeeyonExtService.java @@ -0,0 +1,29 @@ +package com.hzya.frame.seeyon.service; + +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.sysnew.messageManageLog.entity.SysMessageManageLogEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * @Description seeyon扩展类 + * @Author xiangerlin + * @Date 2024/5/14 14:04 + **/ +public interface ISeeyonExtService { + + /** + * @Since 3.0 + * 英德赛 OA档案传U8 + * 根据不同formApp来调U8不同接口 + * @param entity + * @return + */ + SysExtensionApiEntity ydcSeeyon2u8(SysExtensionApiEntity entity); + + /** + * @Since 3.0 + * 回调方法 + * @param logEntity + */ + void ydcSeeyon2u8CallBack(SysMessageManageLogEntity logEntity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpAttachmentServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpAttachmentServiceImpl.java new file mode 100644 index 00000000..0ee1e68f --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpAttachmentServiceImpl.java @@ -0,0 +1,70 @@ +package com.hzya.frame.seeyon.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.dao.ICtpAttachmentDao; +import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; +import com.hzya.frame.seeyon.entity.CtpFileEntity; +import com.hzya.frame.seeyon.service.ICtpAttachmentService; +import com.hzya.frame.seeyon.service.ICtpFileService; +import com.hzya.frame.uuid.UUIDLong; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/17 15:31 + **/ +@Service(value = "ctpAttachmentService") +public class CtpAttachmentServiceImpl extends BaseService<CtpAttachmentEntity, String> implements ICtpAttachmentService { + + private ICtpAttachmentDao ctpAttachmentDao; + @Autowired + private ICtpFileService ctpFileService; + @Autowired + public void setCtpAttachmentDao(ICtpAttachmentDao dao) { + this.ctpAttachmentDao = dao; + this.dao = dao; + } + + /** + * 保存附件关系表 + * + * @param fileUrl ctp_file id + * @param col_summary_id col_summary id + * @param sub_reference 随机uuid + * @return + */ + @Override + public CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference)throws Exception { + //查一下附件 + CtpFileEntity ctpFileEntity = new CtpFileEntity(); + ctpFileEntity.setId(fileUrl); + ctpFileEntity.setDataSourceCode(""); + List<CtpFileEntity> ctpFileList = ctpFileService.query(ctpFileEntity); + if (CollectionUtils.isNotEmpty(ctpFileList)){ + CtpFileEntity ctpFile = ctpFileList.get(0); + if (null != ctpFile){ + CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity(); + ctpAttachmentEntity.setId(String.valueOf(UUIDLong.longUUID())); + ctpAttachmentEntity.setFile_url(ctpFile.getId());//ctp_file表的id + ctpAttachmentEntity.setAtt_reference(col_summary_id);//业务表单的id + ctpAttachmentEntity.setSub_reference(sub_reference);//这个字段要保存到业务表附件到字段上 + ctpAttachmentEntity.setCategory("66");//这里写66 才可以显示图片 + ctpAttachmentEntity.setFilename(ctpFile.getFilename()); + ctpAttachmentEntity.setType(ctpFile.getType()); + ctpAttachmentEntity.setMime_type(ctpFile.getMime_type()); + ctpAttachmentEntity.setAttachment_size(ctpFile.getFile_size()); + ctpAttachmentEntity.setCreatedate(new Date()); + this.save(ctpAttachmentEntity); + return ctpAttachmentEntity; + } + } + return null; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpFileServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpFileServiceImpl.java new file mode 100644 index 00000000..31f96553 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/CtpFileServiceImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.seeyon.service.impl; + +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.entity.CtpFileEntity; +import com.hzya.frame.seeyon.service.ICtpFileService; +import org.springframework.stereotype.Service; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/6/17 15:24 + **/ +@Service() +public class CtpFileServiceImpl extends BaseService<CtpFileEntity, String> implements ICtpFileService { +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/NoProcessServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/NoProcessServiceImpl.java new file mode 100644 index 00000000..87ba10be --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/NoProcessServiceImpl.java @@ -0,0 +1,119 @@ +package com.hzya.frame.seeyon.service.impl; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.seeyon.dao.ICapFormDefinitionDao; +import com.hzya.frame.seeyon.entity.CapFormDefinitionEntity; +import com.hzya.frame.seeyon.service.INoProcessService; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.checkerframework.checker.units.qual.A; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicReference; + +/** + * + * @content 无流程表单公用service + * @className: Administrator + * @author laborer + * @date 2024-09-09 14:53 + * + */ + +@Service(value = "NoProcessServiceImpl") +public class NoProcessServiceImpl implements INoProcessService { + private static final Logger logger = LoggerFactory.getLogger(NoProcessServiceImpl.class); + @Autowired + private ICapFormDefinitionDao capFormDefinitionDao; + @Override + public JsonResultEntity DeleteProcessField(JSONObject requestData) { + List<String>count =new ArrayList<>(); + JSONObject jsonStrObj = requestData.getJSONObject("jsonStr"); + String formCode = jsonStrObj.getString("formCode"); + String fieldName = jsonStrObj.getString("fieldName"); + String fieldValue = jsonStrObj.getString("fieldValue"); + if(StrUtil.isEmpty(formCode)){ + return new JsonResultEntity("表单编码不能为空:formCode",false); + } + if(StrUtil.isEmpty(fieldName)){ + return new JsonResultEntity("字段名称不能为空:fieldName",false); + } + if(StrUtil.isEmpty(fieldValue)){ + return new JsonResultEntity("字段值不能为空:fieldValue",false); + } + + //通过表单编号获取表单字段信息 + CapFormDefinitionEntity fieldInfo = new CapFormDefinitionEntity(); + fieldInfo.setAppbindInfo(formCode); + fieldInfo.setDataSourceCode("djoatest"); + List<CapFormDefinitionEntity>capFormDefinitionEntityList = capFormDefinitionDao.getFormFiled(fieldInfo); + if(CollectionUtils.isEmpty(capFormDefinitionEntityList)){ + return new JsonResultEntity("通过表单编号查询表单有误,请检查表单编号:"+formCode,false); + } + + try { + capFormDefinitionEntityList.forEach(item->{ + String appbindInfo = item.getAppbindInfo(); + //格式化字段信息 + JSONObject jsonObject = JSONObject.parseObject(appbindInfo); + boolean queryFlag = false; + //如果模版编号相同则继续删除,反正跳过 + if(formCode.equals(jsonObject.getString("formCode"))){ + JSONObject field = JSONObject.parseObject(item.getFieldInfo()); + JSONObject frontFormmain = field.getJSONObject("front_formmain"); + JSONArray formsons = field.getJSONArray("formsons"); + JSONArray fieldInfoTable = frontFormmain.getJSONArray("fieldInfo"); + //验证需要删除的条件字段在表单属性中是否存在 + for (int i = 0; i < fieldInfoTable.size(); i++) { + JSONObject fieldInfoTableObj = fieldInfoTable.getJSONObject(i); + String name = fieldInfoTableObj.getString("name"); + //如果表单属性中存在该字段则验证通过,如果不存在直接返回错误 + if(name.equals(fieldName)){ + queryFlag = true; + + } + } + //验证通过获取数据库表名称进行数据删除 + if(queryFlag){ + String tableName = frontFormmain.getString("tableName"); + //如果主表名称获取主表的主键进行数据删除 + fieldInfo.setTableName(tableName); + fieldInfo.setFieldName(fieldName); + fieldInfo.setFieldValue(fieldValue); + List<CapFormDefinitionEntity>dataFormList = capFormDefinitionDao.getFormFiledByFileValue(fieldInfo); + if(CollectionUtils.isNotEmpty(dataFormList)){ + dataFormList.forEach(item1->{ + String id = item1.getId(); + count.add(id); + fieldInfo.setFieldName("id"); + fieldInfo.setId(id); + capFormDefinitionDao.deleteByKey(fieldInfo); + //循环该表单下面的所有子表信息进行子表删除 + if(CollectionUtils.isNotEmpty(formsons)){ + formsons.forEach(formsonsItem->{ + JSONObject jsonObjectBoddy = JSONObject.parseObject(formsonsItem.toString()); + String bodyTableName = jsonObjectBoddy.getString("tableName"); + fieldInfo.setTableName(bodyTableName); + fieldInfo.setFieldName("formmain_id"); + fieldInfo.setId(id); + capFormDefinitionDao.deleteByKey(fieldInfo); + }); + } + }); + } + } + } + }); + } catch (Exception e) { + throw new RuntimeException(e); + } + return new JsonResultEntity("删除成功,删除的数据ID"+ JSON.toJSONString(count),true); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeYonInterFaceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeYonInterFaceImpl.java new file mode 100644 index 00000000..7475c8f4 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeYonInterFaceImpl.java @@ -0,0 +1,568 @@ +package com.hzya.frame.seeyon.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.seeyon.dao.ISeeYonInterFaceDao; +import com.hzya.frame.seeyon.entity.OAWorkflowEventDataEntity; +import com.hzya.frame.seeyon.entity.SeeYonInterFaceEntity; +import com.hzya.frame.seeyon.service.ISeeYonInterFace; +import com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity; +import com.hzya.frame.sysnew.application.api.service.ISysApplicationApiService; +import com.hzya.frame.sysnew.application.database.dao.ISysApplicationDatabaseDao; +import com.hzya.frame.sysnew.application.database.entity.SysApplicationDatabaseEntity; +import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.util.PluginUtils; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import com.hzya.frame.web.exception.BaseSystemException; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author 👻👻👻👻👻👻👻👻👻👻 gjh + * @version 1.0 + * @content + * @date 2023-08-22 9:30 + */ +@Service(value = "seeYonInterFace") +public class SeeYonInterFaceImpl implements ISeeYonInterFace { + private static final Logger logger = LoggerFactory.getLogger(SeeYonInterFaceImpl.class); + /*** rest 用户名*/ + private static final String RESTUSERNAME = "hzyaRest"; + /*** rest 密码*/ + private static final String RESTPASSWORD = "a5ce21b8-91db-4cec-b3e3-3e44719655fd"; + // TODO 此处URL暂时写死,后续根据传递的应用ID获取 + private static final String sendUrl = "http://60.204.152.210/seeyon/"; + //速网esb地址 + private static final String baseUrl = "http://hzya.ufyct.com:9067/kangarooDataCenter/entranceController/externalCallInterface"; + /** + * 定义所支持的事件静态代码块 + */ + private static final StringBuffer eventTypeBuffer = new StringBuffer(); + //基础档案类型 + private final String ARCHIVESTYPE = "archives"; + //流程表单类型 + private final String FLOWTYPE = "flow"; + //创建基础档案 + private final String CREATEARCHIVES = "create"; + //更新基础档案 + private final String UPDATEARCHIVES = "update"; + //创建基础档案 + private final String CREATEARCHIVESURL = "rest/form/import/"; + //创建基础档案 + private final String UPDATEARCHIVESURL = "rest/form/update"; + @Resource + private ISysApplicationDatabaseDao sysApplicationDatabaseDao; + @Autowired + private ISysApplicationApiService sysApplicationApiService; + @Resource + private ISeeYonInterFaceDao seeYonInterFaceDao; + //上一次同步时间 + private final String LAST_SYNCHRONISED_TIME = ""; + + { + eventTypeBuffer.append("发起前事件 onBeforeStart ,"); + eventTypeBuffer.append("发起事件 onStart ,"); + eventTypeBuffer.append("终止前事件 onBeforeStop ,"); + eventTypeBuffer.append("终止事件 onStop,"); + eventTypeBuffer.append("撤销前事件 onBeforeCancel,"); + eventTypeBuffer.append("撤销事件 onCancel,"); + eventTypeBuffer.append("结束事件 onProcessFinished,"); + eventTypeBuffer.append("处理前事件 onBeforeFinishWorkitem,"); + eventTypeBuffer.append("处理事件 onFinishWorkitem,"); + eventTypeBuffer.append("回退前事件 onBeforeStepBack,"); + eventTypeBuffer.append("回退事件 onStepBack,"); + eventTypeBuffer.append("取回前事件 onBeforeTakeBack,"); + eventTypeBuffer.append("取回事件 onTakeBack,"); + } + + /**** + * @Content:发起无流程表单接口实现 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2019/12/23 17:03 + * @Param [templateCode 模版编码, sendLoginName 发送人登录帐号 ,xmlData ] + * @return java.lang.Integer + **/ + public static JsonResultEntity saveNoProcess(String templateCode, String interfaceUrl, String sendLoginName, String xmlData) { + String token = getToken(RESTUSERNAME, RESTPASSWORD, sendLoginName); + Map res = new HashMap(); + res.put("loginName", sendLoginName); + res.put("dataXml", xmlData); + res.put("token", token); + String result = HttpRequest.post(sendUrl + interfaceUrl + templateCode).header("token", token).body(JSON.toJSONString(res)).execute().body(); + logger.info("无流程表单执行结果:" + result); + return BaseResult.getFailureMessageEntity("执行成功", result); + } + + public static JsonResultEntity upDateNoProcess(String interfaceUrl, String templateCode, String sendLoginName, String moduleId, String xmlData) { + String token = getToken(RESTUSERNAME, RESTPASSWORD, sendLoginName); + Map res = new HashMap(); + res.put("loginName", sendLoginName); + res.put("dataXml", xmlData); + res.put("token", token); + res.put("moduleId", moduleId); + res.put("templateCode", templateCode); + logger.info("更新无流程表单参数:{}", JSON.toJSONString(res)); + String result = HttpRequest.put(sendUrl + interfaceUrl).header("token", token).body(JSON.toJSONString(res)).execute().body(); + logger.info("更新无流程表单执行结果:" + result); + return BaseResult.getFailureMessageEntity("执行成功", result); + } + + // { +// "moduleId":"5701605966502512923", +// "templateCode":"formmain_0360", +// "loginName":"seeyon", +// "dataXml":"<forms version=\"2.1\"><formExport><summary id=\"7382733425750590212\" name=\"formmain_0360\"/><definitions><column id=\"field0001\" type=\"0\" name=\"供应商编码\" isNullable=\"false\" length=\"100\"/><column id=\"field0002\" type=\"0\" name=\"供应商名称\" isNullable=\"false\" length=\"100\"/><column id=\"field0007\" type=\"0\" name=\"税号\" isNullable=\"false\" length=\"100\"/><column id=\"field0008\" type=\"0\" name=\"地址\" isNullable=\"false\" length=\"100\"/><column id=\"field0009\" type=\"0\" name=\"电话\" isNullable=\"false\" length=\"100\"/><column id=\"field0011\" type=\"0\" name=\"联系人\" isNullable=\"false\" length=\"100\"/></definitions><values><column name=\"供应商编码\"><value><![CDATA[ 12345 ]]></value></column><column name=\"供应商名称\"><value><![CDATA[ 测试客户银行1111 ]]></value></column><column name=\"税号\"><value><![CDATA[ 982698741E96 ]]></value></column><column name=\"地址\"><value><![CDATA[ 杭州 ]]></value></column><column name=\"电话\"><value><![CDATA[ null ]]></value></column><column name=\"联系人\"><value><![CDATA[ null ]]></value></column></values><subForms><subForm><definitions><column id=\"field0003\" type=\"4\" name=\"序号\" isNullable=\"false\" length=\"20\"/><column id=\"field0005\" type=\"0\" name=\"开户行名称\" isNullable=\"false\" length=\"100\"/><column id=\"field0006\" type=\"0\" name=\"银行账号\" isNullable=\"false\" length=\"100\"/><column id=\"field0004\" type=\"0\" name=\"是否默认\" isNullable=\"false\" length=\"100\"/></definitions><values><row><column name=\"序号\"><value><![CDATA[1]]></value><title><![CDATA[1438373948291346275]]></title></column><column name=\"开户行名称\"><value><![CDATA[1234]]></value><title><![CDATA[9218745623489128746]]></title></column><column name=\"银行账号\"><value><![CDATA[111111111]]></value><title><![CDATA[6897123456789123456]]></title></column><column name=\"是否默认\"><value><![CDATA[是]]></value><title><![CDATA[5729461284567891234]]></title></column></row></values></subForm></subForms></formExport></forms>" +// } + private static String getToken(String userName, String password, String loginName) { + JSONObject jsonObject = new JSONObject(); + /** 获取token*/ + + jsonObject.put("userName", userName); + jsonObject.put("password", password); + jsonObject.put("loginName", loginName); + logger.info("请求获取token开始---------------------------------------------"); + logger.info("请求参数" + jsonObject.toJSONString()); + String result = HttpUtil.post(sendUrl + "rest/token", jsonObject.toJSONString()); + logger.info("获取token结果---------------------------------------------" + result); + logger.info("获取token结果---------------------------------------------" + result); + jsonObject = JSONObject.parseObject(result); + if ("".equals(result) || result == null) { + logger.info("获取token失败!"); + throw new RuntimeException("获取token失败!"); + } else { + String token = jsonObject.get("id").toString(); + return token; + } + } + + /*** + * 发起OA表单方法 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-22 9:32 + * @param + * @return com.hzya.frame.web.entity.BaseResult + **/ + @Override + public JsonResultEntity thirdInterfaceSend(JSONObject requestData) { + JSONObject jsonStr = requestData.getJSONObject("jsonStr"); + if (ObjectUtils.isEmpty(jsonStr)) { + throw new BaseSystemException("jsonStr为空!请传递参数"); + } + //类型 flow archives + String type = jsonStr.getString("type"); + if (StringUtils.isEmpty(type)) { + throw new BaseSystemException("请传递类型!type 流程表单:flow 基础档案:archives"); + } + //模版编号 + String templateCode = jsonStr.getString("templateCode"); + if (StringUtils.isEmpty(templateCode)) { + throw new BaseSystemException("请传入模版编号!templateCode不允许为空"); + } + JSONObject data = jsonStr.getJSONObject("data"); + String attributeArrayStr = jsonStr.getString("attribute"); + if (StringUtils.isEmpty(attributeArrayStr)) { + throw new BaseSystemException("attribute不允许为空"); + } + List<JSONObject> attributeArray = JSON.parseArray(attributeArrayStr, JSONObject.class); + JsonResultEntity result = null; + if (ARCHIVESTYPE.equalsIgnoreCase(type)) { + switch (templateCode) { + //预留的 + case "abc123": + break; + } + } + if (FLOWTYPE.equalsIgnoreCase(type)) { + } + return result; + } + + + @Override + public JsonResultEntity thirdInterfaceSeeYonPlugInInterfaceEntrance(JSONObject requestData) { + String jsonStr = requestData.getString("jsonStr"); + JSONObject jsonObject = requestData.getJSONObject("jsonStr"); + OAWorkflowEventDataEntity entity = JSON.parseObject(jsonStr, OAWorkflowEventDataEntity.class); + logger.info("监听OA事件入参:" + jsonObject.toJSONString()); + JSONObject formBeanData = jsonObject.getJSONObject("businessDataStr"); + String eventType = jsonObject.getString("eventType"); + /** 流程ID*/ + String summaryId = entity.getSummaryId(); + /** 节点ID*/ + String affairId = entity.getAffairId(); + String currentActivityId = entity.getCurrentActivityId(); + /****/ + String formViewOperation = entity.getFormViewOperation(); + Object summaryObj = entity.getSummaryObj(); + String deeCfgId = entity.getDeeCfgId(); + String currentNodeLast = entity.getCurrentNodeLast(); + Map<String, Object> businessData = JSON.parseObject(entity.getBusinessDataStr(), Map.class); + Map<String, Object> extData = entity.getExtData(); + /** 表单表的FORM ID,用此字段标记是哪个流程*/ + String formApp = entity.getFormApp(); + + //formApp 最好过滤一下 + + + JsonResultEntity result = null; + try { + //流程事件处理 + result = colEventPost(jsonStr, formApp, eventType); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("传递失败", e.getMessage()); + } + return result; +// try { +// /** 根据事件类型处理相关事件*/ +// switch (eventType) { +// /** 发起前事件*/ +// case "onBeforeStart": +// break; +// /** 发起事件*/ +// case "onStart": +// //流程发起 新增grpu8单据 +// break; +// /** 终止前事件*/ +// case "onBeforeStop": +// break; +// /** 终止事件*/ +// case "onStop": +// //流程终止,更新grpu8单据 +// break; +// /** 撤销前事件*/ +// case "onBeforeCancel": +// break; +// /** 撤销事件*/ +// case "onCancel": +// //流程撤销,更新grpu8单据 +// break; +// /** 结束事件*/ +// case "onProcessFinished": +// break; +// /** 处理前事件*/ +// case "onBeforeFinishWorkitem": +// /** 根据form处理相关业务表单的数据*/ +// switch (formApp) { +// case "abc123": +// break; +// default: +// return BaseResult.getFailureMessageEntity("未匹配到表单!当前formID:" + formApp, ""); +// } +// break; +// /** 处理事件*/ +// case "onFinishWorkitem": +// break; +// /** 回退前事件*/ +// case "onBeforeStepBack": +// break; +// /** 回退事件*/ +// case "onStepBack": +// break; +// /** 取回前事件*/ +// case "onBeforeTakeBack": +// break; +// /** 取回事件*/ +// case "onTakeBack": +// break; +// default: +//// throw new RuntimeException("传入了非法事件类型!请参照:" + eventTypeBuffer.toString()); +// return BaseResult.getFailureMessageEntity("传入了非法事件类型!请参照:" + eventTypeBuffer.toString(), "", ""); +// } +// return BaseResult.getSuccessMessageEntity("传递成功", result); +// }catch (Exception e){ +// return BaseResult.getFailureMessageEntity("传递失败",e.getMessage()); +// } + } + + + @Override + public JsonResultEntity thirdInterfaceSeeYonDefinitionRePush(JSONObject jsonObject) throws Exception { + JSONObject requestData = jsonObject.getJSONObject("jsonStr"); + JSONArray resultEntityArray = new JSONArray(); + if (null == requestData) { + throw new BaseSystemException("参数传递错误需要jsonStr!"); + } + //表单模版ID + String formAppId = requestData.getString("formAppId"); + //事件事件类型 + String eventType = requestData.getString("eventType"); + //数据源编码 + String dataSourceCode = requestData.getString("dataSourceCode"); + //主表ID集合 formMainIds + JSONArray formMainIds = requestData.getJSONArray("formMainIds"); + if (StrUtil.isEmpty(eventType)) { + throw new BaseSystemException("需要传递eventType 参照致远OA事件!"); + } + if (StrUtil.isEmpty(formAppId)) { + throw new BaseSystemException("需要传递formAppId 参照致远OA 表 CAP_FORM_DEFINITION!"); + } + if (StrUtil.isEmpty(dataSourceCode)) { + throw new BaseSystemException("需要传递dataSourceCode 参照中台表 sys_data_source!"); + } + if (null == formMainIds || formMainIds.size() == 0) { + throw new BaseSystemException("需要传递业务主表数据id集合,不允许全量推送!"); + } + + SeeYonInterFaceEntity seeYonInterFaceEntity = new SeeYonInterFaceEntity(); + BeanUtil.copyProperties(requestData, seeYonInterFaceEntity); + List<SeeYonInterFaceEntity> seeYonInterFaceEntityList = seeYonInterFaceDao.queryDefinitionInfo(seeYonInterFaceEntity); + if (null != seeYonInterFaceEntityList && seeYonInterFaceEntityList.size() > 0) { + for (SeeYonInterFaceEntity interFaceEntity : seeYonInterFaceEntityList) { + String field_info = interFaceEntity.getField_info(); + JSONObject infoJson = JSON.parseObject(field_info); + //获取主表信息 + JSONObject formMain = infoJson.getJSONObject("front_formmain"); + //获取明细表信息 + JSONArray formSons = infoJson.getJSONArray("formsons"); + //主表tableName + String formMainTableName = formMain.getString("tableName"); + + /** 设置主表查询条件*/ + interFaceEntity.setTabName(formMainTableName); + interFaceEntity.setDataSourceCode(dataSourceCode); + interFaceEntity.setFormMainIds(formMainIds.toJavaList(String.class)); + + List<Map<String, Object>> forMainList = seeYonInterFaceDao.queryDefinitionData(interFaceEntity); + for (Map<String, Object> forMainRow : forMainList) { + //定义致远OA事件对象 + JSONObject seeYonBean = new JSONObject(); + //定义主表对象 + JSONObject formMainObj = new JSONObject(); + //获取主表ID + String forMainId = String.valueOf(forMainRow.get("ID")); + //组装主表数据 + for (Map.Entry<String, Object> entry : forMainRow.entrySet()) { + formMainObj.put(entry.getKey().toLowerCase(), entry.getValue()); + } + //组装明细表数据 + if (null != formSons && formSons.size() > 0) { + for (Object formSon : formSons) { + JSONObject son = JSON.parseObject(JSON.toJSONString(formSon)); + //明细数据 + String sonTableName = son.getString("tableName"); + SeeYonInterFaceEntity details = new SeeYonInterFaceEntity(); + details.setFormMainId(forMainId); + details.setTabName(sonTableName); + details.setDataSourceCode(dataSourceCode); + JSONArray jsonArray = new JSONArray(); + List<Map<String, Object>> forSonList = seeYonInterFaceDao.queryDefinitionData(details); + for (Map<String, Object> forSons : forSonList) { + //组装明细数据 + JSONObject forSonJson = new JSONObject(); + for (Map.Entry<String, Object> entry : forSons.entrySet()) { + forSonJson.put(entry.getKey().toLowerCase(), entry.getValue()); + } + jsonArray.add(forSonJson); + } + //设置明细表数据 + seeYonBean.put(sonTableName, jsonArray); + } + } + + seeYonBean.put(formMainTableName, formMainObj); + JSONObject rePushRequestData = new JSONObject(); + JSONObject object = new JSONObject(); + object.put("formApp", formAppId); + object.put("eventType", eventType); + object.put("businessDataStr", seeYonBean.toJSONString()); + object.put("affairId", ""); + object.put("summaryId", requestData.getString("summaryId")); + object.put("currentActivityId", ""); + object.put("id", forMainId); + object.put("hzyaExtData", requestData.getJSONObject("hzyaExtData")); + logger.info("Method:thirdInterfaceSeeYonDefinitionRePush 组装seeYonBean DATA: {}", seeYonBean.toJSONString()); + + rePushRequestData.put("jsonStr", object); + + + JsonResultEntity resultEntity = thirdInterfaceSeeYonPlugInInterfaceEntrance(rePushRequestData); + if (null != resultEntity) { + resultEntityArray.add(resultEntity.getAttribute()); + } else { + JSONObject jsonResultEntity = new JSONObject(); + jsonResultEntity.put("msg", "从新推送失败"); + jsonResultEntity.put("id", forMainId); + resultEntityArray.add(jsonResultEntity); + + } + + } + } + } + return BaseResult.getSuccessMessageEntity("从新推送执行结束", resultEntityArray); + } + + /** + * seeyon流程事件监听前置方法,绑定数据源 + * + * @param entity + * @return + * @throws Exception + */ + @Override + public SysExtensionApiEntity colEventPre(SysExtensionApiEntity entity) throws Exception { + try { + SysApplicationEntity applicationEntity = entity.getSendApp(); + SysApplicationDatabaseEntity sysApplicationDatabaseEntity = new SysApplicationDatabaseEntity(); + sysApplicationDatabaseEntity.setSts("Y"); + sysApplicationDatabaseEntity.setDbStatus("1"); + sysApplicationDatabaseEntity.setAppId(applicationEntity.getId()); + sysApplicationDatabaseEntity.setDataSourceCode("master"); + List<SysApplicationDatabaseEntity> sysDataSourceEntities = sysApplicationDatabaseDao.queryDSBase(sysApplicationDatabaseEntity); + if (sysDataSourceEntities != null && sysDataSourceEntities.size() > 0) { + String parm = entity.getBodys(); + JSONObject jsonObject = JSONObject.parseObject(parm); + jsonObject.put("dataSourceCode", sysDataSourceEntities.get(0).getSourceCode()); + entity.setBodys(jsonObject.toJSONString()); + } + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } + + /** + * seeyon流程事件监听 + * + * @param jsonObject + * @return + * @throws Exception + */ + @Override + public JsonResultEntity colEventListener(JSONObject jsonObject) throws Exception { + try { + if (null != jsonObject && StrUtil.isNotEmpty(jsonObject.getString("jsonStr"))) { + SeeYonInterFaceEntity entity = jsonObject.getJSONObject("jsonStr").toJavaObject(SeeYonInterFaceEntity.class); + JSONObject requestData = new JSONObject(); + //表单模版ID + requestData.put("formAppId", entity.getFormAppId()); + //事件事件类型 + requestData.put("eventType", entity.getEventType()); + //数据源编码 + requestData.put("dataSourceCode", entity.getDataSourceCode()); + requestData.put("formMainIds", entity.getFormMainIds()); + requestData.put("summaryId", entity.getSummaryId()); + JSONObject jsonStr = new JSONObject(); + jsonStr.put("jsonStr", requestData); + thirdInterfaceSeeYonDefinitionRePush(jsonStr); + } + } catch (Exception e) { + logger.error("流程事件通知接口出错:{}", e); + return BaseResult.getSuccessMessageEntity("失败", e.getMessage()); + } + return BaseResult.getSuccessMessageEntity("成功"); + } + + /** + * seeyon流程事件监听后置方法,调用三方接口 + * + * @param jsonStr + * @param formAppId + * @param eventType + * @return + * @throws Exception + */ + @Override + public JsonResultEntity colEventPost(String jsonStr, String formAppId, String eventType) throws Exception { + if (StrUtil.isNotEmpty(jsonStr) && StrUtil.isNotEmpty(formAppId) && StrUtil.isNotEmpty(eventType)) { + SysApplicationApiEntity sysApplicationApiEntity = new SysApplicationApiEntity(); + sysApplicationApiEntity.setHeaderIn(formAppId + "_" + eventType); + List<SysApplicationApiEntity> applist = sysApplicationApiService.queryLike(sysApplicationApiEntity); + if (CollectionUtil.isNotEmpty(applist)) { + if (applist.size() > 1) { + throw new BaseSystemException("根据formID:" + formAppId + "查询出多条数据"); + } + if (applist.size() == 0 ) { + throw new BaseSystemException("根据formID:" + formAppId + "eventType:"+eventType+"未查询到API配置"); + } + SysApplicationApiEntity sysApp = applist.get(0); + //数据源配置 + SysApplicationDatabaseEntity sysApiDatabase = new SysApplicationDatabaseEntity(); + sysApiDatabase.setAppId(sysApp.getAppId()); + List<SysApplicationDatabaseEntity> apiDataBaseList = sysApplicationDatabaseDao.queryDSBase(sysApiDatabase); + if (CollectionUtils.isNotEmpty(apiDataBaseList) && apiDataBaseList.size() == 1){ + sysApiDatabase = apiDataBaseList.get(0); + } + JSONArray headerArray = JSONArray.parseArray(sysApp.getHeaderIn()); + Map<String,String> headerMap = new HashMap<>(); + if (null != headerArray && headerArray.size() > 0) { + for (int i = 0; i < headerArray.size(); i++) { + JSONObject querys = headerArray.getJSONObject(i); + //query 只有基本类型,不用循环判断下级 + //判断参数是否有值 + //获取对象下面的层级数据 + String parameterName = querys.getString("parameterName"); + String example = querys.getString("example"); + headerMap.put(parameterName,example); + } + if (headerMap.isEmpty()){ + throw new BaseSystemException("根据formID:" + formAppId + "未获取到head参数"); + } + PluginBaseEntity pluginBaseEntity = PluginUtils.getPluginsById(headerMap.get("plugId")); + if (null == pluginBaseEntity) { + throw new BaseSystemException("根据ID获取插件错误!请传入正确的 pluginId"); + } + //执行业务逻辑代码 + JSONObject reqJson = new JSONObject(); + reqJson.put("jsonStr",jsonStr); + reqJson.put("formAppId",formAppId); + reqJson.put("eventType",eventType); + reqJson.put("headers",JSON.toJSONString(headerMap)); + reqJson.put("sourceCode",sysApiDatabase.getSourceCode()); + JsonResultEntity result = pluginBaseEntity.executeBusiness(reqJson); + return result; + } else { + throw new BaseSystemException("根据formID:" + formAppId + "未获取到head参数"); + } + } + } + return null; + } + + @Override + public JsonResultEntity chengeBody(JSONObject object) throws Exception { + JSONObject jsonstr = object.getJSONObject("jsonStr"); + PluginBaseEntity pluginBaseEntity = null; + JsonResultEntity result; + String pluginId = jsonstr.getString("plugId"); + pluginBaseEntity = PluginUtils.getPluginsById(pluginId); + if (null == pluginBaseEntity) { + throw new BaseSystemException("根据ID获取插件错误!请传入正确的 pluginId"); + } else { + //执行业务逻辑代码 + result = pluginBaseEntity.executeBusiness(object); + } + return result; + } + + @Override + public SysExtensionApiEntity chengeBodySetPlug(SysExtensionApiEntity entity) { + Map<String, String> headers = entity.getHeaders(); + JSONObject jsonObject = JSONObject.parseObject(entity.getBodys()); + jsonObject.put("plugId", headers.get("plugId")); + entity.setBodys(jsonObject.toJSONString()); + return entity; + } + + +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeyonExtServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeyonExtServiceImpl.java new file mode 100644 index 00000000..9849bb40 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/service/impl/SeeyonExtServiceImpl.java @@ -0,0 +1,241 @@ +package com.hzya.frame.seeyon.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.seeyon.entity.OAWorkflowEventDataEntity; +import com.hzya.frame.seeyon.service.ISeeyonExtService; +import com.hzya.frame.seeyon.util.OAU8Util; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.sysnew.messageManageLog.entity.SysMessageManageLogEntity; +import com.hzya.frame.sysnew.messageManageLog.entity.SysMessageManageLogStatusEnum; +import com.hzya.frame.uuid.UUIDLong; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description seeyon扩展类 + * @Author xiangerlin + * @Date 2024/5/14 14:04 + **/ +@Service(value = "seeyonExt") +public class SeeyonExtServiceImpl implements ISeeyonExtService { + + + Logger logger = LogManager.getLogger(getClass()); + + @Autowired + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + + /** + * 英德赛 OA档案传U8 + * 根据不同formApp来调U8不同接口 + * @Since 3.0 + * @param entity + * @return + */ + @Override + public SysExtensionApiEntity ydcSeeyon2u8(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + if (StrUtil.isNotEmpty(bodys)){ + try { + OAWorkflowEventDataEntity dataEntity = JSON.parseObject(bodys,OAWorkflowEventDataEntity.class); + String businessDataStr = dataEntity.getBusinessDataStr();//oa表单参数 + JSONObject businessData = JSON.parseObject(businessDataStr); + String formApp = dataEntity.getFormApp(); + SysExtensionApiEntity param = new SysExtensionApiEntity(); + Map<String, String> headerMap = entity.getHeaders(); + JSONObject hzyaExtData = dataEntity.getHzyaExtData();//扩展参数 + if (null == hzyaExtData){ + hzyaExtData = new JSONObject(); + } + //根据forApp组装不同参数 + switch (formApp){ + case "-8691606453890363968":// + hzyaExtData.put("billCode", "cunhuoabc123456"); + getInventory(businessData,param); + break; + case "6223456019738676230": + getSupplier(businessData,param,hzyaExtData); + break; + case "-9122508232154527168": + getCustomer(businessData,param,hzyaExtData); + break; + default: + param.setBodys("未匹配到表单!当前formID:"+ formApp); + logger.error("未匹配到表单!当前formID:"+formApp); + } + headerMap.put("hzyaExtData", JSON.toJSONString(hzyaExtData)); + return param; + }catch (Exception e){ + e.printStackTrace(); + logger.error("执行英德赛OA存货同步U8接口报错:{}", e); + } + } + return null; + } + + /** + * 回调方法 + * @Since 3.0 + * @param logEntity + */ + @Override + public void ydcSeeyon2u8CallBack(SysMessageManageLogEntity logEntity) { + + + //在这里记录日志 + JSONObject targetData = JSON.parseObject(logEntity.getTargetData());//这个对象里的body是 发送到u8的请求报文 + JSONObject sourceData = JSON.parseObject(logEntity.getSourceData()); + JSONObject sourceHeaders = sourceData.getJSONObject("header");//源数据header + JSONObject sourceBody = sourceData.getJSONObject("body");//源数据body + JSONObject hzyaExtData = sourceHeaders.getJSONObject("hzyaExtData"); + JSONArray formMainIds = new JSONArray(); + formMainIds.add(sourceBody.getString("id")); + JSONObject param = new JSONObject(); + String formApp = sourceBody.getString("formApp"); + param.put("formAppId",formApp); + param.put("formMainIds",formMainIds); + param.put("dataSourceCode","ht_oa_sqlserver"); + param.put("eventType",sourceBody.getString("eventType")); + + //把返回的单号更新到oa档案表 + String sql = ""; + switch (formApp){ + case "-8691606453890363968"://存货 + sql = ""; + break; + case "6223456019738676230"://供应商 + sql = "update formmain_0229 set field0002 = '' where field0001 = "+hzyaExtData.getString("billCode"); + break; + case "-9122508232154527168"://客户 + sql = "update formmain_0230 set field0002 = '' where field0001 = "+hzyaExtData.getString("billCode"); + break; + } + IntegrationTaskLivingDetailsEntity logDetails = new IntegrationTaskLivingDetailsEntity(); + logDetails.setRootAppPk(JSON.toJSONString(param)); + logDetails.setRootAppBill(hzyaExtData.getString("billCode")); + logDetails.setNewTransmitInfo(logEntity.getReturnData()); + logDetails.setNewPushDate(new Date()); + logDetails.setRootAppNewData(targetData.getString("body")); + //logDetails.setNewState(SysMessageManageLogStatusEnum.statusGetValue(logEntity.getStatus())); + logDetails.setPluginId("SeeyonExtPlugin"); + try { + if (StrUtil.isEmpty(hzyaExtData.getString("integration_task_living_details_id"))){ + if (SysMessageManageLogStatusEnum.SUCCESS.getType().equals(logEntity.getStatus())) {//成功 + taskLivingDetailsService.saveLogToSuccess(logDetails); + }else { + taskLivingDetailsService.saveLogToFail(logDetails);//失败 + } + }else { + logDetails.setId(hzyaExtData.getString("integration_task_living_details_id")); + if (SysMessageManageLogStatusEnum.SUCCESS.getType().equals(logEntity.getStatus())) {//成功 + taskLivingDetailsService.saveLogFailToSuccess(logDetails); + }else { + taskLivingDetailsService.updateLogFailToSuccess(logDetails);//失败 + } + } + }catch (Exception e){ + logger.error("保存日志出错:{}",e); + } + } + + //存货参数组装 + private SysExtensionApiEntity getInventory(JSONObject businessData,SysExtensionApiEntity param){ + if (null != businessData){ + JSONObject formmain0227 = businessData.getJSONObject("formmain_0227"); + JSONArray formson0228Arr = businessData.getJSONArray("formson_0228"); + for (int i=0; i< formson0228Arr.size(); i++){ + JSONObject formson0228 = formson0228Arr.getJSONObject(i); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("Token", "Hzya1314_CheckSkip"); + jsonObject.put("billid", formson0228.getString("id")); + jsonObject.put("AccId", formmain0227.getString("field0015")); + + JSONObject oArchives = new JSONObject(); + oArchives.put("cInvCode", formson0228.getString("field0002")); + oArchives.put("cInvCCode", formson0228.getString("field0005")); + oArchives.put("cInvName", formson0228.getString("field0003")); + //todo 这个没值 + oArchives.put("cGroupCode", "01"); + oArchives.put("cComUnitCode", formson0228.getString("field0006")); + + jsonObject.put("oArchives", oArchives); + param.setBodys(JSON.toJSONString(jsonObject)); + } + } + return param; + } + //供应商参数组装 + private SysExtensionApiEntity getSupplier(JSONObject businessData,SysExtensionApiEntity param,JSONObject hzyaExtData){ + if (null != businessData){ + JSONObject formmain0225 = businessData.getJSONObject("formmain_0225"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("billid", formmain0225.getString("id")); + jsonObject.put("AccId", formmain0225.getString("field0020")); + jsonObject.put("Token", OAU8Util.getToken()); + JSONObject oArchives = new JSONObject(); + oArchives.put("cVenCode", formmain0225.getString("field0002")); + oArchives.put("cVenName ", formmain0225.getString("field0003")); + oArchives.put("cVenAbbName", formmain0225.getString("field0004")); + oArchives.put("cVCCode", formmain0225.getString("field0006")); + oArchives.put("cVenExch_name", formmain0225.getString("field0010")); + //oArchives.put("bVenTax", "false"); + //oArchives.put("bLicenceDate", "false"); + //oArchives.put("bBusinessDate", "false"); + //oArchives.put("bProxyDate", "false"); + //oArchives.put("bPassGMP", "false"); + //oArchives.put("bVenCargo", "false"); + //oArchives.put("bProxyForeign", "true"); + //oArchives.put("bVenService", "true"); + //oArchives.put("iVenGSPType", "0"); + //oArchives.put("bVenOverseas", "false"); + //oArchives.put("bVenAccPeriodMng", "false"); + //oArchives.put("bVenHomeBranch", "false"); + oArchives.put("dVenCreateDatetime", DateUtil.now()); + oArchives.put("cVenRegCode", formmain0225.getString("field0009")); + oArchives.put("cVenBank", formmain0225.getString("field0011")); + oArchives.put("cVenAccount", formmain0225.getString("field0012")); + jsonObject.put("oArchives", oArchives); + param.setBodys(JSON.toJSONString(jsonObject)); + hzyaExtData.put("billCode", formmain0225.getString("field0001")); + hzyaExtData.put("formmainId", formmain0225.getString("id")); + } + return param; + } + //客户参数组装 + private SysExtensionApiEntity getCustomer(JSONObject businessData,SysExtensionApiEntity param,JSONObject hzyaExtData){ + if (null != businessData){ + JSONObject formmain0226 = businessData.getJSONObject("formmain_0226"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("billid", formmain0226.getString("id")); + jsonObject.put("AccId", formmain0226.getString("field0025")); + jsonObject.put("Token", "Hzya1314_CheckSkip"); + + JSONObject oArchives = new JSONObject(); + oArchives.put("cCusCode", formmain0226.getString("field0002")); + oArchives.put("cCusName", formmain0226.getString("field0007")); + oArchives.put("cCusAbbName", formmain0226.getString("field0008")); + oArchives.put("cCCCode", formmain0226.getString("field0012")); + oArchives.put("cCusExch_name", formmain0226.getString("field0013")); + // todo 这个字段没值 + oArchives.put("cCusMngTypeCode", "999"); + + jsonObject.put("oArchives", oArchives); + param.setBodys(JSON.toJSONString(jsonObject)); + hzyaExtData.put("billCode",formmain0226.getString("field0001")); + hzyaExtData.put("formmainId",formmain0226.getString("id")); + } + return param; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OABipUtil.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OABipUtil.java new file mode 100644 index 00000000..9484e2fb --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OABipUtil.java @@ -0,0 +1,65 @@ +package com.hzya.frame.seeyon.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +/** + * com.hzya.frame.bip.v3.v2207.util + * + * @author makejava + * @date 2024-05 -30 14:20 + */ + +public class OABipUtil { + /** + * + * @content 发送单据到BIP系统 + * @author laborer + * @date 2024/6/21 0021 10:51 + * + */ + + public static String sendU9cTOBipEsb(String parm, String apiCode,String token){ + String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"; + System.out.println("推送参数"+parm); + String result = HttpRequest.post(baseUrl) + .header("appId", "800023")//头信息,多个头信息多次调用此方法即可 + .header("access_token", token)//头信息,多个头信息多次调用此方法即可 + .header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body(parm)//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + System.out.println("返回参数"+result); + if(StrUtil.isNotEmpty(result)){ + return analytic(result); + } + return null; + } + public static String getBipToken(String userCode, String apiCode){ + String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"; + String result = HttpRequest.post(baseUrl) + .header("appId", "800023")//头信息,多个头信息多次调用此方法即可 + .header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可 + .header("usercode", userCode)//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body("")//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + System.out.println("返回参数"+result); + if(StrUtil.isNotEmpty(result)){ + JSONObject obj = JSON.parseObject( analytic(result)); + JSONObject data = obj.getJSONObject("data"); + return data.getString("access_token"); + } + return null; + } + public static String analytic(String parm){ + JSONObject main = JSON.parseObject(parm); + return main.getString("attribute"); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAPayState.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAPayState.java new file mode 100644 index 00000000..3fdfac15 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAPayState.java @@ -0,0 +1,73 @@ +package com.hzya.frame.seeyon.util; + +/** + * @Author:hecan + * @Description:支付类型(支付状态) + * @params: + * @return: + * @Date: 2023/3/14 15:05 + */ +public enum OAPayState { + a("a","待提交直联"), + b("b","已提交直联"), + c("c","银行已受理"), + d("d","银行未受理"), + e("e","可疑"), + f("f","待人工确认"), + g("g","支付成功"), + h("h","支付失败"), + i("i","部分成功"), + j("j","退票"), + k("k","取消支付"), + n("n","其他"), + p("p","支付中"), + q("q","待支付"), + one("1","待处理"), + two("2","审批中"), + three("3","处理失败"), + four("4","审批完成"), + five("5","审批撤销"), + six("6","审批拒绝"), + seven("7","待发送审批"), + eight("8","集中受理中"), + nine("9","审批退回"), + ten("10","预处理中"), + eleven("11","预处理拒绝"), + twelve("12","资金监控审批中"); + + + //类型 + private String type; + //值 + private String value; + + OAPayState(String type, String value){ + this.type=type; + this.value=value; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String payStateGetValue(String type){ + for (OAPayState payState : OAPayState.values()){ + if(payState.getType()==type||payState.getType().equals(type)){ + return payState.getValue().toString(); + } + } + return null; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OARestUtil.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OARestUtil.java new file mode 100644 index 00000000..06143106 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OARestUtil.java @@ -0,0 +1,248 @@ +package com.hzya.frame.seeyon.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.seeyon.entity.CollAttachmentResDTO; +import com.hzya.frame.sysnew.application.api.entity.SysApplicationApiEntity; +import com.hzya.frame.sysnew.application.api.service.ISysApplicationApiService; +import com.hzya.frame.web.exception.BaseSystemException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +/** + * @Description 致远rest接口工具类 + * @Author xiangerlin + * @Date 2024/6/17 15:49 + **/ +@Component +public class OARestUtil { + @Autowired + private ISysApplicationApiService sysApplicationApiService; + static Logger logger = LoggerFactory.getLogger(OARestUtil.class); + + private OARestUtil() { + } + + + /** + * 附件上传 + * @param file 附件对象 + * @param api_code 接口编码 + * @return + */ + public JSONObject fileUpload(File file,String api_code) { + if (StrUtil.isNotEmpty(api_code)){ + //1、查询附件上传api接口信息 + SysApplicationApiEntity sysApp = getByCode(api_code); + if (null != sysApp){ + String app_url = sysApp.getAppUrl(); + String url = app_url+"/seeyon/rest/attachment?token=@token@"; + String token = getToken(null,"8000240000"); + url = url.replaceAll("@token@",token); + HashMap<String, Object> paramMap = new HashMap<>(); + paramMap.put("file", file); + String result = HttpUtil.post(url, paramMap); + if (StrUtil.isNotBlank(result)) { + logger.info("附件上传结果"+result); + JSONObject jsonObject = JSONObject.parseObject(result); + String atts = jsonObject.get("atts").toString(); + if (StrUtil.isNotEmpty(atts)) { + JSONArray jsonArray = JSONArray.parseArray(atts); + JSONObject res = (JSONObject) jsonArray.get(0); + return res; + } + } + } + }else { + throw new BaseSystemException("api_code不能为空"); + } + return null; + } + + /*** + * 查询协同附件列表 + * @param summaryId col_summary表id + * @param attType 0代表附件,2代表关联文档,“0,2”代表附件和关联文档 + * @param apiCode 接口编码 + * @param token + * @return + */ + public List<CollAttachmentResDTO> getColAttachments(String summaryId,String attType,String apiCode,String token){ + if (StrUtil.isNotEmpty(summaryId) && StrUtil.isNotEmpty(apiCode)){ + SysApplicationApiEntity sysApp = getByCode(apiCode); + String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/"); + if (StrUtil.isEmpty(attType)){ + attType = "0"; + } + String url = "/seeyon/rest/coll/attachments/@SummaryID@/@attType@"; + url = url.replaceAll("@SummaryID@",summaryId).replaceAll("@attType@",attType); + String body = HttpRequest.get(appUrl + url).header("token", token).execute().body(); + if (StrUtil.isNotEmpty(body) && JSONUtil.isTypeJSON(body)){ + List<CollAttachmentResDTO> list = JSON.parseArray(body,CollAttachmentResDTO.class); + return list; + } + } + return null; + } + + /** + * 附件下载 + * @param loginName oa登录名 + * @param apiCode 接口编码 + * @param fileId 附件id + * @param fileName 附件名 + * @return 附件字节数组 + */ + public byte[] downloadFileBytes(String loginName,String apiCode,String fileId,String fileName){ + if (StrUtil.isNotEmpty(apiCode)){ + SysApplicationApiEntity sysApp = getByCode(apiCode); + String token = getToken(loginName,sysApp); + String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/"); + String url = "/seeyon/rest/attachment/file/@ctp_file_ID@?fileName=@文件名@&token=@token@"; + url = url.replaceAll("@ctp_file_ID@",fileId).replaceAll("@文件名@",fileName).replaceAll("@token@",token); + byte[] bytes = HttpUtil.downloadBytes(appUrl + url); + return bytes; + } + return null; + } + + + /** + * 附件下载 + * @param loginName oa登录名 + * @param apiCode 接口编码 + * @param fileId 附件id + * @param fileName 附件名 + * @param token + * @return 附件字节数组 + */ + public byte[] downloadFileBytes(String loginName,String apiCode,String fileId,String fileName,String token){ + if (StrUtil.isNotEmpty(apiCode)){ + SysApplicationApiEntity sysApp = getByCode(apiCode); + if (StrUtil.isEmpty(token)){ + token = getToken(loginName,sysApp); + } + String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/"); + String url = "/seeyon/rest/attachment/file/@ctp_file_ID@?fileName=@文件名@&token=@token@"; + url = url.replaceAll("@ctp_file_ID@",fileId).replaceAll("@文件名@",fileName).replaceAll("@token@",token); + byte[] bytes = HttpUtil.downloadBytes(appUrl + url); + return bytes; + } + return null; + } + /** + * 获取token + * @param login_name + * @param api_code + * @return + */ + public String getToken(String login_name,String api_code){ + if (StrUtil.isNotEmpty(api_code)){ + SysApplicationApiEntity sysApp = getByCode(api_code); + return getToken(login_name,sysApp); + }else { + throw new BaseSystemException("api_code不能为空"); + } + } + + /** + * 获取token + * @param login_name oa登录名 + * @param sysApp 应用信息 + * @return + */ + public String getToken(String login_name,SysApplicationApiEntity sysApp){ + if (null != sysApp){ + HashMap<String, String> hashMap = new HashMap<>(); + String app_url = StrUtil.removeSuffix(sysApp.getAppUrl(), "/"); + String url = app_url+"/seeyon/rest/token"; + String headerIn = sysApp.getHeaderIn(); + JSONArray headers = JSON.parseArray(headerIn); + for (int i = 0; i < headers.size(); i++) { + JSONObject object1 = headers.getJSONObject(i); + String parameterName = object1.getString("parameterName"); + if ("userName".equals(parameterName) || "password".equals(parameterName) || "loginName".equals(parameterName)){ + String example = object1.getString("example"); + hashMap.put(parameterName,example); + } + } + login_name = hashMap.get("loginName"); + if (StrUtil.isEmpty(login_name)){ + hashMap.put("loginName","hzya"); + } + String result = HttpRequest.post(url).body(JSON.toJSONString(hashMap)).execute().body(); + JSONObject jsonObject = JSONObject.parseObject(result); + if (null != jsonObject) { + logger.info("======token:{}======" ,jsonObject.getString("id")); + return jsonObject.getString("id"); + } + } + return null; + } + private SysApplicationApiEntity getByCode(String api_code){ + if (StrUtil.isNotEmpty(api_code)){ + SysApplicationApiEntity sysApp = new SysApplicationApiEntity(); + sysApp.setApiCode(Long.valueOf(api_code)); + sysApp = sysApplicationApiService.queryOne(sysApp); + if (null != sysApp && StrUtil.isNotEmpty(sysApp.getId())){ + sysApp = sysApplicationApiService.get(sysApp.getId()); + if (null != sysApp){ + return sysApp; + } + } + }else { + throw new BaseSystemException("api_code不能为空"); + } + return null; + } + + + + /** + * seeyon/rest/bpm/process/start 发起流程参数组装 + * @param formmainData 主表参数 + * @param formsonDatas 子表参数 + * @param templateCode 模板编号 + * @param formmainTableName 主表表名 + * @param formsonTableName 子表表名 + * @return + */ + public String processParamValueOf(JSONObject formmainData, List<JSONObject> formsonDatas,String templateCode,String formmainTableName,String formsonTableName){ + JSONObject param = new JSONObject(); + JSONObject data = new JSONObject(); + param.put("data",data); + param.put("appName","collaboration"); + JSONObject formData = new JSONObject(); + data.put("data", formData);//表单数据 + data.put("draft", "0"); + data.put("templateCode", templateCode);//模板编号 + formData.put(formmainTableName,formmainData);//主表数据 + formData.put(formsonTableName,formsonDatas);//子表数据 + String jsonStr = param.toString(); + return jsonStr; + } + + public static void main(String[] args) { + JSONObject formmainData = new JSONObject(); + formmainData.put("单据编号","123456"); + JSONObject formsonData = new JSONObject(); + formsonData.put("物料编码", "001"); + LinkedList<JSONObject> formsonDatas = new LinkedList<>(); + formsonDatas.add(formsonData); + OARestUtil oaRestUtil = new OARestUtil(); + String s = oaRestUtil.processParamValueOf(formmainData, formsonDatas, "formmain_0001_dev", "formmain_0001", "formson_0002"); + System.out.println(s); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAU8Util.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAU8Util.java new file mode 100644 index 00000000..76decc6d --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/util/OAU8Util.java @@ -0,0 +1,34 @@ +package com.hzya.frame.seeyon.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.seeyon.entity.OAU8ResponseDTO; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Description + * @Author xiangerlin + * @Date 2024/5/14 15:30 + **/ +public class OAU8Util { + + static Logger logger = LogManager.getLogger(OAU8Util.class); + + //获取token + public static String getToken() { + String url = "http://127.0.0.1:51910/Api/Base/GetToken"; + JSONObject jsonObject = new JSONObject(); + jsonObject.put("secretkey", "L1NhkDrQhtBDzTxFxPI0jxWcBzTBSPvaI5xZusRRi9ofS9d6ngxrj1erwbdjxtUT"); + logger.info("获取U8token参数:{}", jsonObject.toJSONString()); + String token = HttpRequest.post( url).body(jsonObject.toJSONString()).timeout(60000).execute().body(); + logger.info("token返回参数:{}", jsonObject.toJSONString()); + if (StrUtil.isNotEmpty(token)) { + OAU8ResponseDTO u8ResponseDTO = JSONObject.parseObject(token, OAU8ResponseDTO.class); + return u8ResponseDTO.getMessage(); + } + return token; + + } +} diff --git a/fw-oa/src/main/webapp/WEB-INF/web.xml b/fw-oa/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/fw-oa/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" + version="4.0"> +</web-app> \ No newline at end of file diff --git a/pom.xml b/pom.xml index c13df556..b38587f0 100644 --- a/pom.xml +++ b/pom.xml @@ -8,16 +8,17 @@ <module>base-webapp</module> <module>base-core</module> <!-- <module>fw-bip</module>--> -<!-- <module>fw-cbs</module>--> + <module>fw-cbs</module> <!-- <module>fw-dd</module>--> <!-- <module>fw-grpU8</module>--> <!-- <module>fw-nc</module>--> <module>fw-ncc</module> <!-- <module>fw-ningbobank</module>--> -<!-- <module>fw-oa</module>--> + <module>fw-oa</module> <!-- <module>fw-u8</module>--> <!-- <module>fw-u8c</module>--> <!-- <module>fw-u9c</module>--> +<!-- <module>fw-weixin</module>--> </modules> <groupId>com.hzya.frame</groupId> <artifactId>kangarooDataCenterV3</artifactId> @@ -113,6 +114,11 @@ <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpmime</artifactId> + <version>4.5.13</version> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> @@ -405,6 +411,16 @@ <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>2.0.0</version> </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>3.8.0</version> <!-- 这里的版本号可根据实际情况修改 --> + </dependency> + <dependency> + <groupId>com.jcraft</groupId> + <artifactId>jsch</artifactId> + <version>0.1.53</version> + </dependency> </dependencies> <build> @@ -455,15 +471,7 @@ <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> - <resource> - <directory>${basedir}/../base-service/src/main/webapp/WEB-INF/lib</directory> - <targetPath>WEB-INF/lib/</targetPath> - <filtering>false</filtering> - <includes> - <!-- 匹配所有jar包 --> - <include>**/*.jar</include> - </includes> - </resource> + </webResources> </configuration> </plugin>