Browse Source

fix:【数据对接】字段修改

master
zhangjing 4 weeks ago
parent
commit
a41df32e1f
12 changed files with 413 additions and 277 deletions
  1. +25
    -2
      hxhq-modules/hxhq-integration/pom.xml
  2. +0
    -79
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/Instrument.java
  3. +115
    -0
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/InstrumentChange.java
  4. +52
    -34
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/InstrumentPush.java
  5. +84
    -34
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/ReagentStock.java
  6. +67
    -61
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/ReagentStockPush.java
  7. +3
    -4
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/mapper/InstrumentMapper.java
  8. +9
    -9
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/service/impl/InstrumentServiceImpl.java
  9. +46
    -8
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/service/impl/ReagentStockServiceImpl.java
  10. +0
    -45
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/util/DailyTask.java
  11. +11
    -0
      hxhq-modules/hxhq-integration/src/main/java/com/hxhq/util/TimeUtil.java
  12. +1
    -1
      hxhq-modules/hxhq-integration/src/main/resources/mapper/InstrumentMapper.xml

+ 25
- 2
hxhq-modules/hxhq-integration/pom.xml View File

@ -90,11 +90,34 @@
<version>5.5.11</version> <version>5.5.11</version>
</dependency> </dependency>
<!-- 支持中文 --> <!-- 支持中文 -->
<!-- <dependency>-->
<!-- <groupId>com.itextpdf</groupId>-->
<!-- <artifactId>itext-asian</artifactId>-->
<!-- <version>7.2.5</version>-->
<!-- </dependency>-->
<!-- iText 7 核心聚合包(包含 kernel/io/layout/forms) -->
<dependency> <dependency>
<groupId>com.itextpdf</groupId> <groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
<artifactId>itext7-core</artifactId>
<version>7.2.5</version>
<type>pom</type>
</dependency> </dependency>
<!-- 可选:条码支持 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>barcodes</artifactId>
<version>7.2.5</version>
</dependency>
<!-- 可选:亚洲字体(中文/日文等) -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.2.5</version>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>

+ 0
- 79
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/Instrument.java View File

@ -1,79 +0,0 @@
package com.hxhq.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author zhangjing
* @date 2026/01/30 10:39
* @description 仪器
*/
@Data
@TableName("instrument")
public class Instrument {
/**
*仪器库存ID主键雪花ID
**/
@TableId(value = "instrument_id", type = IdType.ASSIGN_ID)
private String instrumentId;
/**
* 名称
**/
@TableField(value = "name")
private String name;
/**
* 编号
**/
@TableField(value = "sn")
private String sn;
/**
* 型号
**/
@TableField(value = "model")
private String model;
/**
* 所属部门
**/
@TableField(value = "department")
private String department;
/**
* 下次校准日期
**/
@TableField(value = "calibration_date")
private LocalDateTime calibrationDate;
/**
* 来源
**/
@TableField(value = "source")
private String source;
/**
* 温层存储条件
**/
@TableField(value = "storage_conditions")
private String storageConditions;
/**
* 备注
**/
@TableField(value = "remark")
private String remark;
/**
* 操作标识1=新增2=修改3=删除
**/
@TableField(value = "operation_sign")
private Integer operationSign;
}

+ 115
- 0
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/InstrumentChange.java View File

