器械拆零问题

dev_unify
yewj 6 months ago
parent dea6b0a780
commit 36eb5ad134

@ -233,7 +233,6 @@ public class IoSplitCodeEntity implements Serializable {
@ApiModelProperty(value = "上货方式1:拆零2:整取")
private Integer fifoSplit;
@TableField(exist = false)
private String productName;
@TableField(exist = false)
@ -246,8 +245,11 @@ public class IoSplitCodeEntity implements Serializable {
private String measname;
@TableField(exist = false)
private String manufactory;
@TableField(exist = false)
private String ybbm;
// /**
// * 医保编码,组套编码
// */
// @TableField(value = "ybbm")
// private String ybbm;
private static final long serialVersionUID = 1L;

@ -219,7 +219,11 @@ public class IoSplitFifoCodeEntity implements Serializable {
*/
@TableField(value = "workPlaceQueueCode")
private String workPlaceQueueCode;
// /**
// * 医保编码,组套编码
// */
// @TableField(value = "ybbm")
// private String ybbm;
private static final long serialVersionUID = 1L;

@ -3,9 +3,11 @@ package com.glxp.api.service.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.UdiEntity;
@ -25,10 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -115,6 +114,16 @@ public class UdiRelevanceService extends ServiceImpl<UdiRelevanceDao, UdiRelevan
return udiRelevanceResponses;
}
public UdiRelevanceResponse selectByLevelRelId(String relId) {
if (StrUtil.isEmpty(relId))
return null;
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(Long.parseLong(relId));
filterUdiRelRequest.setPackLevel("1");
UdiRelevanceResponse udiRelevanceResponses = selectOneUdi(filterUdiRelRequest);
return udiRelevanceResponses;
}
public List<UdiRelevanceResponse> selectAllByNameCode(String nameCode, String unitFk) {
List<UdiRelevanceResponse> udiRelevanceResponses;
@ -512,5 +521,28 @@ public class UdiRelevanceService extends ServiceImpl<UdiRelevanceDao, UdiRelevan
return IntUtil.value(udiRelevanceEntity.getPurType());
}
@Resource
private BasicProductsDao basicProductsDao;
public List<Long> selectByCheckCode(String checkCode) {
LambdaQueryWrapper<BasicProductsEntity> exactMatchWrapper = new LambdaQueryWrapper<>();
exactMatchWrapper.eq(BasicProductsEntity::getYbbm, checkCode);
List<BasicProductsEntity> exactMatches = basicProductsDao.selectList(exactMatchWrapper);
if (exactMatches.isEmpty()) {
// 2. 如果没有完全匹配则查询前20位匹配的情况
LambdaQueryWrapper<BasicProductsEntity> prefixMatchWrapper = new LambdaQueryWrapper<>();
prefixMatchWrapper.apply("LEFT(ybbm, 20) = LEFT({0}, 20)", checkCode);
exactMatches = basicProductsDao.selectList(prefixMatchWrapper);
}
if (CollUtil.isNotEmpty(exactMatches)) {
List<Long> relIds = udiRelevanceDao.selectList(new LambdaQueryWrapper<UdiRelevanceEntity>()
.in(UdiRelevanceEntity::getUuid, exactMatches.stream().map(BasicProductsEntity::getUuid).collect(Collectors.toList()))
).stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList());
return relIds;
} else {
return new ArrayList<>();
}
}
}

