药品层级换算,插入等

dev_unify
yewj 8 months ago
parent 38165b4cc8
commit 53aa5e4c85

@ -0,0 +1,19 @@
package com.glxp.api.dao.thrsys;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.thrsys.ThirdAliDrug;
import com.glxp.api.req.thrsys.ThirdAliDrugRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ThirdAliDrugMapper extends BaseMapper<ThirdAliDrug> {
int selectDrugsByNameCodes(@Param("nameCode") String nameCode);
int saveOrUpdateBatch(@Param("list") List<ThirdAliDrug> list);
List<ThirdAliDrug> filterList(ThirdAliDrugRequest thirdAliDrug);
}

@ -0,0 +1,145 @@
package com.glxp.api.entity.thrsys;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@ApiModel(description = "third_ali_drug")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "third_ali_drug")
public class ThirdAliDrug implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "`type`")
@ApiModelProperty(value = "药品类型")
private String type;
/**
*
*/
@TableField(value = "manufacturer")
@ApiModelProperty(value = "生产企业")
private String manufacturer;
/**
*
*/
@TableField(value = "cpmctymc")
@ApiModelProperty(value = "产品名称通用名称")
private String cpmctymc;
/**
*
*/
@TableField(value = "form")
@ApiModelProperty(value = "剂型")
private String form;
/**
*
*/
@TableField(value = "formSpec")
@ApiModelProperty(value = "剂型规格")
private String formSpec;
/**
*
*/
@TableField(value = "bzgg")
@ApiModelProperty(value = "包装规格")
private String bzgg;
/**
*
*/
@TableField(value = "spmc")
@ApiModelProperty(value = "商品名称")
private String spmc;
/**
*
*/
@TableField(value = "nameCode")
@ApiModelProperty(value = "层级标识")
private String nameCode;
/**
*
*/
@TableField(value = "packRatio")
@ApiModelProperty(value = "包装比例")
private String packRatio;
/**
*
*/
@TableField(value = "packLevel")
@ApiModelProperty(value = "包装级别")
private String packLevel;
/**
*
*/
@TableField(value = "erpId")
@ApiModelProperty(value = "包装级别")
private String erpId;
/**
*
*/
@TableField(value = "approvalNum")
@ApiModelProperty(value = "批准文号")
private String approvalNum;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
public ThirdAliDrug(String type, String manufacturer, String cpmctymc, String form, String formSpec, String bzgg, String approvalNum, String spmc, String nameCode, String packRatio, String packLevel, Date createTime, Date updateTime) {
this.type = type;
this.manufacturer = manufacturer;
this.cpmctymc = cpmctymc;
this.form = form;
this.formSpec = formSpec;
this.bzgg = bzgg;
this.spmc = spmc;
this.nameCode = nameCode;
this.packRatio = packRatio;
this.packLevel = packLevel;
this.createTime = createTime;
this.updateTime = updateTime;
this.approvalNum = approvalNum;
}
}

@ -0,0 +1,112 @@
package com.glxp.api.req.thrsys;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.glxp.api.util.page.ListPageRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class ThirdAliDrugRequest extends ListPageRequest {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "`type`")
@ApiModelProperty(value = "药品类型")
private String type;
/**
*
*/
@TableField(value = "manufacturer")
@ApiModelProperty(value = "生产企业")
private String manufacturer;
/**
*
*/
@TableField(value = "cpmctymc")
@ApiModelProperty(value = "产品名称通用名称")
private String cpmctymc;
/**
*
*/
@TableField(value = "form")
@ApiModelProperty(value = "剂型")
private String form;
/**
*
*/
@TableField(value = "formSpec")
@ApiModelProperty(value = "剂型规格")
private String formSpec;
/**
*
*/
@TableField(value = "bzgg")
@ApiModelProperty(value = "包装规格")
private String bzgg;
/**
*
*/
@TableField(value = "spmc")
@ApiModelProperty(value = "商品名称")
private String spmc;
/**
*
*/
@TableField(value = "nameCode")
@ApiModelProperty(value = "层级标识")
private String nameCode;
/**
*
*/
@TableField(value = "packRatio")
@ApiModelProperty(value = "包装比例")
private String packRatio;
/**
*
*/
@TableField(value = "packLevel")
@ApiModelProperty(value = "包装级别")
private String packLevel;
/**
*
*/
@TableField(value = "erpId")
@ApiModelProperty(value = "包装级别")
private String erpId;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
private String approvalNum;
}

