单独处理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;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 药品追溯码多次扫码记录
@ -23,31 +22,29 @@ public class MultySacnCodeRecord implements Serializable {
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;
/**
* 数据处理标识1-已处理0-未处理
*/
@TableField("handle_flag")
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-)

View File

@ -1,21 +1,29 @@
package com.alihealth.d2d.provtest.service.handle;
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.InstanceDetail;
import com.alihealth.d2d.provtest.entity.ItemDetail;
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.extension.service.IService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public abstract class EventData2017Handler implements EventDataHandler {
@Autowired
private IMultySacnCodeRecordService iMultySacnCodeRecordService;
protected final Logger log = LoggerFactory.getLogger(getClass());
protected abstract Class<DrugRetailAndUseApplyInfo> getEntityClass();
@ -59,11 +67,20 @@ public abstract class EventData2017Handler implements EventDataHandler {
if (!entities.isEmpty()) {
//对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()
.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);
}
}