@ -0,0 +1,115 @@
package com.hxhq.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author zhangjing
* @date 2026/01/30 10:39
* @description 仪器设备变更记录表
*/
@Data
@TableName("instrument_change")
public class InstrumentChange {
/**
* 仪器变更记录ID主键雪花ID
**/
@TableField(value = "instrument_change_id")
private String instrumentChangeId;
/**
* 仪器名称
**/
@TableField(value = "name")
private String name;
/**
* 仪器编号序列号唯一标识
**/
@TableField(value = "sn")
private String sn;
/**
* 仪器型号
**/
@TableField(value = "model")
private String model;
/**
* 所属部门临床检验分析部
**/
@TableField(value = "department")
private String department;
/**
* 下次校准日期
**/
@TableField(value = "calibration_date")
private LocalDateTime calibrationDate;
/**
* 来源生产厂家/供应商
**/
@TableField(value = "source")
private String source;
/**
* 仪器状态
1=正常使用
2=禁止使用
**/
@TableField(value = "status")
private String status;
/**
* 放置位置
**/
@TableField(value = "storage_location")
private String storageLocation;
/**
* 备注
**/
@TableField(value = "remark")
private String remark;
/**
* 数据创建推送时间
**/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 操作标识1=新增2=修改
**/
@TableField(value = "operation_sign")
private Integer operationSign;
/**
* 串口号
**/
@TableField(value = "serial_port")
private String serialPort;
/**
* 波特率
**/
@TableField(value = "baud_rate")
private Integer baudRate;
/**
* 数据位
**/
@TableField(value = "byte_size")
private Integer byteSize;
/**
* 奇偶校验N=无校验,O=奇校验,E=偶校验
**/
@TableField(value = "parity")
private String parity;
}

+ 52
- 34
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/InstrumentPush.java View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -17,84 +18,101 @@ import java.time.LocalDateTime;
@TableName("instrument_push") @TableName("instrument_push")
public class InstrumentPush { public class InstrumentPush {
/** /**
*仪器推送ID主键雪花ID
* 仪器变更记录ID主键雪花ID
**/ **/
@TableId(value = "instrument_push_id", type = IdType.ASSIGN_ID)
@TableField(value = "instrument_push_id")
private String instrumentPushId; private String instrumentPushId;
/** /**
* 名称
* 仪器名称
**/ **/
@TableField(value = "name") @TableField(value = "name")
private String name; private String name;
/** /**
* 编号
* 仪器编号序列号唯一标识
**/ **/
@TableField(value = "sn") @TableField(value = "sn")
private String sn; private String sn;
/** /**
* 试验编
* 仪器型
**/ **/
@TableField(value = "trial_number")
private String trialNumber;
@TableField(value = "model")
private String model;
/** /**
* 试验名称
* 所属部门临床检验分析部
**/ **/
@TableField(value = "trial_name")
private String trialName;
@TableField(value = "department")
private String department;
/** /**
* 表单系统模板名
* 下次校准日期
**/ **/
@TableField(value = "form_template_name")
private String formTemplateName;
@TableField(value = "calibration_date")
private LocalDate calibrationDate;
/** /**
* 表单名
* 来源生产厂家/供应商
**/ **/
@TableField(value = "form_name")
private String formName;
@TableField(value = "source")
private String source;
/**
* 仪器状态
1=正常使用
2=禁止使用
**/
@TableField(value = "status")
private String status;
/** /**
* 使用时间可理解为主记录时间或开始时间
* 放置位置
**/ **/
@TableField(value = "usage_time")
private LocalDateTime usageTime;
@TableField(value = "storage_location")
private String storageLocation;
/** /**
* 使用时长
* 备注
**/ **/
@TableField(value = "usage_duration")
private String usageDuration;
@TableField(value = "remark")
private String remark;
/** /**
* 使用时长-单位
* 数据创建推送时间
**/ **/
@TableField(value = "usage_duration_unit")
private String usageDurationUnit;
@TableField(value = "create_time")
private LocalDateTime createTime;
/** /**
* 使用人
* 操作标识1=新增2=修改
**/ **/
@TableField(value = "user_name")
private String userName;
@TableField(value = "operation_sign")
private Integer operationSign;
/** /**
* 开始使用时间
* 串口号
**/ **/
@TableField(value = "start_time")
private LocalDateTime startTime;
@TableField(value = "serial_port")
private String serialPort;
/** /**
* 结束使用时间
* 波特率
**/ **/
@TableField(value = "end_time")
private LocalDateTime endTime;
@TableField(value = "baud_rate")
private Integer baudRate;
/**
* 数据位
**/
@TableField(value = "byte_size")
private Integer byteSize;
/**
* 奇偶校验N=无校验,O=奇校验,E=偶校验
**/
@TableField(value = "parity")
private String parity;
} }

