diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java b/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java
index e06b86630..5ae0aa6cf 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java
@@ -5,6 +5,7 @@ import com.neuhis.his.domain.vo.bjca.BjCaResult;
import com.neuhis.his.domain.vo.bjca.CaResultVo;
import com.neuhis.his.domain.vo.bjca.CaStartVo;
import com.neuhis.his.service.IBjCaService;
+import com.neuhis.his.service.winlis.ILasSapSampleregService;
import com.neuhis.his.service.winlis.IWinLisService;
import com.ruoyi.common.core.domain.AjaxResult;
import io.swagger.annotations.Api;
@@ -31,6 +32,8 @@ public class AppBjCaController {
private IBjCaService bjCaService;
@Resource
private IWinLisService winLisService;
+ @Resource
+ private ILasSapSampleregService lasSapSampleregService;
/**
* startAutoSign启动自动签名获取的签名数据,[签名任务id]
* 使用过的任务id: SD_4c6ec5f6-22e3-4fae-b2aa-681e5beacf1e
@@ -64,7 +67,9 @@ public class AppBjCaController {
@ApiOperation(value = "获取:Winlis的CA原文", notes = "获取:Winlis的CA原文;生成CA信息(签名结果、证书、时间戳)")
public AjaxResult getWinLisCaInfo() {
//String caOriginText = winLisService.getWinLisCaOriginText("20250228", "WSW_caris200", "9999");
- CaResultVo caResultVo = winLisService.generateBjCaInfo("20250228", "WSW_caris200", "9999", autoSignSignDataId);
- return AjaxResult.success(caResultVo);
+ //CaResultVo caResultVo = winLisService.generateBjCaInfo("20250228", "WSW_caris200", "9999", autoSignSignDataId);
+ //return AjaxResult.success(caResultVo);
+ //return AjaxResult.success(lasSapSampleregService.selectWaitingCaSignList("202503", 10));
+ return AjaxResult.success(winLisService.winlistCaTask("202503", 10));
}
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasSapCadata.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasSapCadata.java
index e361a903a..999db1b55 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasSapCadata.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasSapCadata.java
@@ -2,18 +2,22 @@ package com.neuhis.his.domain.entity.winlis;
import java.util.Date;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
- * CA签名信息
- 对通过数字签名完成的数据进行保存对象 las_sap_cadata
- *
+ * CA签名信息 对通过数字签名完成的数据进行保存对象 las_sap_cadata
* @author ruoyi
* @date 2025-03-07
*/
+@Getter
+@Setter
+@NoArgsConstructor
public class LasSapCadata extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -34,124 +38,27 @@ public class LasSapCadata extends BaseEntity
@Excel(name = "条码号")
private String barcode;
+
/** 原始数据 */
@Excel(name = "原始数据")
private String srcdata;
- /** CA数据 */
- @Excel(name = "CA数据")
- private String caclobdata;
-
- /** CA原始数据 */
- @Excel(name = "CA原始数据")
+ /** CA原始数据(原始数据的BASE64形式) */
+ @Excel(name = "CA原始数据(原始数据的BASE64形式)")
private String srcclobdata;
+ /**
+ * CA数据,形如:
+ *
+ * 签名结果:
+ * 时间戳:
+ * 证书:
+ *
+ */
+ @Excel(name = "CA数据,包含:签名结果:、时间戳:、证书:")
+ private String caclobdata;
+
/** CAID */
@Excel(name = "CAID")
private String caid;
-
- public void setCatime(Date catime)
- {
- this.catime = catime;
- }
-
- public Date getCatime()
- {
- return catime;
- }
-
- public void setTestdate(String testdate)
- {
- this.testdate = testdate;
- }
-
- public String getTestdate()
- {
- return testdate;
- }
-
- public void setMachineid(String machineid)
- {
- this.machineid = machineid;
- }
-
- public String getMachineid()
- {
- return machineid;
- }
-
- public void setSampleid(String sampleid)
- {
- this.sampleid = sampleid;
- }
-
- public String getSampleid()
- {
- return sampleid;
- }
-
- public void setBarcode(String barcode)
- {
- this.barcode = barcode;
- }
-
- public String getBarcode()
- {
- return barcode;
- }
-
- public void setSrcdata(String srcdata)
- {
- this.srcdata = srcdata;
- }
-
- public String getSrcdata()
- {
- return srcdata;
- }
-
- public void setCaclobdata(String caclobdata)
- {
- this.caclobdata = caclobdata;
- }
-
- public String getCaclobdata()
- {
- return caclobdata;
- }
-
- public void setSrcclobdata(String srcclobdata)
- {
- this.srcclobdata = srcclobdata;
- }
-
- public String getSrcclobdata()
- {
- return srcclobdata;
- }
-
- public void setCaid(String caid)
- {
- this.caid = caid;
- }
-
- public String getCaid()
- {
- return caid;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("catime", getCatime())
- .append("testdate", getTestdate())
- .append("machineid", getMachineid())
- .append("sampleid", getSampleid())
- .append("barcode", getBarcode())
- .append("srcdata", getSrcdata())
- .append("caclobdata", getCaclobdata())
- .append("srcclobdata", getSrcclobdata())
- .append("caid", getCaid())
- .toString();
- }
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/winlis/LasSapCadataWatingSignVo.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/winlis/LasSapCadataWatingSignVo.java
new file mode 100644
index 000000000..038152a86
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/winlis/LasSapCadataWatingSignVo.java
@@ -0,0 +1,24 @@
+package com.neuhis.his.domain.vo.winlis;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * 查询等待签名的CA列表
+ *
+ * @author dazer
+ * @date 2025/3/7 08:55
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+public class LasSapCadataWatingSignVo {
+ private String testdate;
+ private String machineid;
+ private String sampleid;
+ /**
+ * 条码号
+ */
+ private String barcode;
+}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapCadataMapper.java b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapCadataMapper.java
index 1415e3e95..4277ff915 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapCadataMapper.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapCadataMapper.java
@@ -1,77 +1,35 @@
package com.neuhis.his.mapper.winlis;
import com.neuhis.his.domain.entity.winlis.LasSapCadata;
+import com.neuhis.his.domain.vo.winlis.LasSapCadataWatingSignVo;
import java.util.Date;
import java.util.List;
/**
- * CA签名信息
- 对通过数字签名完成的数据进行保存Mapper接口
+ * CA签名信息 对通过数字签名完成的数据进行保存Mapper接口
*
* @author ruoyi
* @date 2025-03-07
*/
public interface LasSapCadataMapper
{
+ /**
+ * 查询等待CA签名的列表
+ */
+ List selectWaitingCaSignList(String testdateLike, Integer limit);
/**
- * 查询CA签名信息
- 对通过数字签名完成的数据进行保存
+ * 新增CA签名信息 对通过数字签名完成的数据进行保存
*
- * @param catime CA签名信息
- 对通过数字签名完成的数据进行保存主键
- * @return CA签名信息
- 对通过数字签名完成的数据进行保存
- */
- public LasSapCadata selectLasSapCadataByCatime(Date catime);
-
- /**
- * 查询CA签名信息
- 对通过数字签名完成的数据进行保存列表
- *
- * @param lasSapCadata CA签名信息
- 对通过数字签名完成的数据进行保存
- * @return CA签名信息
- 对通过数字签名完成的数据进行保存集合
- */
- public List selectLasSapCadataList(LasSapCadata lasSapCadata);
-
- /**
- * 新增CA签名信息
- 对通过数字签名完成的数据进行保存
- *
- * @param lasSapCadata CA签名信息
- 对通过数字签名完成的数据进行保存
+ * @param lasSapCadata CA签名信息 对通过数字签名完成的数据进行保存
* @return 结果
*/
- public int insertLasSapCadata(LasSapCadata lasSapCadata);
+ int insertLasSapCadata(LasSapCadata lasSapCadata);
/**
- * 修改CA签名信息
- 对通过数字签名完成的数据进行保存
- *
- * @param lasSapCadata CA签名信息
- 对通过数字签名完成的数据进行保存
+ * 修改CA签名信息对通过数字签名完成的数据进行保存
+ * @param lasSapCadata CA签名信息 对通过数字签名完成的数据进行保存
* @return 结果
*/
- public int updateLasSapCadata(LasSapCadata lasSapCadata);
-
- /**
- * 删除CA签名信息
- 对通过数字签名完成的数据进行保存
- *
- * @param catime CA签名信息
- 对通过数字签名完成的数据进行保存主键
- * @return 结果
- */
- public int deleteLasSapCadataByCatime(Date catime);
-
- /**
- * 批量删除CA签名信息
- 对通过数字签名完成的数据进行保存
- *
- * @param catimes 需要删除的数据主键集合
- * @return 结果
- */
- public int deleteLasSapCadataByCatimes(String[] catimes);
+ int updateLasSapCadata(LasSapCadata lasSapCadata);
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java
index f2ec3fe45..e442b87e2 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java
@@ -15,22 +15,9 @@ Mapper接口
public interface LasSapSampleregMapper
{
/**
- *
-
- *
+ * 根据:三要素查询常规检验注册信息
* @param testdate 常规检验登记表
* @return 常规检验登记表
*/
LasSapSamplereg selectLasSapSampleregByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId);
-
- /**
- *
-列表
- *
- * @param lasSapSamplereg 常规检验登记表
-
- * @return 常规检验登记表
-集合
- */
- List selectLasSapSampleregList(LasSapSamplereg lasSapSamplereg);
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java
index 5a408f458..f4b44ad52 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java
@@ -33,7 +33,6 @@ import java.util.Map;
public class BjCaServiceImpl implements IBjCaService {
@Autowired
private BjCaConfig bjCaConfig;
-
/**
* 通过 https://demo-system.isignet.cn/signHelper/sign.html 校验签名值是否正确
* @return
@@ -87,7 +86,7 @@ public class BjCaServiceImpl implements IBjCaService {
params.put("attachCert", StrUtil.isNotEmpty(signature) ? "true" : "false");//最终产生的时间戳是否带证书 (true/false)
params.put("signature", signature);//最终产生的时间戳是否带证书 (true/false)
BjCaResult result = postBjCa(bjCaConfig.getServerTssInfo(), params, CaCreateAndGetTssInfoVo.class);
- return result != null && result.isSuccess() ? result.getData().getTsResp() : "";
+ return result.isSuccess() ? result.getData().getTsResp() : "";
}
@SuppressWarnings("all")
@@ -109,6 +108,10 @@ public class BjCaServiceImpl implements IBjCaService {
"北京CA开始HTTP请求,URL:" + (bjCaConfig.getServerBase()+url) + "\n," +
"请求入参:" + requestJson + "\n" +
"响应结果:" + resultJson);
+ //89003046 自动签未开启或已过期, 如果;提示这个,需要重新【协同签名】app,后续所有的操作都无法进行
+ if (bjCaResult.getStatus() != null && bjCaResult.getStatus().equals(89003046L)) {
+ throw new RuntimeException("错误码:89003046;错误信息:自动签未开启或已过期,请重新【协同签名】app,后续所有的操作都无法进行,所有操作需要中断!");
+ }
return bjCaResult;
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java
index 712fb563f..cc578e8cb 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java
@@ -1,6 +1,8 @@
package com.neuhis.his.service.impl;
+import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.ListUtil;
+import com.fasterxml.jackson.databind.ser.Serializers;
import com.neuhis.his.domain.dto.DeadLockRac;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java
index b66216cf4..167091f51 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java
@@ -1,5 +1,7 @@
package com.neuhis.his.service.impl.winlis;
+import java.util.Collections;
+import java.util.Date;
import java.util.List;
import cn.hutool.core.bean.BeanUtil;
@@ -7,10 +9,14 @@ import cn.hutool.core.lang.Opt;
import cn.hutool.core.util.StrUtil;
import com.neuhis.his.domain.entity.winlis.LasRolPerson;
import com.neuhis.his.domain.entity.winlis.LasRtResult;
+import com.neuhis.his.domain.entity.winlis.LasSapCadata;
import com.neuhis.his.domain.entity.winlis.LasSapSamplereg;
+import com.neuhis.his.domain.vo.bjca.CaResultVo;
+import com.neuhis.his.domain.vo.winlis.LasSapCadataWatingSignVo;
import com.neuhis.his.domain.vo.winlis.LasSapSampleregVo;
import com.neuhis.his.mapper.winlis.LasRolPersonMapper;
import com.neuhis.his.mapper.winlis.LasRtResultMapper;
+import com.neuhis.his.mapper.winlis.LasSapCadataMapper;
import com.neuhis.his.mapper.winlis.LasSapSampleregMapper;
import com.neuhis.his.service.winlis.ILasSapSampleregService;
import com.ruoyi.common.annotation.DataSource;
@@ -35,23 +41,10 @@ public class LasSapSampleregServiceImpl implements ILasSapSampleregService
private LasRtResultMapper lasRtResultMapper;
@Autowired
private LasRolPersonMapper latestRolPersonMapper;
+ @Autowired
+ private LasSapCadataMapper lasSapCadataMapper;
- /**
- *
-
- *
- * @param testdate 常规检验登记表
-主键
- * @return 常规检验登记表
-
- */
- @Override
- public LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String machineid, String sampleId)
- {
- return lasSapSampleregMapper.selectLasSapSampleregByTestdate(testdate, machineid, sampleId);
- }
-
@Override
public LasSapSampleregVo selectLasSapSampleregVo(String testdate, String machineid, String sampleId) {
//region 查询1:条码信息 Winlis.las_sap_samplereg
@@ -78,14 +71,39 @@ public class LasSapSampleregServiceImpl implements ILasSapSampleregService
return vo;
}
- /**
- *
- * @param lasSapSamplereg 常规检验登记表
- * @return 常规检验登记表
- */
@Override
- public List selectLasSapSampleregList(LasSapSamplereg lasSapSamplereg)
- {
- return lasSapSampleregMapper.selectLasSapSampleregList(lasSapSamplereg);
+ public List selectWaitingCaSignList(String testdateLike, Integer limit) {
+ return lasSapCadataMapper.selectWaitingCaSignList(testdateLike, limit);
+ }
+
+ @Override
+ public int insertLasSapCaData(LasSapCadataWatingSignVo watingSignVo, CaResultVo caResultVo) {
+ if (watingSignVo == null || caResultVo == null) {
+ return 0;
+ }
+ LasSapCadata cadata = new LasSapCadata();
+ cadata.setTestdate(watingSignVo.getTestdate());
+ cadata.setMachineid(watingSignVo.getMachineid());
+ cadata.setSampleid(watingSignVo.getSampleid());
+ cadata.setBarcode(watingSignVo.getBarcode());
+
+ cadata.setSrcdata(caResultVo.getOriData());
+ cadata.setSrcclobdata(caResultVo.getOriDataBase64());
+ cadata.setCatime(new Date());
+ cadata.setCaid(caResultVo.getSignDataId());
+
+ /**
+ * CA数据,形如:
+ * 签名结果:
+ * 时间戳:
+ * 证书:
+ */
+ String caclobdata =
+ "签名结果:" + caResultVo.getSignResult() + "\n"
+ +"时间戳:" + caResultVo.getTimeciphertext() + "\n"
+ +"证书:" + caResultVo.getSignCert()
+ ;
+ cadata.setCaclobdata(caclobdata);
+ return lasSapCadataMapper.insertLasSapCadata(cadata);
}
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java
index d63e343b5..d2440e3ea 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java
@@ -4,10 +4,12 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.neuhis.his.domain.entity.winlis.LasRtResult;
import com.neuhis.his.domain.vo.bjca.BjCaResult;
import com.neuhis.his.domain.vo.bjca.CaResultVo;
import com.neuhis.his.domain.vo.bjca.CaStartVo;
+import com.neuhis.his.domain.vo.winlis.LasSapCadataWatingSignVo;
import com.neuhis.his.domain.vo.winlis.LasSapSampleregVo;
import com.neuhis.his.service.IBjCaService;
import com.neuhis.his.service.winlis.ILasSapSampleregService;
@@ -20,8 +22,10 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
-
-import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* Winlis相关
@@ -33,10 +37,27 @@ import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;
@Service
@DataSource(value = DataSourceType.WINLIS)
public class WinLisServiceImpl implements IWinLisService {
+ /**
+ * 线程池
+ * Executors.newFixedThreadPool(10);
+ * 这里不限制大小,线程会按照最大能力,开启,限制了大小,比如:10, 就一共只开启这么多线程
+ * 核心线程:60个;当线程超过核心线程会增加到最大线程:120个;当超过队列:500个,就会抛弃掉;
+ * 队列数量不能太多:否则oom
+ */
+ private static ThreadPoolExecutor executorService = new ThreadPoolExecutor(20, 50, 60L, TimeUnit.SECONDS,
+ new ArrayBlockingQueue<>(5000), new ThreadFactoryBuilder().setNameFormat("winlisca-task-thread-pool-%d").build());
@Autowired
private ILasSapSampleregService lasSapSampleregService;
@Autowired
private IBjCaService bjCaService;
+ /**
+ * startAutoSign启动自动签名获取的签名数据,[签名任务id]
+ * 使用过的任务id: SD_4c6ec5f6-22e3-4fae-b2aa-681e5beacf1e
+ * 使用过的任务id: SD_892d8817-4a96-445c-a5c1-2eb9f334fecc
+ */
+ private String autoSignSignDataId = "SD_4c6ec5f6-22e3-4fae-b2aa-681e5beacf1e";
+
+
@Override
public String getWinLisCaOriginText(String testdate, String machineid, String sampleId) {
LasSapSampleregVo reg = lasSapSampleregService.selectLasSapSampleregVo(testdate, machineid, sampleId);
@@ -230,7 +251,7 @@ public class WinLisServiceImpl implements IWinLisService {
//region 2、北京CA自动签名
BjCaResult autoSignRe = bjCaService.autoSign(autoSignSignDataId, Base64.encode(originText));
- if (autoSignRe == null || !autoSignRe.isSuccess()) {
+ if (autoSignRe == null) {
return null;
}
//endregion
@@ -255,6 +276,26 @@ public class WinLisServiceImpl implements IWinLisService {
return caResultVo;
}
+ @Override
+ public int winlistCaTask(String testdateLike, Integer limit) {
+ AtomicInteger successNum = new AtomicInteger();
+ List watingSignVos = lasSapSampleregService.selectWaitingCaSignList(testdateLike, limit);
+ for (LasSapCadataWatingSignVo vo : watingSignVos) {
+ AtomicInteger i = new AtomicInteger();
+ executorService.execute(() -> {
+ log.debug("开始winlistCaTask, index = {}", i.incrementAndGet());
+ String originText = getWinLisCaOriginText(vo.getTestdate(), vo.getMachineid(), vo.getSampleid());
+ CaResultVo caResultVo = generateBjCaInfo(vo.getTestdate(), vo.getMachineid(), vo.getSampleid(), autoSignSignDataId);
+ if (StrUtil.isEmpty(originText) || caResultVo == null) {
+ return;
+ }
+ int result = lasSapSampleregService.insertLasSapCaData(vo, caResultVo);
+ successNum.addAndGet(result);
+ });
+ }
+ return successNum.get();
+ }
+
private String strDef(String str) {
if ("null".equalsIgnoreCase(str)) {
return "";
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java
index 4f5568d1e..f0a6f2a46 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java
@@ -1,6 +1,9 @@
package com.neuhis.his.service.winlis;
+import com.neuhis.his.domain.entity.winlis.LasSapCadata;
import com.neuhis.his.domain.entity.winlis.LasSapSamplereg;
+import com.neuhis.his.domain.vo.bjca.CaResultVo;
+import com.neuhis.his.domain.vo.winlis.LasSapCadataWatingSignVo;
import com.neuhis.his.domain.vo.winlis.LasSapSampleregVo;
import java.util.List;
@@ -14,29 +17,21 @@ Service接口
*/
public interface ILasSapSampleregService
{
- /**
- *
-
- *
- * @param testdate 常规检验登记表
-主键
- * @return 常规检验登记表
-
- */
- LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String machineid, String sampleId);
-
/**
* 返回一个试管检验条码信息和检验结果明细信息
* @param testdate 检验时间
- * @param barcode 条码
* @param machineid 机器
+ * @param sampleId 样本号
*/
LasSapSampleregVo selectLasSapSampleregVo(String testdate, String machineid, String sampleId);
+ /**
+ * 查询等待CA签名的列表
+ * @param testdateLike,查询时间:2025,202503
+ */
+ List selectWaitingCaSignList(String testdateLike, Integer limit);
/**
- *
- * @param lasSapSamplereg 常规检验登记表
- * @return 常规检验登记表
+ * 插入CA数据
*/
- List selectLasSapSampleregList(LasSapSamplereg lasSapSamplereg);
+ int insertLasSapCaData(LasSapCadataWatingSignVo watingSignVo, CaResultVo caResultVo);
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java
index d5688a8c0..a6066cc6d 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java
@@ -22,4 +22,6 @@ public interface IWinLisService {
* 生成北京CA签名信息
*/
CaResultVo generateBjCaInfo(String testdate, String machineid, String sampleId, String autoSignSignDataId);
+
+ int winlistCaTask(String testdateLike, Integer limit);
}
diff --git a/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java b/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java
index 387998c3c..389689c1a 100644
--- a/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java
+++ b/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java
@@ -5,6 +5,7 @@ import com.neuhis.his.domain.dto.DeadLock;
import com.neuhis.his.domain.dto.DeadLockRac;
import com.neuhis.his.push.OracleSlaveDataAutoPushService;
import com.neuhis.his.service.IOracleSysService;
+import com.neuhis.his.service.winlis.IWinLisService;
import com.neuhis.quartz.task.common.JobService;
import com.ruoyi.common.config.RuoYiConfig;
import com.neuhis.quartz.task.common.JobSwitchConstant;
@@ -31,6 +32,8 @@ public class HisTask {
private IOracleSysService oracleSysService;
@Autowired
private RuoYiConfig ruoYiConfig;
+ @Autowired
+ private IWinLisService winLisService;
public void pushData()
{
@@ -82,4 +85,13 @@ public class HisTask {
log.info("日志数据删除结束,共删除 "+num+" 条日志。" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss"));
}
}
+
+ public void winlisCaTask(String testdateLike, Integer limit)
+ {
+ if (ruoYiConfig.isQuzrtzTask()) {
+ log.info("winlisCA数据推送开始" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss"));
+ winLisService.winlistCaTask(testdateLike,limit);
+ log.info("winlisCA数据推送结束" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss"));
+ }
+ }
}
diff --git a/ruoyi-admin/src/main/resources/mapper/winlis/LasSapCadataMapper.xml b/ruoyi-admin/src/main/resources/mapper/winlis/LasSapCadataMapper.xml
index 9b628669f..574014528 100644
--- a/ruoyi-admin/src/main/resources/mapper/winlis/LasSapCadataMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/winlis/LasSapCadataMapper.xml
@@ -20,20 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select catime, testdate, machineid, sampleid, barcode, srcdata, caclobdata, srcclobdata, caid from las_sap_cadata
-
-
-