@ -664,7 +664,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
if (StrUtil.isNotEmpty(collectOrderBiz.getCheckCode())) {
if (StrUtil.emptyIfNull(collectOrderBiz.getCheckCode()).contains(StrUtil.emptyIfNull(udiRelevanceResponse.getYbbm()))) {
if (StrUtil.emptyIfNull(udiRelevanceResponse.getYbbm()).contains(StrUtil.emptyIfNull(collectOrderBiz.getCheckCode()))) {
collectOrderBiz.setRelId(udiRelevanceResponse.getId());
return collectOrderBiz;
}

@ -117,19 +117,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
@Resource
UdiCalCountUtil udiCalCountUtil;
@Resource
IBasicBussinessTypeService bussinessTypeService;
@Resource
private GennerOrderUtils gennerOrderUtils;
@Resource
private IoCodeTempDao codesTempDao;
@Resource
IoAddInoutService addInoutService;
@Resource
@Lazy
IoCheckInoutService ioCheckInoutService;
@Resource
private ErpBasicClient erpBasicClient;
IoSplitQxService splitQxService;
@Resource
IoSplitCodeService splitCodeService;
@Resource
@ -863,7 +851,12 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
}
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
} else {
splitCodeService.finishAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
if (sysWorkplaceDocumentEntity.getDocumentTypeCode().startsWith("QXCF")) {
splitQxService.finishQxAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
} else {
splitCodeService.finishAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
}
}
//插入备用表

