单独处理2017 数据集,在接收码上放心数据时,如果存在多次扫码的情况,对该药品追溯码做记录,并对处理状态做更新

This commit is contained in:
daichao 2025-06-24 17:29:55 +08:00
parent de104ebfe0
commit fd1999cd42
2 changed files with 29 additions and 15 deletions

View File

@ -1,13 +1,12 @@
package com.alihealth.d2d.provtest.domain; package com.alihealth.d2d.provtest.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/** /**
* <p> * <p>
* 药品追溯码多次扫码记录 * 药品追溯码多次扫码记录
@ -23,31 +22,29 @@ public class MultySacnCodeRecord implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** /**
* 药品追溯码 * 药品追溯码
*/ */
@TableId(value = "ypzsm", type = IdType.NONE)
private String ypzsm; private String ypzsm;
/** /**
* 数据处理标识1-已处理0-未处理 * 数据处理标识1-已处理0-未处理
*/ */
@TableField("handle_flag")
private Integer handleFlag; private Integer handleFlag;
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; @TableField("create_time")
private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; @TableField(value = "update_time", update = "now()", fill = FieldFill.UPDATE)
private Date updateTime;
/** /**
* 是否删除(0- 1-) * 是否删除(0- 1-)

View File

@ -1,21 +1,29 @@
package com.alihealth.d2d.provtest.service.handle; package com.alihealth.d2d.provtest.service.handle;
import com.alihealth.d2d.provtest.domain.DrugRetailAndUseApplyInfo; import com.alihealth.d2d.provtest.domain.DrugRetailAndUseApplyInfo;
import com.alihealth.d2d.provtest.domain.MultySacnCodeRecord;
import com.alihealth.d2d.provtest.entity.EventBody; import com.alihealth.d2d.provtest.entity.EventBody;
import com.alihealth.d2d.provtest.entity.InstanceDetail; import com.alihealth.d2d.provtest.entity.InstanceDetail;
import com.alihealth.d2d.provtest.entity.ItemDetail; import com.alihealth.d2d.provtest.entity.ItemDetail;
import com.alihealth.d2d.provtest.entity.VTTSEventS; import com.alihealth.d2d.provtest.entity.VTTSEventS;
import com.alihealth.d2d.provtest.service.IMultySacnCodeRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public abstract class EventData2017Handler implements EventDataHandler { public abstract class EventData2017Handler implements EventDataHandler {
@Autowired
private IMultySacnCodeRecordService iMultySacnCodeRecordService;
protected final Logger log = LoggerFactory.getLogger(getClass()); protected final Logger log = LoggerFactory.getLogger(getClass());
protected abstract Class<DrugRetailAndUseApplyInfo> getEntityClass(); protected abstract Class<DrugRetailAndUseApplyInfo> getEntityClass();
@ -59,11 +67,20 @@ public abstract class EventData2017Handler implements EventDataHandler {
if (!entities.isEmpty()) { if (!entities.isEmpty()) {
//对2017 药品使用与销售数据集进行单独处理如果出现重复的药品追溯码ypzsm需要做记录 //对2017 药品使用与销售数据集进行单独处理如果出现重复的药品追溯码ypzsm需要做记录
List<String> ypzsmList = entities.stream().map(entity -> entity.getYpzsm()).collect(Collectors.toList()); Set<String> ypzsmList = entities.stream().map(entity -> entity.getYpzsm()).collect(Collectors.toSet());
List<DrugRetailAndUseApplyInfo> existedList = getService().getBaseMapper().selectList(new QueryWrapper<DrugRetailAndUseApplyInfo>().lambda() List<DrugRetailAndUseApplyInfo> existedList = getService().getBaseMapper().selectList(new QueryWrapper<DrugRetailAndUseApplyInfo>().lambda()
.in(DrugRetailAndUseApplyInfo::getYpzsm, ypzsmList) .in(DrugRetailAndUseApplyInfo::getYpzsm, ypzsmList)
); );
if (!CollectionUtils.isEmpty(existedList)) {
List<MultySacnCodeRecord> multySacnCodeRecordList = new ArrayList<>(existedList.size());
for (DrugRetailAndUseApplyInfo itemInfo : existedList) {
MultySacnCodeRecord multySacnCodeRecord = new MultySacnCodeRecord();
multySacnCodeRecord.setYpzsm(itemInfo.getYpzsm());
multySacnCodeRecord.setHandleFlag(0);
multySacnCodeRecordList.add(multySacnCodeRecord);
}
iMultySacnCodeRecordService.saveOrUpdateBatch(multySacnCodeRecordList);
}
getService().saveBatch(entities); getService().saveBatch(entities);
} }
} }