+ 84
- 34
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/ReagentStock.java View File

@ -15,101 +15,151 @@ import java.time.LocalDateTime;
@Data @Data
@TableName("reagent_stock") @TableName("reagent_stock")
public class ReagentStock { public class ReagentStock {
/**
*试剂库存ID主键雪花ID
**/
@TableId(value = "reagent_stock_id", type = IdType.ASSIGN_ID)
private String reagentStockId;
/**
* 试剂库存ID主键
**/
@TableField(value = "reagent_stock_id")
private String reagentStockId;
/** /**
*名称
* 试剂名称
**/ **/
@TableField(value = "name")
private String name; private String name;
/** /**
*编号唯一标识如批次+序列
* 试剂编号
**/ **/
@TableField(value = "sn") @TableField(value = "sn")
private String sn; private String sn;
/** /**
*浓度/含量/纯度数值
* 库存数量-支持小数
**/
@TableField(value = "main_stock_count")
private BigDecimal mainStockCount;
/**
* 库存单位-
**/ **/
@TableField(value = "purity")
private BigDecimal purity;
@TableField(value = "main_stock_unit")
private String mainStockUnit;
/** /**
*浓度/含量/纯度单位 mg/mL%mol/L
* 库存数量-
**/ **/
private String purityUnit;
@TableField(value = "sub_stock_count")
private BigDecimal subStockCount;
/** /**
*库存数量支持小数
* 库存单位- mgmLg
**/ **/
private BigDecimal stockCount;
@TableField(value = "sub_stock_unit")
private String subStockUnit;
/** /**
*库存单位 mgmLg
* 换算比例
**/ **/
private String stockUnit;
@TableField(value = "conv_rate")
private BigDecimal convRate;
/** /**
*规格 100mL/
* 规格 100mL/
**/ **/
@TableField(value = "specs")
private String specs; private String specs;
/** /**
*来源供应商或制备方式
* 生产厂家
**/ **/
private String source;
@TableField(value = "factory")
private String factory;
/** /**
*所属部门
* 所属部门(临床检验分析部)
**/ **/
@TableField(value = "department")
private String department; private String department;
/** /**
*批号
* 批号
**/ **/
@TableField(value = "batch_number")
private String batchNumber; private String batchNumber;
/** /**
*有效周期数值 30
* 有效周期
长期有效
待定
有效期
失效期
复测日期
**/ **/
@TableField(value = "validity_period")
private String validityPeriod; private String validityPeriod;
/** /**
*有效周期单位hour/day/month/year
* 有效失效复测日期(日期格式yyyy-MM-dd)
1:长期有效待定:没有效时间;
2:有效周期当天有效
3:失效期当天无效
4:复测日期当天有效
**/ **/
private String validityPeriodUnit;
@TableField(value = "validity_date")
private LocalDate validityDate;
/** /**
*失效日期精确到秒
**/
private LocalDateTime expiryDate;
/**
*存储位置 A-01-冰箱
* 存储位置 1126-2/室温A柜/A-3
**/ **/
@TableField(value = "storage_location")
private String storageLocation; private String storageLocation;
/** /**
*存储条件 -20避光
* 存储条件 -20避光
**/ **/
@TableField(value = "storage_conditions")
private String storageConditions; private String storageConditions;
/** /**
*配置日期仅日期
* 配置日期仅日期
**/ **/
@TableField(value = "configuration_date")
private LocalDateTime configurationDate; private LocalDateTime configurationDate;
/** /**
*创建时间
* 数据创建推送时间
**/ **/
@TableField(fill = FieldFill.INSERT)
@TableField(value = "create_time")
private LocalDateTime createTime; private LocalDateTime createTime;
/**
* 试剂管理分类
**/
@TableField(value = "reagent_manage_type")
private String reagentManageType;
/**
* 大类
**/
@TableField(value = "main_category")
private String mainCategory;
/**
* 亚类
**/
@TableField(value = "sub_category")
private String subCategory;
/**
* 分装编号
**/
@TableField(value = "package_no")
private String packageNo;
/**
* 物资系统-试剂主键id唯一
**/
@TableField(value = "ext_id")
private String extId;
} }