@ -123,7 +123,10 @@ public class ThrOrderDownload implements IDownload {
if (exactMatches.isEmpty()) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getUuid, exactMatches.get(0).getUuid()).last("limit 1"));
// if (udiRelevanceEntity != null) {
// collectOrderBiz.setRelId(udiRelevanceEntity.getId());
// }
} else {
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1"));
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {

@ -55,6 +55,21 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoSplitCodeService splitCodeService;
@Resource
IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
@Resource
IoSplitFifoInvService splitFifoInvService;
@Resource
SysWorkplacePutRelService workplacePutRelService;
public List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest) {
if (splitCodeRequest == null) {
return Collections.emptyList();
@ -203,14 +218,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
collectOrderBizService.updateById(collectOrderBiz);
}
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoSplitCodeService splitCodeService;
@Resource
IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
@Transactional(rollbackFor = Exception.class)
public void finishAutoTagCode(IoCollectOrder collectOrder, Boolean isAuto, String queueCode) {
@ -391,6 +398,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
}
@Resource
IoCollectOrderService collectOrderService;
@ -515,8 +523,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
@Resource
SysWorkplacePutRelService workplacePutRelService;
/**
*
@ -574,8 +580,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
}
@Resource
IoSplitFifoInvService splitFifoInvService;
/**
*

@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.auth.SysWorkplaceDao;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.collect.IoCollectOrderBizMapper;
import com.glxp.api.dao.collect.IoCollectOrderMapper;
import com.glxp.api.dao.inout.IoSplitFifoCodeMapper;
import com.glxp.api.dao.inout.IoSplitFifoInvMapper;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.SysWorkplaceQueue;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
@ -69,6 +72,52 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
return splitFifoCodeEntities;
}
@Resource
BasicProductsDao basicProductsDao;
@Resource
UdiRelevanceDao udiRelevanceDao;
public List<IoSplitFifoCodeEntity> findByCheckCode(Long workPlaceCode, String ybbm, String batchNo, String queueCode) {
LambdaQueryWrapper<BasicProductsEntity> exactMatchWrapper = new LambdaQueryWrapper<>();
exactMatchWrapper.eq(BasicProductsEntity::getYbbm, ybbm);
List<BasicProductsEntity> exactMatches = basicProductsDao.selectList(exactMatchWrapper);
if (exactMatches.isEmpty()) {
// 2. 如果没有完全匹配则查询前20位匹配的情况
LambdaQueryWrapper<BasicProductsEntity> prefixMatchWrapper = new LambdaQueryWrapper<>();
prefixMatchWrapper.apply("LEFT(ybbm, 20) = LEFT({0}, 20)", ybbm);
exactMatches = basicProductsDao.selectList(prefixMatchWrapper);
}
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(exactMatches)) {
List<Long> relIds = udiRelevanceDao.selectList(new LambdaQueryWrapper<UdiRelevanceEntity>()
.in(UdiRelevanceEntity::getUuid, exactMatches.stream().map(BasicProductsEntity::getUuid).collect(Collectors.toList()))
).stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(relIds)){
for (Long relId : relIds) {
List<IoSplitFifoCodeEntity> temps =
list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode)
.eq(IoSplitFifoCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.eq(StrUtil.isNotEmpty(queueCode), IoSplitFifoCodeEntity::getWorkPlaceQueueCode, queueCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
splitFifoCodeEntities.addAll(temps);
}
}
}
// 暂时不穿todo
// .eq(StrUtil.isNotEmpty(busType), IoSplitFifoCodeEntity::getBusType, busType)
return splitFifoCodeEntities;
}
public List<IoSplitCodeResponse> filterGroupList(IoSplitFifoCodeRequest splitFifoCodeRequest) {
if (splitFifoCodeRequest == null) {
return Collections.emptyList();

@ -7,10 +7,8 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.basic.SysWorkplaceLayer;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.SysWorkplaceQueue;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.IoSplitFifoInvRel;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
@ -18,10 +16,12 @@ import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
import com.glxp.api.req.inout.IoSplitFifoInvRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoSplitInvResponse;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.basic.SysWorkplaceLayerService;
import com.glxp.api.service.basic.SysWorkplaceQueueService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.IoSplitFifoInvRelService;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
import com.glxp.api.util.IntUtil;
@ -48,6 +48,8 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
IoSplitFifoCodeService splitFifoCodeService;
@Resource
SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
UdiRelevanceService udiRelevanceService;
/**
*
@ -94,6 +96,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode());
splitCodeEntity.setWorkPlaceQueueCode(orderEntity.getWorkPlaceQueueCode());
splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(codeEntity.getRelId() + "");
// if (udiRelevanceResponse != null) {
// splitCodeEntity.setYbbm(udiRelevanceResponse.getYbbm());
// }
splitCodeEntity.setBusType(orderEntity.getSplitBusType());
index++;
splitCodeEntity.setInBactchNo(System.currentTimeMillis() + index + "");

@ -0,0 +1,483 @@
package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.glxp.api.dao.inout.IoSplitCodeMapper;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.*;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.*;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @author AnthonyYwj
* @date 2024/12/24
*/
@Service
public class IoSplitQxService {
@Resource
IoSplitCodeMapper splitCodeMapper;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoSplitCodeService splitCodeService;
@Resource
IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
@Resource
SysWorkplacePutRelService workplacePutRelService;
@Resource
IoSplitFifoInvService splitFifoInvService;
@Transactional(rollbackFor = Exception.class)
public void finishQxAutoTagCode(IoCollectOrder collectOrder, Boolean isAuto, String queueCode) {
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode);
if (splitFifoCodeEntity != null) {
collectOrderCodeMan.setRemoveFlag(true);
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount());
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
}
} else {
//队列码数量大于扫码数量更新数量(一般指无序列号)
// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderCodeMan.getRelId());
filterUdiRelRequest.setPackLevel("1");
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.id(splitFifoCodeEntity.getId())
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
.totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount)
.build());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount);
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - removeCount;
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
}
}
}
//判断拆零表里是否存在,如果存在则剔除
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode);
if (splitCodeEntity != null && IntUtil.value(splitCodeEntity.getRemainCount()) > 0) {
if (IntUtil.value(splitCodeEntity.getRemainCount()) > IntUtil.value(collectOrderCodeMan.getScanActCount())) {
splitCodeEntity.setRemainCount(IntUtil.value(splitCodeEntity.getRemainCount()) - IntUtil.value(collectOrderCodeMan.getScanActCount()));
} else {
splitCodeEntity.setRemainCount(0);
}
collectOrderCodeMan.setSplitFlag(true);
splitCodeService.updateById(splitCodeEntity);
}
}
}
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
UdiRelevanceResponse udiRelevanceResponse = null;
if (StrUtil.isNotEmpty(collectOrderBiz.getCheckCode())) {
List<Long> relIds = udiRelevanceService.selectByCheckCode(collectOrderBiz.getCheckCode());
if (CollUtil.isNotEmpty(relIds)) {
udiRelevanceResponse = udiRelevanceService.selectByLevelRelId(relIds.get(0) + "");
}
} else {
udiRelevanceResponse = udiRelevanceService.selectByLevelRelId(collectOrderBiz.getRelId() + "");
}
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 0) {
collectOrderBiz.setUnTagCount(unTagCount);
} else {
collectOrderBiz.setTagStatus(3);
//手动扫码时涉及到拆零时,把拆零剩余数量插入至拆零表里
if (unTagCount < 0) {
List<IoCollectOrderCodeMan> newList = filterCode(collectOrderCodeMEN, collectOrderBiz, udiRelevanceResponse);
if (CollUtil.isNotEmpty(newList)) {
for (IoCollectOrderCodeMan item : newList) {
if (IntUtil.value(item.getSplitFlag())) {
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(item.getUdiCode(), putWorkPlaceCode);
splitCodeEntity.setRemainCount(-unTagCount);
splitCodeService.updateById(splitCodeEntity);
} else {
IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(item.getUdiCode())
.errUdiCode(item.getUdiCode())
.orderId(item.getOrderIdFk())
.action(collectOrder.getBusType())
.relId(item.getRelId())
.nameCode(item.getNameCode())
.batchNo(item.getBatchNo())
.produceDate(item.getProductDate())
.expireDate(item.getExpireDate())
.serialNo(item.getSerialNo())
.scanCount(item.getScanCount())
.totalCount(item.getScanCount())
.workPlaceCode(putWorkPlaceCode)
.status(2)
.fifoSplit(1)
.createTime(new Date()).updateTime(new Date())
.remainCount(item.getRemainCount()).build();
this.decorateUnpackExpireTime(ioSplitCodeEntity);
splitCodeService.save(ioSplitCodeEntity);
}
}
}
}
continue;
}
//
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, isAuto);
}
ArrayList<IoCollectOrderBizBackup> ioCollectOrderBizBackups = new ArrayList<>();
for (IoCollectOrderBiz ioCollectOrderBiz : collectOrderBizs) {
IoCollectOrderBizBackup ioCollectOrderBizBackup = new IoCollectOrderBizBackup();
BeanUtils.copyProperties(ioCollectOrderBiz, ioCollectOrderBizBackup);
ioCollectOrderBizBackups.add(ioCollectOrderBizBackup);
}
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
}
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long
putWorkPlaceCode, Boolean isAuto) {
List<IoSplitCodeEntity> ioSplitCodeEntities = null;
List<Long> relIds = new ArrayList<>();
//1.按照先进先出原则查询拆零表获取拆零表ID
if (StrUtil.isNotEmpty(collectOrderBiz.getCheckCode())) {
relIds = udiRelevanceService.selectByCheckCode(collectOrderBiz.getCheckCode());
if (CollUtil.isNotEmpty(relIds)) {
ioSplitCodeEntities = findSplitCodes(relIds, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
}
} else {
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
relIds.add(collectOrderBiz.getRelId());
}
//2.如果拆零表为空,则自动从预出库队列中获拉取数据
if (CollUtil.isEmpty(ioSplitCodeEntities)) {
addFifoCode(relIds, collectOrderBiz.getBatchNo(), IntUtil.value(collectOrderBiz.getUnTagCount()), putWorkPlaceCode);
if (StrUtil.isNotEmpty(collectOrderBiz.getCheckCode())) {
relIds = udiRelevanceService.selectByCheckCode(collectOrderBiz.getCheckCode());
if (CollUtil.isNotEmpty(relIds)) {
ioSplitCodeEntities = findSplitCodes(relIds, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
}
} else {
ioSplitCodeEntities = findSplitCodes(relIds, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
}
}
//3.如果拆零表不为空,则开始扣除数量
int count = 0;
int unCount = 0; //剩余未扣减数量
unCount = IntUtil.value(collectOrderBiz.getUnTagCount());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(ioSplitCodeEntity.getBatchNo())
.productDate(ioSplitCodeEntity.getProduceDate())
.expireDate(ioSplitCodeEntity.getExpireDate())
.serialNo(ioSplitCodeEntity.getSerialNo())
.relId(ioSplitCodeEntity.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(ioSplitCodeEntity.getFifoSplit())
.createTime(new Date())
.updateTime(new Date())
.build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
unCount = 0;
splitCodeMapper.updateById(ioSplitCodeEntity);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
unCount = 0;
} else {
ioSplitCodeEntity.setRemainCount(0);
unCount = -count;
}
splitCodeMapper.updateById(ioSplitCodeEntity);
}
if (unCount > 0) {
//4.拆零表数量不足,则从预出库队列中获取数据
Integer fifoCount = addFifoCode(relIds, collectOrderBiz.getBatchNo(), unCount, putWorkPlaceCode);
if (fifoCount == 0) {
//预出库队列数量不足
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
} else {
//再次执行赋码
ioSplitCodeEntities = findSplitCodes(relIds, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(ioSplitCodeEntity.getBatchNo())
.productDate(ioSplitCodeEntity.getProduceDate())
.expireDate(ioSplitCodeEntity.getExpireDate())
.serialNo(ioSplitCodeEntity.getSerialNo())
.relId(ioSplitCodeEntity.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(ioSplitCodeEntity.getFifoSplit())
.createTime(new Date())
.updateTime(new Date())
.build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
splitCodeMapper.updateById(ioSplitCodeEntity);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
splitCodeMapper.updateById(ioSplitCodeEntity);
} else {
ioSplitCodeEntity.setRemainCount(0);
splitCodeMapper.updateById(ioSplitCodeEntity);
unCount = -count;
}
}
}
if (unCount > 0) {
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
} else {
collectOrderBiz.setTagStatus(3);
collectOrderBiz.setTagMsg("赋码完成!");
}
}
} else {
collectOrderBiz.setTagStatus(3);
collectOrderBiz.setTagMsg("赋码完成!");
}
collectOrderBiz.setUnTagCount(unCount);
collectOrderBizService.updateById(collectOrderBiz);
}
/**
*
*/
public Integer addFifoCode(List<Long> relIds, String batchNo, Integer requiredCount, Long workplaceCode) {
// Query FIFO codes based on criteria
List<IoSplitFifoCodeEntity> fifoCodeList = splitFifoCodeService
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.in(IoSplitFifoCodeEntity::getRelId, relIds)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.eq(workplaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, workplaceCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
int totalProcessedCount = 0;
List<IoSplitCodeEntity> splitCodesToAdd = new ArrayList<>();
List<Long> idsToRemove = new ArrayList<>();
for (IoSplitFifoCodeEntity fifoCode : fifoCodeList) {
boolean isTargetReached = false;
int processedScans = 0;
for (int i = 0; i < fifoCode.getScanCount(); i++) {
// Create new FIFO code entity
IoSplitFifoCodeEntity newFifoCode = new IoSplitFifoCodeEntity();
BeanUtils.copyProperties(fifoCode, newFifoCode);
newFifoCode.setScanCount(1);
int codesPerScan = fifoCode.getTotalCount() / fifoCode.getScanCount();
newFifoCode.setTotalCount(codesPerScan);
// Create and populate split code entity
IoSplitCodeEntity splitCode = new IoSplitCodeEntity();
BeanUtils.copyProperties(newFifoCode, splitCode);
totalProcessedCount += IntUtil.value(newFifoCode.getTotalCount());
splitCode.setRemainCount(splitCode.getTotalCount());
splitCode.setStatus(1);
splitCode.setFifoSplit(newFifoCode.getFifoSplit());
splitCode.setId(null);
this.decorateUnpackExpireTime(splitCode);
splitCodesToAdd.add(splitCode);
// Update inventory
IoSplitFifoInv inventory = splitFifoInvService.findByFifoCode(newFifoCode);
if (inventory != null) {
updateInventory(inventory, newFifoCode.getTotalCount());
splitFifoInvService.updateById(inventory);
}
// Update original FIFO code
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.id(fifoCode.getId())
.scanCount(IntUtil.value(fifoCode.getScanCount()) - 1)
.totalCount(IntUtil.value(fifoCode.getTotalCount()) - codesPerScan)
.build());
processedScans++;
if (totalProcessedCount >= requiredCount) {
isTargetReached = true;
break;
}
}
if (isTargetReached) {
if (processedScans == fifoCode.getScanCount()) {
idsToRemove.add(fifoCode.getId());
}
break;
}
}
// Batch operations
if (!idsToRemove.isEmpty()) {
splitFifoCodeService.removeByIds(idsToRemove);
}
if (!splitCodesToAdd.isEmpty()) {
splitCodeMapper.insertBatch(splitCodesToAdd);
}
return totalProcessedCount;
}
private void updateInventory(IoSplitFifoInv inventory, Integer processedCount) {
inventory.setOutCount(IntUtil.value(inventory.getOutCount()) + IntUtil.value(processedCount));
int lockCount = IntUtil.value(inventory.getLockCount()) - IntUtil.value(processedCount);
inventory.setLockCount(lockCount > 0 ? lockCount : 0);
inventory.setReCount(IntUtil.value(inventory.getInCount()) - IntUtil.value(inventory.getOutCount()));
inventory.setAvailableCount(IntUtil.value(inventory.getInCount()) - IntUtil.value(inventory.getLockCount()) - IntUtil.value(inventory.getOutCount()));
}
//包装拆包失效时间
void decorateUnpackExpireTime(IoSplitCodeEntity ioSplitCodeEntity) {
Long relId = ioSplitCodeEntity.getRelId();
UdiRelevanceEntity relevanceEntity = udiRelevanceService.getById(relId);
int n = IntUtil.value(relevanceEntity.getUnpackUseTime());
// 获取当前时间
Calendar calendar = Calendar.getInstance();
Date unpackTime = calendar.getTime();
// 加上n小时
calendar.add(Calendar.HOUR_OF_DAY, n);
// 转换为Date对象
Date unpackExpireTime = calendar.getTime();
ioSplitCodeEntity.setUnpackTime(unpackTime);
ioSplitCodeEntity.setUnpackExpireTime(unpackExpireTime);
}
public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.gt(IoSplitCodeEntity::getRemainCount, 0)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
return ioSplitCodeEntities;
}
public List<IoSplitCodeEntity> findSplitCodes(List<Long> relIds, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.in(IoSplitCodeEntity::getRelId, relIds)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.gt(IoSplitCodeEntity::getRemainCount, 0)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
return ioSplitCodeEntities;
}
public List<IoCollectOrderCodeMan> filterCode
(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse
udiRelevanceResponse) {
int unTagCount = IntUtil.value(collectOrderBiz.getScanActCount()) - collectOrderBiz.getCount();
List<IoCollectOrderCodeMan> newList = new ArrayList<IoCollectOrderCodeMan>();
int count = 0;
boolean first = true;
for (IoCollectOrderCodeMan collectOrderCode : collectOrderCodes) {
if (collectOrderCode.getBizIdFk().equals(collectOrderBiz.getId())) {
if (IntUtil.value(collectOrderCode.getIsSplitCode())) {
if (first) {
int remainder = unTagCount % IntUtil.value(udiRelevanceResponse.getBhsycjsl());
collectOrderCode.setRemainCount(remainder);
first = false;
} else {
collectOrderCode.setRemainCount(collectOrderCode.getScanActCount());
}
newList.add(collectOrderCode);
} else {
count = count + collectOrderCode.getScanActCount();
if (!IntUtil.value(collectOrderCode.getRemoveFlag())) {
if (count > collectOrderBiz.getCount()) {
if (first) {
int remainder = unTagCount % IntUtil.value(udiRelevanceResponse.getBhsycjsl());
collectOrderCode.setRemainCount(remainder);
first = false;
} else {
collectOrderCode.setRemainCount(collectOrderCode.getScanActCount());
}
newList.add(collectOrderCode);
}
}
}
}
}
return newList;
}
}

