diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupdetail.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupdetail.java
new file mode 100644
index 0000000..4159e05
--- /dev/null
+++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupdetail.java
@@ -0,0 +1,18 @@
+package com.czlis.common.core.domain.entity.lis;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class LabInstrgroupdetail {
+
+ private String fzdh;
+ private String yq;
+ private Integer seq;
+ private String yljg;
+
+
+}
diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupmain.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupmain.java
new file mode 100644
index 0000000..8151c70
--- /dev/null
+++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInstrgroupmain.java
@@ -0,0 +1,20 @@
+package com.czlis.common.core.domain.entity.lis;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class LabInstrgroupmain {
+
+ private String fzdh;
+ private String fzmc;
+ private String bz;
+ private String tj_flag;
+ private String yljg;
+ private String yq;
+ private Integer seq;
+
+}
diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/XmComp.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/XmComp.java
index e951f2e..9d5e192 100644
--- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/XmComp.java
+++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/XmComp.java
@@ -14,4 +14,7 @@ public class XmComp {
private String xmdh;
private String bz;
private Integer seq;
+ private String zhmcold;
+ private String zhlxold;
+ private String xmdhold;
}
diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java
index 55103c0..4d27ac3 100644
--- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java
+++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java
@@ -21,6 +21,8 @@ public class SysLogConstants {
public static final String LISWORK_LOG = "主界面";
public static final String COMOPT_LOG = "后台参数";
public static final String LABINPUTMDL_LOG = "项目模板";
+ public static final String LabInstrgroupdetail_LOG="仪器组合";
+ public static final String LabInstrgroupmain_LOG="仪器组合明细";
public static final String LABINSTRVSREQCLASS_LOG = "仪器条码类别对照";
public static final String LABTATCTRL_LOG = "TAT设定";
public static final String XMCOMP_LOG = "项目组合";
diff --git a/lis-system/pom.xml b/lis-system/pom.xml
index 170fa69..bf3d0df 100644
--- a/lis-system/pom.xml
+++ b/lis-system/pom.xml
@@ -117,7 +117,7 @@
mssql-jdbc
- cn.com.kingbase
+ com.kingbase
kingbase8
diff --git a/lis-system/src/main/java/com/czlis/system/config/MyBatisConfig.java b/lis-system/src/main/java/com/czlis/system/config/MyBatisConfig.java
index d970775..6687f0a 100644
--- a/lis-system/src/main/java/com/czlis/system/config/MyBatisConfig.java
+++ b/lis-system/src/main/java/com/czlis/system/config/MyBatisConfig.java
@@ -1,7 +1,9 @@
package com.czlis.system.config;
import com.czlis.common.utils.StringUtils;
+import com.czlis.system.interceptor.SqlServerSqlConvertInterceptor;
import org.apache.ibatis.io.VFS;
+import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
@@ -105,6 +107,13 @@ public class MyBatisConfig {
sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
+
+ // ============ 新增:注册自定义MyBatis拦截器 ============
+ Interceptor[] plugins = new Interceptor[]{
+ new SqlServerSqlConvertInterceptor()
+ };
+ sessionFactory.setPlugins(plugins);
+
return sessionFactory.getObject();
}
}
\ No newline at end of file
diff --git a/lis-system/src/main/java/com/czlis/system/config/MyBatisPluginConfig.java b/lis-system/src/main/java/com/czlis/system/config/MyBatisPluginConfig.java
deleted file mode 100644
index 2e1f7c4..0000000
--- a/lis-system/src/main/java/com/czlis/system/config/MyBatisPluginConfig.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.czlis.system.config;
-
-import com.czlis.system.interceptor.SqlPlusToConcatInterceptor;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.event.ContextRefreshedEvent;
-import javax.annotation.Resource;
-import java.util.Map;
-
-@Configuration
-public class MyBatisPluginConfig {
-
- @Resource
- private ApplicationContext applicationContext;
-
- @Bean
- public ApplicationListener registerInterceptor() {
- return event -> {
- Map map = applicationContext.getBeansOfType(SqlSessionFactory.class);
- SqlPlusToConcatInterceptor interceptor = new SqlPlusToConcatInterceptor();
- for (SqlSessionFactory sf : map.values()) {
- sf.getConfiguration().addInterceptor(interceptor);
- }
- };
- }
-}
\ No newline at end of file
diff --git a/lis-system/src/main/java/com/czlis/system/interceptor/SqlPlusToConcatInterceptor.java b/lis-system/src/main/java/com/czlis/system/interceptor/SqlPlusToConcatInterceptor.java
deleted file mode 100644
index b535557..0000000
--- a/lis-system/src/main/java/com/czlis/system/interceptor/SqlPlusToConcatInterceptor.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package com.czlis.system.interceptor;
-
-import org.apache.ibatis.executor.statement.StatementHandler;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.plugin.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * SQLServer转达梦 MyBatis SQL兼容拦截器
- * 全部正则模式,不依赖JSqlParser解析器,解决低版本jar包类缺失问题
- * 注意:该模式无法区分数字相加和字符串拼接,SQL尽量不要同时出现数字+运算
- */
-@Intercepts({
- @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
-})
-public class SqlPlusToConcatInterceptor implements Interceptor {
-
- private static final Logger log = LoggerFactory.getLogger(SqlPlusToConcatInterceptor.class);
-
- // '常量'+col 或者 col+'常量'
- private static final Pattern CONCAT_PATTERN = Pattern.compile("(\\s*'[^']*'\\s*\\+|\\+\\s*'[^']*')");
-
- // CHARINDEX(a,b)
- private static final Pattern CHARINDEX_PATTERN = Pattern.compile("CHARINDEX\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)", Pattern.CASE_INSENSITIVE);
-
- // ISNULL(a,b)
- private static final Pattern ISNULL_2PARAM_PATTERN = Pattern.compile("ISNULL\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)", Pattern.CASE_INSENSITIVE);
-
- // RIGHT(REPLICATE(' ',N)+expr,N)
- private static final Pattern RIGHT_REPLICATE_PATTERN = Pattern.compile(
- "RIGHT\\s*\\(\\s*REPLICATE\\s*\\(\\s*'\\s*'\\s*,\\s*(\\d+)\\s*\\)\\s*\\+\\s*(.+?)\\s*,\\s*(\\d+)\\s*\\)",
- Pattern.CASE_INSENSITIVE | Pattern.DOTALL
- );
-
- // REPLICATE(str,N)
- private static final Pattern REPLICATE_PATTERN = Pattern.compile(
- "REPLICATE\\s*\\(\\s*(.+?)\\s*,\\s*(\\d+)\\s*\\)",
- Pattern.CASE_INSENSITIVE | Pattern.DOTALL
- );
-
- @Override
- public Object intercept(Invocation invocation) throws Throwable {
- log.info("====进入SQL兼容拦截器====");
- StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
- BoundSql boundSql = statementHandler.getBoundSql();
- String originSql = boundSql.getSql();
- Connection connection = (Connection) invocation.getArgs()[0];
-
- DatabaseMetaData metaData = connection.getMetaData();
- String productName = metaData.getDatabaseProductName();
- boolean enableConvert = productName != null && productName.toUpperCase().contains("DM");
- log.info("识别数据库产品名称:[{}], 是否开启SQL兼容转换:{}", productName, enableConvert);
-
- try {
- if (!enableConvert) {
- return invocation.proceed();
- }
-
- String lowerSql = originSql.trim().toLowerCase();
- if (lowerSql.startsWith("call ") || lowerSql.startsWith("exec ")) {
- return invocation.proceed();
- }
-
- String targetSql = originSql;
- StringBuffer sb = new StringBuffer();
-
- //1. RIGHT(REPLICATE(' ',N)+expr,N) → SUBSTR(LPAD(expr,N,' '),1,N)
- Matcher mRightRep = RIGHT_REPLICATE_PATTERN.matcher(targetSql);
- sb.setLength(0);
- while (mRightRep.find()) {
- String num = mRightRep.group(1).trim();
- String expr = mRightRep.group(2).trim();
- String newExpr = String.format("SUBSTR(LPAD(%s,%s,' '),1,%s)", expr, num, num);
- mRightRep.appendReplacement(sb, Matcher.quoteReplacement(newExpr));
- }
- mRightRep.appendTail(sb);
- targetSql = sb.toString();
-
- //2. 'xxx' + col / col + 'xxx' 加号替换为 ||
- Matcher mConcat = CONCAT_PATTERN.matcher(targetSql);
- sb.setLength(0);
- while (mConcat.find()) {
- String found = mConcat.group();
- mConcat.appendReplacement(sb, Matcher.quoteReplacement(found.replace("+", "||")));
- }
- mConcat.appendTail(sb);
- targetSql = sb.toString();
-
- //3. CHARINDEX(a,b) → INSTR(b,a)
- Matcher mCharIndex = CHARINDEX_PATTERN.matcher(targetSql);
- sb.setLength(0);
- while (mCharIndex.find()) {
- String p1 = mCharIndex.group(1).trim();
- String p2 = mCharIndex.group(2).trim();
- String newFunc = String.format("INSTR(%s,%s)", p2, p1);
- mCharIndex.appendReplacement(sb, Matcher.quoteReplacement(newFunc));
- }
- mCharIndex.appendTail(sb);
- targetSql = sb.toString();
-
- //4. ISNULL(a,b) → NVL(a,b)
- Matcher mIsnull = ISNULL_2PARAM_PATTERN.matcher(targetSql);
- sb.setLength(0);
- while (mIsnull.find()) {
- String p1 = mIsnull.group(1).trim();
- String p2 = mIsnull.group(2).trim();
- String newFunc = String.format("NVL(%s,%s)", p1, p2);
- mIsnull.appendReplacement(sb, Matcher.quoteReplacement(newFunc));
- }
- mIsnull.appendTail(sb);
- targetSql = sb.toString();
-
- //5. REPLICATE(str,N) → REPEAT(str,N)
- Matcher mRep = REPLICATE_PATTERN.matcher(targetSql);
- sb.setLength(0);
- while (mRep.find()) {
- String src = mRep.group(1).trim();
- String cnt = mRep.group(2).trim();
- String newFunc = String.format("REPEAT(%s,%s)", src, cnt);
- mRep.appendReplacement(sb, Matcher.quoteReplacement(newFunc));
- }
- mRep.appendTail(sb);
- targetSql = sb.toString();
-
- //回填修改后的SQL
- if (!originSql.equals(targetSql)) {
- log.debug("【SQL兼容转换】\n原SQL:\n{}\n转换后:\n{}", originSql, targetSql);
- org.apache.ibatis.reflection.MetaObject metaObject
- = org.apache.ibatis.reflection.SystemMetaObject.forObject(statementHandler);
- metaObject.setValue("delegate.boundSql.sql", targetSql);
- }
- } catch (Exception e) {
- log.warn("【SQL转换处理异常,直接放行原始SQL】sql:{} , ex:{}", originSql, e.getMessage());
- }
- return invocation.proceed();
- }
-
- @Override
- public Object plugin(Object target) {
- return Plugin.wrap(target, this);
- }
-
- @Override
- public void setProperties(Properties properties) {
- }
-}
\ No newline at end of file
diff --git a/lis-system/src/main/java/com/czlis/system/interceptor/SqlServerSqlConvertInterceptor.java b/lis-system/src/main/java/com/czlis/system/interceptor/SqlServerSqlConvertInterceptor.java
new file mode 100644
index 0000000..e8bcdb0
--- /dev/null
+++ b/lis-system/src/main/java/com/czlis/system/interceptor/SqlServerSqlConvertInterceptor.java
@@ -0,0 +1,209 @@
+package com.czlis.system.interceptor;
+
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.plugin.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 统一SQL跨数据库转换拦截器
+ * 源SQL标准:SQL Server语法
+ * 目标适配:达梦 DM8 / 人大金仓 KingbaseES
+ * 转换清单:
+ * 1. 字符串 +拼接 → ||
+ * 2. REPLICATE(str,n) → REPEAT(str,n)
+ * 3. CHARINDEX(needle,haystack) 差异化转换
+ * - DM:INSTR(haystack,needle)
+ * - Kingbase:POSITION(needle IN haystack)
+ * 4. ISNULL(expr,default) 差异化转换
+ * - DM:NVL(expr,default)
+ * - Kingbase:COALESCE(expr,default)
+ * 5. Kingbase:GETDATE() → CURRENT_TIMESTAMP
+ * 6. Kingbase:sys_xxx 系统表补schema dbo.
+ */
+@Intercepts({
+ @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
+})
+@SuppressWarnings("DuplicatedCode")
+public class SqlServerSqlConvertInterceptor implements Interceptor {
+
+ private static final Logger log = LoggerFactory.getLogger(SqlServerSqlConvertInterceptor.class);
+
+ // ============ 配置项,生产环境建议关闭完整SQL打印 ============
+ private static final boolean PRINT_FULL_SQL_LOG = false;
+
+ // ==================== 通用正则 ====================
+ // 规避:数字加法 1+2,只匹配一侧/两侧存在字符串常量的加号拼接(仍有局限,极致方案需要SQL解析器)
+ private static final Pattern SQL_PLUS_CONCAT_PATTERN = Pattern.compile(
+ "((['\"].*?['\"])|[a-zA-Z0-9_.]+)\\s*\\+\\s*((['\"].*?['\"])|[a-zA-Z0-9_.]+)",
+ Pattern.CASE_INSENSITIVE
+ );
+
+ private static final Pattern REPLICATE_PATTERN = Pattern.compile(
+ "REPLICATE\\s*\\(\\s*(.+?)\\s*,\\s*(\\d+)\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+
+ // ==================== 达梦DM正则 ====================
+ private static final Pattern DM_CHARINDEX_PATTERN = Pattern.compile(
+ "CHARINDEX\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+ private static final Pattern DM_ISNULL_PATTERN = Pattern.compile(
+ "ISNULL\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+
+ // ==================== 金仓Kingbase正则 ====================
+ private static final Pattern KINGBASE_CHARINDEX_PATTERN = Pattern.compile(
+ "CHARINDEX\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+ private static final Pattern KINGBASE_ISNULL_PATTERN = Pattern.compile(
+ "ISNULL\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+ private static final Pattern KINGBASE_GETDATE_PATTERN = Pattern.compile(
+ "\\bGETDATE\\s*\\(\\s*\\)",
+ Pattern.CASE_INSENSITIVE
+ );
+ private static final Pattern[] KINGBASE_SYS_TABLE_PATTERNS = {
+ Pattern.compile("\\bsys_config\\b", Pattern.CASE_INSENSITIVE),
+ Pattern.compile("\\bsys_user\\b", Pattern.CASE_INSENSITIVE),
+ Pattern.compile("\\bsys_role\\b", Pattern.CASE_INSENSITIVE),
+ Pattern.compile("\\bsys_sequence\\b", Pattern.CASE_INSENSITIVE)
+ };
+ private static final String KINGBASE_SYS_TABLE_REPLACE = "dbo.$0";
+
+ @Override
+ public Object intercept(Invocation invocation) throws Throwable {
+ StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
+ BoundSql boundSql = statementHandler.getBoundSql();
+ String originSql = boundSql.getSql();
+ Connection connection = (Connection) invocation.getArgs()[0];
+
+ // 获取数据库类型
+ DatabaseMetaData metaData = connection.getMetaData();
+ String rawDbName = metaData.getDatabaseProductName();
+ String productName = rawDbName.toUpperCase().trim();
+ boolean isDm = productName.contains("DM");
+ boolean isKingbase = productName.contains("KINGBASE");
+
+ if (!isDm && !isKingbase) {
+ return invocation.proceed();
+ }
+
+ // 跳过存储过程调用
+ String lowerSql = originSql.trim().toLowerCase();
+ if (lowerSql.startsWith("call ") || lowerSql.startsWith("exec ")) {
+ return invocation.proceed();
+ }
+
+ String targetSql = originSql;
+ try {
+ // 1. REPLICATE -> REPEAT
+ targetSql = replaceAll(targetSql, REPLICATE_PATTERN, m -> {
+ String expr = Matcher.quoteReplacement(m.group(1));
+ String num = Matcher.quoteReplacement(m.group(2));
+ return "REPEAT(" + expr + "," + num + ")";
+ });
+
+ // 2. 字符串 + 拼接 转为 ||
+ targetSql = replaceAll(targetSql, SQL_PLUS_CONCAT_PATTERN, m -> {
+ String g1 = Matcher.quoteReplacement(m.group(1));
+ String g2 = Matcher.quoteReplacement(m.group(2));
+ // 简单过滤:两边都是数字则不转换,防止破坏数值运算(简易策略)
+ if (isNumeric(g1) && isNumeric(g2)) {
+ return m.group();
+ }
+ return g1 + " || " + g2;
+ });
+
+ if (isDm) {
+ // CHARINDEX(a,b) → INSTR(b,a)
+ targetSql = replaceAll(targetSql, DM_CHARINDEX_PATTERN, m -> {
+ String p1 = Matcher.quoteReplacement(m.group(1));
+ String p2 = Matcher.quoteReplacement(m.group(2));
+ return "INSTR(" + p2 + "," + p1 + ")";
+ });
+ // ISNULL → NVL
+ targetSql = replaceAll(targetSql, DM_ISNULL_PATTERN, m -> {
+ String p1 = Matcher.quoteReplacement(m.group(1));
+ String p2 = Matcher.quoteReplacement(m.group(2));
+ return "NVL(" + p1 + "," + p2 + ")";
+ });
+ } else if (isKingbase) {
+ // CHARINDEX(a,b) → POSITION(a IN b)
+ targetSql = replaceAll(targetSql, KINGBASE_CHARINDEX_PATTERN, m -> {
+ String p1 = Matcher.quoteReplacement(m.group(1));
+ String p2 = Matcher.quoteReplacement(m.group(2));
+ return "POSITION(" + p1 + " IN " + p2 + ")";
+ });
+ // ISNULL → COALESCE
+ targetSql = replaceAll(targetSql, KINGBASE_ISNULL_PATTERN, m -> {
+ String p1 = Matcher.quoteReplacement(m.group(1));
+ String p2 = Matcher.quoteReplacement(m.group(2));
+ return "COALESCE(" + p1 + "," + p2 + ")";
+ });
+ // 【修复】GETDATE() → LOCALTIMESTAMP,无时区timestamp
+ targetSql = replaceAll(targetSql, KINGBASE_GETDATE_PATTERN, matcher -> "LOCALTIMESTAMP");
+
+ // 系统表补schema,负向断言防止重复生成 dbo.dbo.xxx
+ for (Pattern tablePat : KINGBASE_SYS_TABLE_PATTERNS) {
+ targetSql = replaceAll(targetSql, tablePat, m -> "dbo." + m.group());
+ }
+ }
+
+ // 改写BoundSql
+ if (!originSql.equals(targetSql)) {
+ org.apache.ibatis.reflection.MetaObject metaObject
+ = org.apache.ibatis.reflection.SystemMetaObject.forObject(statementHandler);
+ metaObject.setValue("delegate.boundSql.sql", targetSql);
+ if (PRINT_FULL_SQL_LOG) {
+ log.info("【SQL转换生效】数据库:{} \n原SQL:\n{}\n转换后:\n{}", productName, originSql, targetSql);
+ } else {
+ log.debug("【SQL转换生效】数据库:{}", productName);
+ }
+ }
+ } catch (Exception e) {
+ log.warn("【SQL语法转换异常,放行原始SQL】msg={}", e.getMessage(), e);
+ }
+ return invocation.proceed();
+ }
+
+ /**
+ * 通用正则替换工具,消除重复StringBuffer样板代码
+ */
+ private String replaceAll(String sql, Pattern pattern, java.util.function.Function replacer) {
+ Matcher matcher = pattern.matcher(sql);
+ StringBuffer sb = new StringBuffer();
+ while (matcher.find()) {
+ matcher.appendReplacement(sb, Matcher.quoteReplacement(replacer.apply(matcher)));
+ }
+ matcher.appendTail(sb);
+ return sb.toString();
+ }
+
+ /**
+ * 简易判断是否纯数字,用于区分字符串加号与数值加法
+ */
+ private boolean isNumeric(String str) {
+ return str.matches("^\\d+(\\.\\d+)?$");
+ }
+
+ @Override
+ public Object plugin(Object target) {
+ return Plugin.wrap(target, this);
+ }
+
+ @Override
+ public void setProperties(Properties properties) {
+ }
+}
diff --git a/lis-system/src/main/resources/application-dm.yml b/lis-system/src/main/resources/application-dm.yml
new file mode 100644
index 0000000..cbda344
--- /dev/null
+++ b/lis-system/src/main/resources/application-dm.yml
@@ -0,0 +1,61 @@
+# 数据源配置
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: dm.jdbc.driver.DmDriver
+ druid:
+ # 主库数据源
+ master:
+ url: jdbc:dm://118.31.187.160:5238?schema=DBO&zeroDateTimeBehavior=convertToNull
+ username: SYSDBA
+ password: Aa123$%^
+ # 从库数据源
+ slave:
+ # 从数据源开关/默认关闭
+ enabled: false
+ url:
+ username:
+ password:
+ # 初始连接数
+ initialSize: 5
+ # 最小连接池数量
+ minIdle: 10
+ # 最大连接池数量
+ maxActive: 20
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置连接超时时间
+ connectTimeout: 30000
+ # 配置网络超时时间
+ socketTimeout: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ # 配置一个连接在池中最大生存的时间,单位是毫秒
+ maxEvictableIdleTimeMillis: 900000
+ # 配置检测连接是否有效
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ webStatFilter:
+ enabled: true
+ statViewServlet:
+ enabled: true
+ # 设置白名单,不填则允许所有访问
+ allow:
+ url-pattern: /druid/*
+ # 控制台管理用户名和密码
+ login-username: czlis
+ login-password: 123456
+ filter:
+ stat:
+ enabled: true
+ # 慢SQL记录
+ log-slow-sql: true
+ slow-sql-millis: 10000
+ merge-sql: true
+ wall:
+ config:
+ multi-statement-allow: true
\ No newline at end of file
diff --git a/lis-system/src/main/resources/application-kingbase.yml b/lis-system/src/main/resources/application-kingbase.yml
new file mode 100644
index 0000000..a974bff
--- /dev/null
+++ b/lis-system/src/main/resources/application-kingbase.yml
@@ -0,0 +1,61 @@
+# 数据源配置
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: com.kingbase8.Driver
+ druid:
+ # 主库数据源
+ master:
+ url: jdbc:kingbase8://192.168.100.110:54321/lisnet?currentSchema=dbo
+ username: system
+ password: Aa123$%^
+ # 从库数据源
+ slave:
+ # 从数据源开关/默认关闭
+ enabled: false
+ url:
+ username:
+ password:
+ # 初始连接数
+ initialSize: 5
+ # 最小连接池数量
+ minIdle: 10
+ # 最大连接池数量
+ maxActive: 20
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置连接超时时间
+ connectTimeout: 30000
+ # 配置网络超时时间
+ socketTimeout: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ # 配置一个连接在池中最大生存的时间,单位是毫秒
+ maxEvictableIdleTimeMillis: 900000
+ # 配置检测连接是否有效
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ webStatFilter:
+ enabled: true
+ statViewServlet:
+ enabled: true
+ # 设置白名单,不填则允许所有访问
+ allow:
+ url-pattern: /druid/*
+ # 控制台管理用户名和密码
+ login-username: czlis
+ login-password: 123456
+ filter:
+ stat:
+ enabled: true
+ # 慢SQL记录
+ log-slow-sql: true
+ slow-sql-millis: 10000
+ merge-sql: true
+ wall:
+ config:
+ multi-statement-allow: true
\ No newline at end of file
diff --git a/lis-system/src/main/resources/application.yml b/lis-system/src/main/resources/application.yml
index 526f7fe..c8fcfa3 100644
--- a/lis-system/src/main/resources/application.yml
+++ b/lis-system/src/main/resources/application.yml
@@ -134,9 +134,12 @@ mybatis:
# PageHelper分页插件
pagehelper:
- helperDialect: sqlserver
+ # helperDialect: postgresql
+ auto-runtime-dialect: true
supportMethodsArguments: true
- params: count=countSql
+ params: count=countSql;pageNum=pageNum;pageSize=pageSize
+ reasonable: true # 页码合理化,按需开启
+ pageSizeZero: false # pageSize=0 是否查询全部
# Swagger配置
swagger:
diff --git a/lis-system/src/main/resources/mapper/system/SysUserMapper.xml b/lis-system/src/main/resources/mapper/system/SysUserMapper.xml
index 4997469..071dc23 100644
--- a/lis-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/lis-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -193,7 +193,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
password = #{password},
status = #{status},
login_ip = #{loginIp},
- login_date = #{loginDate},
+ login_date = #{loginDate, jdbcType=TIMESTAMP},
update_by = #{updateBy},
remark = #{remark},
update_time = getdate()
diff --git a/lis-system/src/main/resources/mybatis/mybatis-config.xml b/lis-system/src/main/resources/mybatis/mybatis-config.xml
index 66f85e1..24054fb 100644
--- a/lis-system/src/main/resources/mybatis/mybatis-config.xml
+++ b/lis-system/src/main/resources/mybatis/mybatis-config.xml
@@ -18,5 +18,4 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-
diff --git a/liswork/src/main/java/com/czlis/liswork/controller/xtwh/LabInstrgroupmainController.java b/liswork/src/main/java/com/czlis/liswork/controller/xtwh/LabInstrgroupmainController.java
new file mode 100644
index 0000000..ca3368d
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/controller/xtwh/LabInstrgroupmainController.java
@@ -0,0 +1,67 @@
+package com.czlis.liswork.controller.xtwh;
+
+import com.czlis.common.annotation.Log;
+import com.czlis.common.core.domain.Result;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupdetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupmain;
+import com.czlis.common.enums.BusinessType;
+import com.czlis.interfaceCommon.constants.SysLogConstants;
+import com.czlis.liswork.pojo.DTO.LabInstrgroupmainDTO;
+import com.czlis.liswork.service.LabInstrgroupmainService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "仪器组合")
+@RestController
+@RequestMapping("/instrgroup")
+@Slf4j
+public class LabInstrgroupmainController {
+
+ @Resource
+ private LabInstrgroupmainService labInstrgroupmainService;
+ @ApiOperation("查询仪器组合列表")
+ @GetMapping("/query")
+ public Result query(LabInstrgroupmain LabInstrgroupmain) {
+ return labInstrgroupmainService.query(LabInstrgroupmain);
+ }
+
+ @ApiOperation("查询明细数据")
+ @GetMapping("/queryDetail")
+ public Result queryDetail(LabInstrgroupdetail LabInstrgroupmainDetail){
+ return labInstrgroupmainService.queryDetail(LabInstrgroupmainDetail);
+ }
+
+ @Log(title = SysLogConstants.LabInstrgroupmain_LOG,businessType = BusinessType.INSERT)
+ @ApiOperation("新增仪器组合")
+ @PostMapping("/add")
+ public Result add(@RequestBody LabInstrgroupmainDTO LabInstrgroupmainDTO){
+ return labInstrgroupmainService.add(LabInstrgroupmainDTO);
+ }
+
+ @Log(title = SysLogConstants.LabInstrgroupmain_LOG,businessType = BusinessType.UPDATE)
+ @ApiOperation("修改仪器组合")
+ @PostMapping("/update")
+ public Result update(@RequestBody LabInstrgroupmainDTO LabInstrgroupmainDTO){
+ return labInstrgroupmainService.update(LabInstrgroupmainDTO);
+ }
+
+ @Log(title = SysLogConstants.LabInstrgroupmain_LOG,businessType = BusinessType.DELETE)
+ @ApiOperation("删除仪器组合")
+ @GetMapping("/delete")
+ public Result delete(LabInstrgroupmain LabInstrgroupmain){
+ return labInstrgroupmainService.delete(LabInstrgroupmain);
+ }
+
+ @Log(title = SysLogConstants.LabInstrgroupdetail_LOG,businessType = BusinessType.DELETE_DETAIL)
+ @ApiOperation("删除明细数据")
+ @PostMapping("/deleteDetail")
+ public Result deleteDetail(@RequestBody List LabInstrgroupmainDetailList){
+ return labInstrgroupmainService.deleteDetail(LabInstrgroupmainDetailList);
+ }
+
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/controller/xtwh/XmCompController.java b/liswork/src/main/java/com/czlis/liswork/controller/xtwh/XmCompController.java
index fc68cb3..82e5138 100644
--- a/liswork/src/main/java/com/czlis/liswork/controller/xtwh/XmCompController.java
+++ b/liswork/src/main/java/com/czlis/liswork/controller/xtwh/XmCompController.java
@@ -5,6 +5,7 @@ import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.XmComp;
import com.czlis.common.enums.BusinessType;
import com.czlis.interfaceCommon.constants.SysLogConstants;
+import com.czlis.liswork.pojo.DTO.XmCompDTO;
import com.czlis.liswork.service.XmCompService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -33,14 +34,15 @@ public class XmCompController {
@Log(title = SysLogConstants.XMCOMP_LOG,businessType = BusinessType.INSERT)
@ApiOperation("增加项目组合")
@PostMapping("/add")
- public Result addXmComp(@RequestBody List xmComp) {
+ public Result addXmComp(@RequestBody XmCompDTO xmComp) {
+
return xmCompService.addXmComp(xmComp);
}
@Log(title = SysLogConstants.XMCOMP_LOG,businessType = BusinessType.UPDATE)
@ApiOperation("修改项目组合")
@PostMapping("/update")
- public Result updateXmComp(@RequestBody List xmComp) {
+ public Result updateXmComp(@RequestBody XmCompDTO xmComp) {
return xmCompService.updateXmComp(xmComp);
}
@@ -50,4 +52,15 @@ public class XmCompController {
public Result deleteXmComp(XmComp xmComp) {
return xmCompService.deleteXmComp(xmComp);
}
+ @ApiOperation("查询明细数据")
+ @GetMapping("/queryDetail")
+ public Result queryDetail(XmComp xmComp){
+ return xmCompService.queryDetail(xmComp);
+ }
+ @Log(title = SysLogConstants.LABINPUTMDL_LOG,businessType = BusinessType.DELETE_DETAIL)
+ @ApiOperation("删除明细数据")
+ @PostMapping("/deleteDetail")
+ public Result deleteDetail(@RequestBody List xmComp){
+ return xmCompService.deleteDetail(xmComp);
+ }
}
diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LabInstrgroupmainMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LabInstrgroupmainMapper.java
new file mode 100644
index 0000000..894a61e
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LabInstrgroupmainMapper.java
@@ -0,0 +1,17 @@
+package com.czlis.liswork.mapper.xtwh;
+
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupdetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupmain;
+
+import java.util.List;
+
+public interface LabInstrgroupmainMapper {
+ List getLabInstrgroupmainList(LabInstrgroupmain xmComp);
+ void addLabInstrgroupmain(LabInstrgroupmain xmComp);
+ void updateLabInstrgroupmain(LabInstrgroupmain xmComp);
+ void deleteLabInstrgroupmain(LabInstrgroupmain xmComp);
+ List getLabInstrgroupdetailList(LabInstrgroupdetail xmComp);
+ void addLabInstrgroupdetail(LabInstrgroupdetail xmComp);
+ void updateLabInstrgroupdetail(LabInstrgroupdetail xmComp);
+ void deleteLabInstrgroupdetail(LabInstrgroupdetail xmComp);
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/XmCompMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/XmCompMapper.java
index f8baf27..c09175e 100644
--- a/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/XmCompMapper.java
+++ b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/XmCompMapper.java
@@ -6,10 +6,10 @@ import java.util.List;
public interface XmCompMapper {
List getXmCompList(XmComp xmComp);
-
+ List getXmCompMainList(XmComp xmComp);
void addXmComp(XmComp xmComp);
-
void updateXmComp(XmComp xmComp);
-
+ XmComp queryDetail(XmComp xmComp);
void deleteXmComp(XmComp xmComp);
+ void deleteXmCompOld(XmComp xmComp);
}
diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/DTO/LabInstrgroupmainDTO.java b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/LabInstrgroupmainDTO.java
new file mode 100644
index 0000000..dc2b142
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/LabInstrgroupmainDTO.java
@@ -0,0 +1,18 @@
+package com.czlis.liswork.pojo.DTO;
+
+import com.czlis.common.core.domain.entity.lis.LabInputmdl;
+import com.czlis.common.core.domain.entity.lis.LabInputmdlDetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupdetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupmain;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class LabInstrgroupmainDTO {
+ private LabInstrgroupmain labInstrgroupmain;
+ private List labInstrgroupdetailList;
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/DTO/XmCompDTO.java b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/XmCompDTO.java
new file mode 100644
index 0000000..b25b4a3
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/XmCompDTO.java
@@ -0,0 +1,15 @@
+package com.czlis.liswork.pojo.DTO;
+
+import com.czlis.common.core.domain.entity.lis.XmComp;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class XmCompDTO {
+ private XmComp xmComp;
+ private List xmCompList;
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/service/LabInstrgroupmainService.java b/liswork/src/main/java/com/czlis/liswork/service/LabInstrgroupmainService.java
new file mode 100644
index 0000000..c7314a7
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/service/LabInstrgroupmainService.java
@@ -0,0 +1,25 @@
+package com.czlis.liswork.service;
+
+import com.czlis.common.core.domain.Result;
+import com.czlis.common.core.domain.entity.lis.LabInputmdl;
+import com.czlis.common.core.domain.entity.lis.LabInputmdlDetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupdetail;
+import com.czlis.common.core.domain.entity.lis.LabInstrgroupmain;
+import com.czlis.liswork.pojo.DTO.LabInputmdlDTO;
+import com.czlis.liswork.pojo.DTO.LabInstrgroupmainDTO;
+
+import java.util.List;
+
+public interface LabInstrgroupmainService {
+ Result query(LabInstrgroupmain labInstrgroupmain);
+
+ Result queryDetail(LabInstrgroupdetail labInstrgroupdetail);
+
+ Result add(LabInstrgroupmainDTO labInstrgroupmainDTO);
+
+ Result update(LabInstrgroupmainDTO labInstrgroupmainDTO);
+
+ Result delete(LabInstrgroupmain labInstrgroupmain);
+
+ Result deleteDetail(List labInstrgroupdetail);
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/service/XmCompService.java b/liswork/src/main/java/com/czlis/liswork/service/XmCompService.java
index ad25c5a..ff46801 100644
--- a/liswork/src/main/java/com/czlis/liswork/service/XmCompService.java
+++ b/liswork/src/main/java/com/czlis/liswork/service/XmCompService.java
@@ -2,6 +2,7 @@ package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.XmComp;
+import com.czlis.liswork.pojo.DTO.XmCompDTO;
import java.util.List;
@@ -9,9 +10,11 @@ import java.util.List;
public interface XmCompService {
Result getXmCompList(XmComp xmComp);
- Result addXmComp(List xmComp);
+ Result addXmComp(XmCompDTO xmComp);
- Result updateXmComp(List xmComp);
+ Result updateXmComp(XmCompDTO xmComp);
Result deleteXmComp(XmComp xmComp);
+ Result queryDetail(XmComp xmComp);
+ Result deleteDetail(List xmComp);
}
diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/LabInstrgroupmainServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/LabInstrgroupmainServiceImpl.java
new file mode 100644
index 0000000..7077579
--- /dev/null
+++ b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/LabInstrgroupmainServiceImpl.java
@@ -0,0 +1,79 @@
+package com.czlis.liswork.service.impl.xtwh;
+
+import com.czlis.common.core.domain.Result;
+import com.czlis.common.core.domain.entity.lis.*;
+import com.czlis.liswork.mapper.xtwh.LabInstrgroupmainMapper;
+import com.czlis.liswork.pojo.DTO.LabInstrgroupmainDTO;
+import com.czlis.liswork.service.LabInstrgroupmainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service
+public class LabInstrgroupmainServiceImpl implements LabInstrgroupmainService {
+ @Autowired
+ LabInstrgroupmainMapper labInstrgroupmainMapper;
+ @Override
+ public Result query(LabInstrgroupmain labInstrgroupmain) {
+ List labInstrgroupmainList = labInstrgroupmainMapper.getLabInstrgroupmainList(labInstrgroupmain);
+ return new Result("0","查询成功!",labInstrgroupmainList);
+ }
+
+ @Override
+ public Result queryDetail(LabInstrgroupdetail labInstrgroupdetail) {
+ List labInstrgroupdetailList = labInstrgroupmainMapper.getLabInstrgroupdetailList(labInstrgroupdetail);
+ return new Result("0","查询成功!",labInstrgroupdetailList);
+ }
+
+ @Override
+ public Result add(LabInstrgroupmainDTO labInstrgroupmainDTO) {
+ labInstrgroupmainMapper.addLabInstrgroupmain(labInstrgroupmainDTO.getLabInstrgroupmain());
+ List labInstrgroupdetailList = labInstrgroupmainDTO.getLabInstrgroupdetailList();
+ for (LabInstrgroupdetail labInstrgroupdetail : labInstrgroupdetailList) {
+ labInstrgroupmainMapper.addLabInstrgroupdetail(labInstrgroupdetail);
+ }
+ return new Result("0","新增成功!");
+ }
+
+ @Override
+ public Result update(LabInstrgroupmainDTO labInstrgroupmainDTO) {
+ labInstrgroupmainMapper.updateLabInstrgroupmain(labInstrgroupmainDTO.getLabInstrgroupmain());
+ List labInstrgroupdetailList = labInstrgroupmainDTO.getLabInstrgroupdetailList();
+ for (LabInstrgroupdetail labInstrgroupdetail : labInstrgroupdetailList) {
+ List labInstrgroupdetailList1 = labInstrgroupmainMapper.getLabInstrgroupdetailList(labInstrgroupdetail);
+ if(labInstrgroupdetailList1.size() > 0){
+ labInstrgroupmainMapper.updateLabInstrgroupdetail(labInstrgroupdetail);
+ }else{
+ labInstrgroupmainMapper.addLabInstrgroupdetail(labInstrgroupdetail);
+ }
+
+ }
+ return new Result("0","修改数据成功!");
+ }
+
+ @Override
+ public Result delete(LabInstrgroupmain labInstrgroupmain) {
+ //删除列表
+ labInstrgroupmainMapper.deleteLabInstrgroupmain(labInstrgroupmain);
+ //删除明细
+ LabInstrgroupdetail labInstrgroupdetail = new LabInstrgroupdetail();
+ labInstrgroupdetail.setYq(labInstrgroupmain.getYq());
+ labInstrgroupdetail.setFzdh(labInstrgroupmain.getFzdh());
+ labInstrgroupmainMapper.deleteLabInstrgroupdetail(labInstrgroupdetail);
+ return new Result("0","删除成功!");
+ }
+
+ @Override
+ public Result deleteDetail(List labInstrgroupdetailList) {
+ for (LabInstrgroupdetail labInstrgroupdetail : labInstrgroupdetailList) {
+ if(labInstrgroupdetail.getYq() == null) return new Result("-1","仪器不能为空!");
+ labInstrgroupmainMapper.deleteLabInstrgroupdetail(labInstrgroupdetail);
+ }
+ return new Result("0","删除明细成功!");
+ }
+
+
+}
diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/XmCompServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/XmCompServiceImpl.java
index e0a397b..7fb2ae0 100644
--- a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/XmCompServiceImpl.java
+++ b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/XmCompServiceImpl.java
@@ -1,8 +1,10 @@
package com.czlis.liswork.service.impl.xtwh;
import com.czlis.common.core.domain.Result;
+import com.czlis.common.core.domain.entity.lis.LabInputmdlDetail;
import com.czlis.common.core.domain.entity.lis.XmComp;
import com.czlis.liswork.mapper.xtwh.XmCompMapper;
+import com.czlis.liswork.pojo.DTO.XmCompDTO;
import com.czlis.liswork.service.XmCompService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,22 +21,39 @@ public class XmCompServiceImpl implements XmCompService {
@Override
public Result getXmCompList(XmComp xmComp) {
- List xmCompList = xmCompMapper.getXmCompList(xmComp);
+ List xmCompList = xmCompMapper.getXmCompMainList(xmComp);
return new Result("0","查询成功!",xmCompList);
}
@Override
- public Result addXmComp(List xmCompList) {
+ public Result addXmComp(XmCompDTO xmCompList0) {
+ XmComp head=xmCompList0.getXmComp();
+ List xmCompList = xmCompList0.getXmCompList();
for (XmComp xmComp : xmCompList) {
- xmCompMapper.addXmComp(xmComp);
+ xmComp.setZhlx(head.getZhlx());
+ xmComp.setZhmc(head.getZhmc());
+ List xmCompList1 = xmCompMapper.getXmCompList(xmComp);
+ if(xmCompList1.size() > 0){
+ }else{
+ xmCompMapper.addXmComp(xmComp);
+ }
}
- return new Result("0","新增数据成功!");
+ return new Result("0","新增成功!");
}
@Override
- public Result updateXmComp(List xmCompList) {
+ public Result updateXmComp(XmCompDTO xmCompList0) {
+ XmComp head=xmCompList0.getXmComp();
+ xmCompMapper.deleteXmCompOld(head);
+ List xmCompList = xmCompList0.getXmCompList();
for (XmComp xmComp : xmCompList) {
- xmCompMapper.updateXmComp(xmComp);
+ xmComp.setZhlx(head.getZhlx());
+ xmComp.setZhmc(head.getZhmc());
+ List xmCompList1 = xmCompMapper.getXmCompList(xmComp);
+ if(xmCompList1.size() > 0){
+ }else{
+ xmCompMapper.addXmComp(xmComp);
+ }
}
return new Result("0","修改成功!");
}
@@ -44,4 +63,18 @@ public class XmCompServiceImpl implements XmCompService {
xmCompMapper.deleteXmComp(xmComp);
return new Result("0","删除数据成功!");
}
+
+ @Override
+ public Result queryDetail(XmComp xmComp) {
+ List xmCompList = xmCompMapper.getXmCompList(xmComp);
+ return new Result("0","查询成功!",xmCompList);
+ }
+
+ @Override
+ public Result deleteDetail(List xmCompList) {
+ for (XmComp xmComp : xmCompList) {
+ xmCompMapper.deleteXmComp(xmComp);
+ }
+ return new Result("0","删除数据成功!");
+ }
}
diff --git a/liswork/src/main/resources/mapper/LabInstrgroupmainMapper.xml b/liswork/src/main/resources/mapper/LabInstrgroupmainMapper.xml
new file mode 100644
index 0000000..ca1711e
--- /dev/null
+++ b/liswork/src/main/resources/mapper/LabInstrgroupmainMapper.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ insert into lab_instrgroupmain(fzdh,fzmc,bz,yljg,tj_flag)values(#{fzdh},#{fzmc},#{bz},#{yljg},#{tj_flag})
+
+
+
+ update lab_instrgroupmain
+ set
+ fzdh = #{fzdh},
+ fzmc = #{fzmc},
+ bz = #{bz},
+ yljg = #{yljg},
+ tj_flag = #{yljg}
+ where fzdh = #{fzdh}
+
+
+
+ delete from lab_instrgroupmain where fzdh = #{fzdh}
+
+
+
+
+ insert into lab_instrgroupdetail(fzdh,yq,seq,yljg)values(#{fzdh},#{yq},#{seq},#{yljg})
+
+
+
+ update lab_instrgroupdetail
+ set
+ fzdh = #{fzdh},
+ yq = #{yq},
+ seq = #{seq},
+ yljg = #{yljg}
+ where fzdh = #{fzdh}
+
+
+
+ delete from lab_instrgroupdetail
+
+ and fzdh = #{fzdh}
+ and yq = #{yq}
+ and seq = #{seq}
+ and yljg = #{yljg}
+
+
+
+
+
+
diff --git a/liswork/src/main/resources/mapper/XmCompMapper.xml b/liswork/src/main/resources/mapper/XmCompMapper.xml
index 558c955..5e60252 100644
--- a/liswork/src/main/resources/mapper/XmCompMapper.xml
+++ b/liswork/src/main/resources/mapper/XmCompMapper.xml
@@ -4,7 +4,7 @@
-
+
+
insert into xm_comp(
yq,zhmc,zhlx,xmdh,bz,seq
@@ -23,6 +39,7 @@
)
+
update xm_comp
@@ -32,13 +49,15 @@
seq = #{seq},
yq = #{yq},zhmc = #{zhmc}
- where yq = #{yq},zhmc = #{zhmc} and zhlx = #{zhlx} and xmdh = #{xmdh}
+ where yq = #{yq} and zhmc = #{zhmcold} and zhlx = #{zhlxold} and xmdh = #{xmdhold}
-
delete from xm_comp where yq = #{yq} and zhmc = #{zhmc} and zhlx = #{zhlx}
and xmdh = #{xmdh}
+
+ delete from xm_comp where yq = #{yq} and zhmc = #{zhmcold} and zhlx = #{zhlxold}
+
diff --git a/pom.xml b/pom.xml
index f194409..1b33d31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -310,9 +310,9 @@
- cn.com.kingbase
+ com.kingbase
kingbase8
- 8.2.0
+ 8.6.0