+ 67
- 61
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/domain/ReagentStockPush.java View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -15,144 +16,149 @@ import java.time.LocalDateTime;
@TableName("reagent_stock_push") @TableName("reagent_stock_push")
public class ReagentStockPush { public class ReagentStockPush {
/** /**
* 试剂库存推送ID主键雪花ID
* 试剂库存ID主键
**/ **/
@TableId(value = "reagent_stock_push_id", type = IdType.ASSIGN_ID)
private String reagentStockPushId;
@TableField(value = "reagent_stock_push_id")
private String reagentStockId;
/** /**
* 名称
* 试剂名称
**/ **/
@TableField(value = "name")
private String name; private String name;
/** /**
* 编号唯一标识如批次+序列
* 试剂编号
**/ **/
@TableField(value = "sn") @TableField(value = "sn")
private String sn; private String sn;
/** /**
* 浓度/含量/纯度
* 库存数量-支持小
**/ **/
@TableField(value = "purity")
private BigDecimal purity;
@TableField(value = "main_stock_count")
private BigDecimal mainStockCount;
/** /**
* 浓度/含量/纯度单位 mg/mL%mol/L
* 库存单位-
**/ **/
private String purityUnit;
@TableField(value = "main_stock_unit")
private String mainStockUnit;
/** /**
* 库存数量支持小数
* 库存数量-
**/ **/
private BigDecimal stockCount;
@TableField(value = "sub_stock_count")
private BigDecimal subStockCount;
/** /**
* 库存单位 mgmLg
* 库存单位- mgmLg
**/ **/
private String stockUnit;
@TableField(value = "sub_stock_unit")
private String subStockUnit;
/**
* 换算比例
**/
@TableField(value = "conv_rate")
private BigDecimal convRate;
/** /**
* 规格 100mL/ * 规格 100mL/
**/ **/
@TableField(value = "specs")
private String specs; private String specs;
/** /**
* 来源供应商或制备方式
* 生产厂家
**/ **/
private String source;
@TableField(value = "factory")
private String factory;
/** /**
* 所属部门
* 所属部门(临床检验分析部)
**/ **/
@TableField(value = "department")
private String department; private String department;
/** /**
* 批号 * 批号
**/ **/
@TableField(value = "batch_number")
private String batchNumber; private String batchNumber;
/** /**
* 有效周期数值 30
* 有效周期
长期有效
待定
有效期
失效期
复测日期
**/ **/
@TableField(value = "validity_period")
private String validityPeriod; private String validityPeriod;
/** /**
* 有效周期单位hour/day/month/year
**/
private String validityPeriodUnit;
/**
* 失效日期精确到秒
* 有效失效复测日期(日期格式yyyy-MM-dd)
1:长期有效待定:没有效时间;
2:有效周期当天有效
3:失效期当天无效
4:复测日期当天有效
**/ **/
private LocalDateTime expiryDate;
@TableField(value = "validity_date")
private LocalDate validityDate;
/** /**
* 存储位置 A-01-冰箱
* 存储位置 1126-2/室温A柜/A-3
**/ **/
@TableField(value = "storage_location")
private String storageLocation; private String storageLocation;
/** /**
* 存储条件 -20避光 * 存储条件 -20避光
**/ **/
@TableField(value = "storage_conditions")
private String storageConditions; private String storageConditions;
/** /**
* 配置日期仅日期 * 配置日期仅日期
**/ **/
@TableField(value = "configuration_date")
private LocalDateTime configurationDate; private LocalDateTime configurationDate;
/** /**
* 创建时间
* 数据创建推送时间
**/ **/
@TableField(fill = FieldFill.INSERT)
@TableField(value = "create_time")
private LocalDateTime createTime; private LocalDateTime createTime;
/** /**
* 修改时间
**/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
/**
* 创建者用户ID
**/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 修改者
**/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/**
* 逻辑删除标记0-未删除1-已删除
* 试剂管理分类
**/ **/
private Integer isDeleted;
@TableField(value = "reagent_manage_type")
private String reagentManageType;
/** /**
* 试验编号
* 大类
**/ **/
@TableField(value = "trial_number")
private String trialNumber;
@TableField(value = "main_category")
private String mainCategory;
/** /**
* 试验名称
* 亚类
**/ **/
@TableField(value = "trial_name")
private String trialName;
@TableField(value = "sub_category")
private String subCategory;
/** /**
* 表单系统模板名
* 分装编号
**/ **/
@TableField(value = "form_template_name")
private String formTemplateName;
@TableField(value = "package_no")
private String packageNo;
/** /**
* 表单名
* 物资系统-试剂主键id唯一
**/ **/
@TableField(value = "form_name")
private String formName;
@TableField(value = "ext_id")
private String extId;
} }