@ -1,16 +1,13 @@
package com.glxp.api.service.basic;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.thrsys.BasicInsDrugEntity;
import com.glxp.api.entity.thrsys.BasicInsMaterialEntity;
import com.glxp.api.entity.thrsys.YbDrug;
import com.glxp.api.entity.thrsys.*;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.YbDrugDetailFilterRequest;
import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest;
import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest;
import com.glxp.api.service.thrsys.BasicInsDrugService;
import com.glxp.api.service.thrsys.BasicInsMaterialService;
import com.glxp.api.service.thrsys.YbDrugService;
import com.glxp.api.service.thrsys.*;
import com.glxp.api.util.DimaUtil;
import com.glxp.api.util.IntUtil;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.aspectj.weaver.ast.Var;
@ -23,13 +20,11 @@ import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.http.NmpaUdiClient;
import com.glxp.api.req.basic.UdiCombineRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
@ -255,6 +250,9 @@ public class UdiContrastService {
.orElse(null);
}
@Resource
ThirdAliDrugService thirdAliDrugService;
public void createOnlyMainId(String mainId) {
FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest();
filterThrProductsRequest.setCode(mainId);
@ -282,18 +280,20 @@ public class UdiContrastService {
ybHcflDetailFilterRequest.setPage(1);
ybHcflDetailFilterRequest.setGoodsCode(thrProductsEntity.getYbbm());
List<YbDrug> list = ybDrugService.getList(ybHcflDetailFilterRequest);
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(thrProductsEntity, udiProductEntity);
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
if (list != null && list.size() > 0) {
YbDrug ybDrug = list.get(0);
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
// udiProductEntity.setNameCode(thrProductsEntity.getCode());
udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook());
udiProductEntity.setZczbhhzbapzbh(ybDrug.getApprovalCode());
udiProductEntity.setCpmctymc(ybDrug.getRegisteredProductName());
udiProductEntity.setSpmc(ybDrug.getGoodsName());
udiProductEntity.setBzgg(String.valueOf(ybDrug.getFactor())+ ybDrug.getMinUnit() + "/" + ybDrug.getUnit());
udiProductEntity.setBzgg(String.valueOf(ybDrug.getFactor()) + ybDrug.getMinUnit() + "/" + ybDrug.getUnit());
udiProductEntity.setMatrial(ybDrug.getMaterialName());
udiProductEntity.setPackMatrial(ybDrug.getMaterialName());
udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType()));
@ -308,8 +308,6 @@ public class UdiContrastService {
//商品条码 essentialDrugMarkName sptm
// udiProductEntity.setSptm(ybDrug.getBusinessLicense());
udiProductEntity.setPrepnUnit(ybDrug.getRealityMedicinemodel());
}
udiProductEntity.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity.setDiType(1);
udiProductEntity.setScbssfbhph("是");
@ -323,12 +321,33 @@ public class UdiContrastService {
if (StrUtil.isEmpty(udiProductEntity.getPrice())) {
udiProductEntity.setPrice("0.00");
}
udiProductEntity.setUpdateTime(new Date());
udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity);
udiProductService.insertUdiInfo(udiProductEntity);
List<ThirdAliDrug> thirdAliDrugList = thirdAliDrugService.findByByApproved(ybDrug.getApprovalCode());
if (CollUtil.isNotEmpty(thirdAliDrugList)) {
for (int i = 0; i < thirdAliDrugList.size(); i++) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i);
List<Integer> integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio());
udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel());
udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1));
udiProductEntity.setNameCode(thirdAliDrug.getNameCode());
if (IntUtil.value(thirdAliDrug.getPackLevel()) == 1) {
udiProductEntity.setXjdw(ybDrug.getMinUnit());
udiProductEntity.setBhxjsl(ybDrug.getFactor());
}
udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4);
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity);
}
} else {
udiProductService.insertUdiInfo(udiProductEntity);
}
}
// setLevel(udiRelevanceEntity.getUuid());
UdiProductEntity byUuid = udiProductService.findByUuid(udiRelevanceEntity.getUuid());
udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, byUuid);
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
udiProductService.updateLevelCount(udiRelevanceEntity);
} else {
//器械
ThrInsMaterialFeeRequest request = new ThrInsMaterialFeeRequest();
@ -352,13 +371,14 @@ public class UdiContrastService {
udiProductEntity.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD);
udiProductEntity.setDiType(1);
udiProductEntity.setPackLevel(1 + "");
udiProductEntity.setScbssfbhph("是");
udiProductEntity.setScbssfbhscrq("是");
udiProductEntity.setScbssfbhsxrq("是");
udiProductEntity.setScbssfbhxlh("否");
udiProductEntity.setPackLevel(1 + "");
udiProductEntity.setProductsType(thrProductsEntity.getProductType());
udiProductEntity.setRequireScanCode(0);
udiProductEntity.setUpdateTime(new Date());
if (StrUtil.isEmpty(udiProductEntity.getPrice())) {
udiProductEntity.setPrice(null);
}
@ -416,6 +436,7 @@ public class UdiContrastService {
}
public Boolean insertProduct(ThrProductsEntity thrProductsEntity, BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity) {
//没有医保编码
UdiProductEntity udiProductEntity = new UdiProductEntity();

@ -0,0 +1,244 @@
package com.glxp.api.service.thrsys;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.thrsys.ThirdAliDrugMapper;
import com.glxp.api.entity.thrsys.ThirdAliDrug;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.thrsys.ThirdAliDrugRequest;
import com.glxp.api.service.auth.CustomerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
@Service
@Slf4j
public class ThirdAliDrugService extends ServiceImpl<ThirdAliDrugMapper, ThirdAliDrug> {
@Resource
private CustomerService customerService;
//解析TXT获取对应的对象列表
@Transactional(rollbackFor = Exception.class)
public void txtUpload(MultipartFile file) {
try {
String fileName = file.getOriginalFilename();
String suffix = FileUtil.getSuffix(fileName);
if (!"txt".equals(suffix)) {
throw new JsonException("仅支持TXT文件类型错误" + suffix);
}
log.info(file.getSize() + "文件长度");
if (file.getSize() > 100 * 1024 * 1024) {
throw new JsonException("上传文件超过100M");
}
List<ThirdAliDrug> thirdAliDrugs = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new InputStreamReader(file.getInputStream()))) {
String line;
while ((line = br.readLine()) != null) {
String[] fields = fillEmptyParts(line);
Date createTime = new Date();
// if (fields.length == 9) {
// ThirdAliDrug medicine = new ThirdAliDrug(
// fields[0].trim(),
// fields[1].trim(),
// fields[2].trim(),
// fields[3].trim(),
// fields[4].trim(),
// fields[5].trim(),
// fields[5].trim(),
// fields[5].trim(),
// fields[6].trim(),
// fields[7].trim(),
// fields[8].trim(),
// createTime,
// createTime
// );
//
// if (StrUtil.isNotEmpty(medicine.getNameCode())) {
// int i = this.baseMapper.selectDrugsByNameCodes(medicine.getNameCode());
// if (i == 0) {
// medicine.setErpId(customerId);
// thirdAliDrugs.add(medicine);
// if (CollUtil.isNotEmpty(thirdAliDrugs) && thirdAliDrugs.size() >= 500) {
// this.baseMapper.saveOrUpdateBatch(thirdAliDrugs);
// thirdAliDrugs.clear();
// }
// }
// }
// }else
// if (fields.length == 10) {
// ThirdAliDrug medicine = new ThirdAliDrug(
// fields[0].trim(),
// fields[1].trim(),
// fields[2].trim(),
// fields[3].trim(),
// fields[4].trim(),
// fields[4].trim(),
// fields[6].trim(),
// fields[6].trim(),
// fields[7].trim(),
// fields[8].trim(),
// fields[9].trim(),
// createTime,
// createTime
// );
//
// if (StrUtil.isNotEmpty(medicine.getNameCode())) {
// int i = this.baseMapper.selectDrugsByNameCodes(medicine.getNameCode());
// if (i == 0) {
// medicine.setErpId(customerId);
// thirdAliDrugs.add(medicine);
// if (CollUtil.isNotEmpty(thirdAliDrugs) && thirdAliDrugs.size() >= 500) {
// this.baseMapper.saveOrUpdateBatch(thirdAliDrugs);
// thirdAliDrugs.clear();
// }
// }
// }
// }else
if (fields.length == 11) {
ThirdAliDrug medicine = new ThirdAliDrug(
fields[0].trim(),
fields[1].trim(),
fields[2].trim(),
fields[3].trim(),
fields[4].trim(),
fields[5].trim(),
fields[6].trim(),
fields[7].trim(),
fields[8].trim(),
fields[9].trim(),
fields[10].trim(),
createTime,
createTime
);
if (StrUtil.isNotEmpty(medicine.getNameCode())) {
int i = this.baseMapper.selectDrugsByNameCodes(medicine.getNameCode());
if (i == 0) {
// medicine.setErpId(customerId);
thirdAliDrugs.add(medicine);
if (CollUtil.isNotEmpty(thirdAliDrugs) && thirdAliDrugs.size() >= 500) {
this.baseMapper.saveOrUpdateBatch(thirdAliDrugs);
thirdAliDrugs.clear();
}
}
}
}
// else if (fields.length > 11) {
// ThirdAliDrug medicine = new ThirdAliDrug(
// fields[0].trim(),
// fields[1].trim(),
// fields[2].trim(),
// fields[3].trim(),
// fields[4].trim(),
// fields[5].trim(),
// fields[7].trim(),
// fields[8].trim(),
// fields[9].trim(),
// fields[10].trim(),
// fields[11].trim(),
// createTime,
// createTime
// );
//
// if (StrUtil.isNotEmpty(medicine.getNameCode())) {
// int i = this.baseMapper.selectDrugsByNameCodes(medicine.getNameCode());
// if (i == 0) {
// thirdAliDrugs.add(medicine);
// if (CollUtil.isNotEmpty(thirdAliDrugs) && thirdAliDrugs.size() >= 500) {
// this.baseMapper.saveOrUpdateBatch(thirdAliDrugs);
// thirdAliDrugs.clear();
// }
// }
// }
// }
}
} catch (IOException e) {
throw new JsonException("上传失败:" + "标识重复");
}
if (CollUtil.isNotEmpty(thirdAliDrugs)) {
this.baseMapper.saveOrUpdateBatch(thirdAliDrugs);
}
} catch (Exception e) {
throw new JsonException("上传失败:" + e.getMessage());
}
}
public static String[] fillEmptyParts(String input) {
// Step 1: Split the input string by commas
String[] parts = input.split(",");
// Step 2: Count the number of commas (which will be one less than the number of parts we want)
// But we need to account for leading/trailing commas as well, so we use a different approach
int commaCount = 0;
boolean inEmptyPart = true; // To handle leading commas
for (char c : input.toCharArray()) {
if (c == ',') {
commaCount++;
inEmptyPart = true; // Next part will be empty until we find non-comma characters
} else if (inEmptyPart && c != ' ') {
inEmptyPart = false; // We found the start of a non-empty part
}
}
// If the input ends with a comma, we need an extra empty part
// But we also need to handle the case where the input is just commas (e.g., ",,,")
// So we use Math.max to ensure we at least have one part if the input is non-empty
int desiredArraySize = Math.max(commaCount + 1, parts.length);
// Step 3: Create a new array with the desired size and fill it with empty strings
String[] filledParts = new String[desiredArraySize];
Arrays.fill(filledParts, "");
// Step 4: Copy non-empty parts from the original array to the new array
int index = 0;
for (String part : parts) {
if (!part.trim().isEmpty()) {
filledParts[index++] = part.trim(); // Trim any surrounding spaces for cleanliness
}
// Note: We don't increment index for empty parts because those are already represented by empty strings in filledParts
}
// Note: At this point, if there were more commas than non-empty parts, the remaining elements in filledParts will be empty strings.
// If there were leading/trailing commas or multiple consecutive commas, those will also be represented by empty strings.
return filledParts;
}
public List<ThirdAliDrug> filterList(ThirdAliDrugRequest thirdAliDrug) {
if (thirdAliDrug == null) {
return Collections.emptyList();
}
if (thirdAliDrug.getPage() != null) {
int offset = (thirdAliDrug.getPage() - 1) * thirdAliDrug.getLimit();
PageHelper.offsetPage(offset, thirdAliDrug.getLimit());
}
return this.baseMapper.filterList(thirdAliDrug);
}
public List<ThirdAliDrug> findByByApproved(String approvalNum) {
return this.baseMapper.selectList(new LambdaQueryWrapper<ThirdAliDrug>().eq(ThirdAliDrug::getApprovalNum, approvalNum));
}
}