@ -4799,33 +4799,32 @@ 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`
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 '批准文号',
`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;
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;
@ -4841,9 +4840,12 @@ CALL Pro_Temp_ColumnWork('auth_company', 'refEntId',
' varchar(255) DEFAULT NULL COMMENT ''接口调用企业的唯一标识''',
1);
ALTER TABLE io_collect_order_origin MODIFY errorMsg text;
ALTER TABLE io_collect_order MODIFY errorMsg text;
ALTER TABLE io_collect_order_backup MODIFY errorMsg text;
ALTER TABLE io_collect_order_origin
MODIFY errorMsg text;
ALTER TABLE io_collect_order
MODIFY errorMsg text;
ALTER TABLE io_collect_order_backup
MODIFY errorMsg text;
@ -4883,21 +4885,25 @@ CALL Pro_Temp_ColumnWork('third_ali_drug', 'packUnitName',
1);
CREATE TABLE IF NOT EXISTS `auth_ali_user` (
`id` bigint NOT NULL,
`erpId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '第三方ID',
`appKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '阿里KEY',
`appSecret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '阿里密钥',
`refEntId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '厂家标识',
`type` varchar(255) DEFAULT NULL COMMENT '1 为生成企业 2为零售药店',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE IF NOT EXISTS `auth_ali_user`
(
`id` bigint NOT NULL,
`erpId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '第三方ID',
`appKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '阿里KEY',
`appSecret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '阿里密钥',
`refEntId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '厂家标识',
`type` varchar(255) DEFAULT NULL COMMENT '1 为生成企业 2为零售药店',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
INSERT IGNORE INTO auth_menu(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`,
`is_frame`,
`is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`,
`update_by`, `update_time`, `remark`)
VALUES (6001, '医保上传统计', 5210, 999, 'inout/split/tag/stats', 'collect/CollectOrderStatsNew', NULL, 1, 0, 'C', '0', '0', NULL, '', '超级用户', '2024-11-18 17:46:08', NULL, NULL, NULL);
VALUES (6001, '医保上传统计', 5210, 999, 'inout/split/tag/stats', 'collect/CollectOrderStatsNew', NULL, 1, 0, 'C', '0', '0',
NULL, '', '超级用户', '2024-11-18 17:46:08', NULL, NULL, NULL);
@ -4910,23 +4916,23 @@ CALL Pro_Temp_ColumnWork('sys_workplace_document', 'uploadYb',
CREATE TABLE IF NOT EXISTS `io_collect_order_check_code`
(
`id` int NOT NULL AUTO_INCREMENT,
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '追溯码UDI.药品)',
`fromType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据来源',
`busType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据类型',
`billNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据号',
`fromCorp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '往来单位',
`operTime` datetime NULL DEFAULT NULL COMMENT '操作时间',
`operUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人',
`collectCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采集点',
`collectUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采集点负责人',
`id` int NOT NULL AUTO_INCREMENT,
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '追溯码UDI.药品)',
`fromType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据来源',
`busType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据类型',
`billNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单据号',
`fromCorp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '往来单位',
`operTime` datetime NULL DEFAULT NULL COMMENT '操作时间',
`operUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人',
`collectCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采集点',
`collectUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采集点负责人',
`workPlaceCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '工位',
`workPlaceUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '工位负责人',
`fifoSplit` tinyint NULL DEFAULT NULL COMMENT '赋码方式 1:自动拆零赋码2:自动整取赋码;3.手动赋码',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`inoutType` tinyint NULL DEFAULT NULL COMMENT '出入库类型',
`scanCount` int NULL DEFAULT NULL COMMENT '扫码数量',
`relId` bigint NULL DEFAULT NULL COMMENT '耗材字典ID外键',
`fifoSplit` tinyint NULL DEFAULT NULL COMMENT '赋码方式 1:自动拆零赋码2:自动整取赋码;3.手动赋码',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`inoutType` tinyint NULL DEFAULT NULL COMMENT '出入库类型',
`scanCount` int NULL DEFAULT NULL COMMENT '扫码数量',
`relId` bigint NULL DEFAULT NULL COMMENT '耗材字典ID外键',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
@ -4977,4 +4983,11 @@ CALL Pro_Temp_ColumnWork('io_collect_order_biz_origin', 'checkCode',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''套编码/医保编码/术士套包编码''',
1);
# CALL Pro_Temp_ColumnWork('io_split_code', 'ybbm',
# 'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''套编码/医保编码/术士套包编码''',
# 1);
# CALL Pro_Temp_ColumnWork('io_split_fifo_code', 'ybbm',
# 'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''套编码/医保编码/术士套包编码''',
# 1);

Loading…
Cancel
Save