+ 3
- 4
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/mapper/InstrumentMapper.java View File

@ -2,8 +2,7 @@ package com.hxhq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxhq.domain.Instrument;
import com.hxhq.domain.ReagentStock;
import com.hxhq.domain.InstrumentChange;
import java.util.List; import java.util.List;
@ -12,9 +11,9 @@ import java.util.List;
* *
* @author hxhq * @author hxhq
*/ */
public interface InstrumentMapper extends BaseMapper<Instrument>
public interface InstrumentMapper extends BaseMapper<InstrumentChange>
{ {
List<Instrument> notSync();
List<InstrumentChange> notSync();
} }

+ 9
- 9
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/service/impl/InstrumentServiceImpl.java View File

@ -2,7 +2,7 @@ package com.hxhq.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hxhq.common.EntityConstants; import com.hxhq.common.EntityConstants;
import com.hxhq.domain.Instrument;
import com.hxhq.domain.InstrumentChange;
import com.hxhq.domain.InstrumentPush; import com.hxhq.domain.InstrumentPush;
import com.hxhq.domain.SyncLog; import com.hxhq.domain.SyncLog;
import com.hxhq.domain.Yq; import com.hxhq.domain.Yq;
@ -28,7 +28,7 @@ import java.util.stream.Collectors;
* @description * @description
*/ */
@Service @Service
public class InstrumentServiceImpl extends ServiceImpl<InstrumentMapper, Instrument> implements InstrumentService {
public class InstrumentServiceImpl extends ServiceImpl<InstrumentMapper, InstrumentChange> implements InstrumentService {
@Resource @Resource
YqService yqService; YqService yqService;
@ -44,13 +44,13 @@ public class InstrumentServiceImpl extends ServiceImpl
@Override @Override
public void dataSync() { public void dataSync() {
List<Instrument> list = baseMapper.notSync();
List<InstrumentChange> list = baseMapper.notSync();
if (list == null || list.isEmpty()) { if (list == null || list.isEmpty()) {
return ; return ;
} }
//仪器 //仪器
List<Yq> sjList = changeToYq(list); List<Yq> sjList = changeToYq(list);
//这里sjList yq 里通过bh字段去更新已有数据如果没有相同的就新增该怎么处理
//这里sjList yq 里通过bh字段去更新已有数据如果没有相同的就新增
performUpsertByBh(sjList); performUpsertByBh(sjList);
//日志 //日志
@ -125,12 +125,12 @@ public class InstrumentServiceImpl extends ServiceImpl
System.out.println("批量更新 Yq 记录: " + recordsToUpdate.size() + " 条"); System.out.println("批量更新 Yq 记录: " + recordsToUpdate.size() + " 条");
} }
} }
private List<SyncLog> getLogList(List<Instrument> list) {
private List<SyncLog> getLogList(List<InstrumentChange> list) {
List<SyncLog> syncLogList = new ArrayList<>(); List<SyncLog> syncLogList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
list.forEach(item ->{ list.forEach(item ->{
SyncLog syncLog = new SyncLog(); SyncLog syncLog = new SyncLog();
syncLog.setSourceRecordId(item.getInstrumentId());
syncLog.setSourceRecordId(item.getInstrumentChangeId());
syncLog.setTargetSystem(EntityConstants.SYS_HXHQ); syncLog.setTargetSystem(EntityConstants.SYS_HXHQ);
syncLog.setSourceType(EntityConstants.LOG_INSTRUMENT); syncLog.setSourceType(EntityConstants.LOG_INSTRUMENT);
syncLog.setCreatedAt(now); syncLog.setCreatedAt(now);
@ -141,7 +141,7 @@ public class InstrumentServiceImpl extends ServiceImpl
return syncLogList; return syncLogList;
} }
// //
private List<Yq> changeToYq(List<Instrument> list) {
private List<Yq> changeToYq(List<InstrumentChange> list) {
List<Yq> yqList = new ArrayList<>(); List<Yq> yqList = new ArrayList<>();
list.forEach(item ->{ list.forEach(item ->{
Yq sj = new Yq(); Yq sj = new Yq();
@ -154,8 +154,8 @@ public class InstrumentServiceImpl extends ServiceImpl
//无来源默认为中间库 //无来源默认为中间库
sj.setLy(item.getSource()!=null?item.getSource():EntityConstants.SYS_STAGING_DATABASE); sj.setLy(item.getSource()!=null?item.getSource():EntityConstants.SYS_STAGING_DATABASE);
sj.setWc(item.getStorageConditions());
//温层 无此字段
// sj.setWc(item.getStorageConditions());
sj.setRemark(item.getRemark()); sj.setRemark(item.getRemark());
if (item.getOperationSign()!=null){ if (item.getOperationSign()!=null){
sj.setDelFlag(item.getOperationSign()==3?"1":"0"); sj.setDelFlag(item.getOperationSign()==3?"1":"0");

+ 46
- 8
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/service/impl/ReagentStockServiceImpl.java View File

@ -16,8 +16,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.xml.crypto.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -89,13 +91,17 @@ public class ReagentStockServiceImpl extends ServiceImpl
sj.setMc(item.getName()); sj.setMc(item.getName());
sj.setBh(item.getSn()); sj.setBh(item.getSn());
sj.setNd(item.getPurity()!=null?item.getPurity().toString():null);
sj.setNddw(item.getPurityUnit());
sj.setKc(item.getStockCount().toString());
sj.setKcdw(item.getStockUnit());
//浓度 没有浓度字段
// sj.setNd(item.getPurity()!=null?item.getPurity().toString():null);
// sj.setNddw(item.getPurityUnit());
//库存数量 库存数量-支持小数库存数量-
// sj.setKc(item.getStockCount().toString());
//库存单位 库存单位-支持小数库存单位-
// sj.setKcdw(item.getStockUnit());
sj.setGg(item.getSpecs()); sj.setGg(item.getSpecs());
//无来源默认为中间库 //无来源默认为中间库
sj.setLy(item.getSource()!=null?item.getSource():EntityConstants.SYS_STAGING_DATABASE);
sj.setLy(EntityConstants.SYS_STAGING_DATABASE);
//部门名称 //部门名称
sj.setSsbm(item.getDepartment()); sj.setSsbm(item.getDepartment());
//状态 开会讨论状态迁移都为1未入库 //状态 开会讨论状态迁移都为1未入库
@ -104,9 +110,17 @@ public class ReagentStockServiceImpl extends ServiceImpl
sj.setPh(item.getBatchNumber()); sj.setPh(item.getBatchNumber());
sj.setYxzq(item.getValidityPeriod());
sj.setYxzqdw(item.getValidityPeriodUnit());
sj.setSxr(TimeUtil.getDate(item.getExpiryDate()));
// 有效周期
// 长期有效
// 待定
// 有效期
// 失效期
// 复测日期
//
setYxzq(sj,item);
// sj.setYxzq();
// sj.setYxzqdw();
// sj.setSxr();
sj.setCcwz(item.getStorageLocation()); sj.setCcwz(item.getStorageLocation());
sj.setCctj(item.getStorageConditions()); sj.setCctj(item.getStorageConditions());
sj.setPzrq(TimeUtil.getDate(item.getConfigurationDate())); sj.setPzrq(TimeUtil.getDate(item.getConfigurationDate()));
@ -115,4 +129,28 @@ public class ReagentStockServiceImpl extends ServiceImpl
}); });
return sjList; return sjList;
} }
private void setYxzq(Sj sj, ReagentStock item) {
if (item.getValidityPeriod()==null){
return;
}
Date rq = TimeUtil.getDate(item.getValidityDate());
switch (item.getValidityPeriod()) {
case "失效期":
sj.setSxr(rq);
break;
case "有效期":
// sj.setYxzq();
case "复测日期":
break;
case "长期有效":
case "待定":
default:
// 保持 sxr = null
break;
}
}
} }

+ 0
- 45
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/util/DailyTask.java View File

@ -1,45 +0,0 @@
package com.hxhq.util;
/**
* @author zhangjing
* @date 2025/07/08 19:29
* @description 元数据定时
*/
import com.hxhq.service.ReagentStockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class DailyTask {
@Autowired
ReagentStockService reagentStockService;
// 北京时间
// @Scheduled(cron = "0 0 1 * * ?", zone = "Asia/Shanghai")
// public void executeAtOneAMInShanghai() {
// reagentStockService.dataSync();
// System.out.println("【北京时间】每天凌晨1点执行:" + new Date());
// }
// @Scheduled(cron = "0 0/5 * * * ?")
// public void executeEveryFiveMinutes() {
// metadataRecordService.uploadRecord();
// System.out.println("【每5分钟执行】当前时间:" + new Date());
// }
@Scheduled(cron = "0 * * * * ?")
public void executeEveryMinute() {
reagentStockService.dataSync();
System.out.println("【每分钟执行】当前时间:" + new Date());
}
// @Scheduled(cron = "0 */3 * * * ?")
// public void executeEveryThreeMinutes() {
// metadataRecordService.uploadRecord();
// System.out.println("【每3分钟执行】当前时间:" + new Date());
// }
}

+ 11
- 0
hxhq-modules/hxhq-integration/src/main/java/com/hxhq/util/TimeUtil.java View File

@ -1,5 +1,6 @@
package com.hxhq.util; package com.hxhq.util;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.Date; import java.util.Date;
@ -18,4 +19,14 @@ public class TimeUtil {
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
return date; return date;
}; };
public static Date getDate(LocalDate localDate){
if (localDate == null) {
return null;
}
// LocalDate 转为 LocalDateTime默认时间为 00:00:00
LocalDateTime localDateTime = localDate.atStartOfDay();
// 转换为 Date使用系统默认时区
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
};
} }

+ 1
- 1
hxhq-modules/hxhq-integration/src/main/resources/mapper/InstrumentMapper.xml View File

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hxhq.mapper.InstrumentMapper"> <mapper namespace="com.hxhq.mapper.InstrumentMapper">
<select id="notSync" resultType="com.hxhq.domain.Instrument">
<select id="notSync" resultType="com.hxhq.domain.InstrumentChange">
SELECT i.* SELECT i.*
FROM instrument i FROM instrument i
LEFT JOIN sync_log s LEFT JOIN sync_log s

Loading…
Cancel
Save