@ -0,0 +1,37 @@
package com.glxp.api.util;
import java.util.ArrayList;
import java.util.List;
/**
* @author AnthonyYwj
* @date 2024/11/12
*/
public class DimaUtil {
public static List<Integer> calculateLevels(String ratio) {
// 分割比例字符串并转成整数数组
String[] parts = ratio.split(":");
int[] levels = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
levels[i] = Integer.parseInt(parts[i]);
}
// 存储每层级的倍数关系
List<Integer> calculatedLevels = new ArrayList<>();
for (int i = levels.length - 1; i > 0; i--) {
calculatedLevels.add(levels[i] / levels[i - 1]);
}
// 最后加上最小单位(第一层级为 1
calculatedLevels.add(1);
// 结果倒序
List<Integer> reversed = new ArrayList<>();
for (int i = calculatedLevels.size() - 1; i >= 0; i--) {
reversed.add(calculatedLevels.get(i));
}
return reversed;
}
}

@ -4622,39 +4622,47 @@ CREATE TABLE IF NOT EXISTS `sys_workplace_freight`
COLLATE = utf8mb4_0900_ai_ci
ROW_FORMAT = Dynamic;
CREATE TABLE IF NOT EXISTS `rel_code_batch` (
`id` int NOT NULL AUTO_INCREMENT,
`productCode` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '产品编码',
`subTypeNo` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '类型编码',
`cascadeRatio` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '包装比例',
`packageSpec` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '包装规格',
`comment` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
`batchNo` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '批次号',
`madeDate` datetime DEFAULT NULL COMMENT '生产日期',
`validateDate` datetime DEFAULT NULL COMMENT '失效日期',
`workShop` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '生产车间',
`lineName` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '生产线',
`lineManager` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '负责人',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
`parentCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '父级码',
`uploadFlagUp` tinyint(1) DEFAULT '0' COMMENT '0 未上传 1已上传 2上传失败',
`uploadFlagDown` tinyint(1) DEFAULT '0' COMMENT '0 未上传 1已上传 2上传失败',
`erpId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '供应商ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE IF NOT EXISTS `rel_code_detail` (
`id` int NOT NULL AUTO_INCREMENT,
`curCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前条码',
`packLayer` tinyint DEFAULT NULL COMMENT '包装级别',
`parentCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '父级码',
`flag` tinyint DEFAULT NULL COMMENT '状态',
`batchIdFk` int DEFAULT NULL COMMENT '产品批次ID外键',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE IF NOT EXISTS `rel_code_batch`
(
`id` int NOT NULL AUTO_INCREMENT,
`productCode` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '产品编码',
`subTypeNo` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '类型编码',
`cascadeRatio` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '包装比例',
`packageSpec` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '包装规格',
`comment` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
`batchNo` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '批次号',
`madeDate` datetime DEFAULT NULL COMMENT '生产日期',
`validateDate` datetime DEFAULT NULL COMMENT '失效日期',
`workShop` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '生产车间',
`lineName` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '生产线',
`lineManager` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '负责人',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
`parentCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '父级码',
`uploadFlagUp` tinyint(1) DEFAULT '0' COMMENT '0 未上传 1已上传 2上传失败',
`uploadFlagDown` tinyint(1) DEFAULT '0' COMMENT '0 未上传 1已上传 2上传失败',
`erpId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '供应商ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
CREATE TABLE IF NOT EXISTS `rel_code_detail`
(
`id` int NOT NULL AUTO_INCREMENT,
`curCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前条码',
`packLayer` tinyint DEFAULT NULL COMMENT '包装级别',
`parentCode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '父级码',
`flag` tinyint DEFAULT NULL COMMENT '状态',
`batchIdFk` int DEFAULT NULL COMMENT '产品批次ID外键',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'layer',
'int NULL DEFAULT NULL COMMENT ''层级标记''',
@ -4791,3 +4799,29 @@ CALL Pro_Temp_ColumnWork('rel_code_batch', 'threeLevelCount',
CALL Pro_Temp_ColumnWork('basic_products', 'detailSort',
' tinyint DEFAULT NULL COMMENT ''明细分类''',
1);
CREATE TABLE IF NOT EXISTS `third_ali_drug`
(
` id ` int NOT NULL AUTO_INCREMENT,
` type ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '药品类型',
` manufacturer ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生产企业',
` cpmctymc ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品名称通用名称',
` form ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '剂型',
` formSpec ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '剂型规格',
` bzgg ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '包装规格',
` spmc ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商品名称',
` nameCode ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '层级标识',
` packRatio ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '包装比例',
` packLevel ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '包装级别',
` createTime ` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
` updateTime ` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
` erpId ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
` approvalNum ` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '批准文号',
PRIMARY KEY (` id `) USING BTREE,
UNIQUE INDEX ` nameCode ` (` nameCode `) USING BTREE,
INDEX ` approvalNum ` (` approvalNum `) USING BTREE,
INDEX ` cpmctymc ` (` cpmctymc `) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 8052
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
ROW_FORMAT = Dynamic;
Loading…
Cancel
Save