器械与药品上货,完成单据修改

dev_2.5_optimize
yewj 4 months ago
parent c11b6f034e
commit 5d6bb97dea

@ -3217,5 +3217,4 @@ public class IoCodeTempController extends BaseController {
} }
} }

@ -148,7 +148,12 @@ public class IoSplitController extends BaseController {
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1) { if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1) {
collectOrder.setWorkPlaceCode(addTagCodeReqeust.getWorkPlaceCode()); collectOrder.setWorkPlaceCode(addTagCodeReqeust.getWorkPlaceCode());
//todo 后面改 //todo 后面改
if(sysWorkplaceDocumentEntity.getProductType() == 1){
}else {
splitCodeService.preAutoTagCode(collectOrder, null); splitCodeService.preAutoTagCode(collectOrder, null);
}
collectOrderService.updateById(collectOrder); collectOrderService.updateById(collectOrder);
return ResultVOUtils.success("后台已开始赋码,请稍后刷新查看"); return ResultVOUtils.success("后台已开始赋码,请稍后刷新查看");
} else { } else {

@ -438,13 +438,6 @@ public class WorkPutController extends BaseController {
} else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) {
return ResultVOUtils.error(500, "该产品不允许以使用单元入库!"); return ResultVOUtils.error(500, "该产品不允许以使用单元入库!");
} }
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 2 && IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入整取产品!");
// }
// if (IntUtil.value(addOrderRequest.getFifoSplit()) == 1 && !IntUtil.value(udiRelevanceResponse.getSplitEnable())) {
// return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
// }
//计算实际数量 //计算实际数量
if (bussinessTypeEntity.isUse()) { if (bussinessTypeEntity.isUse()) {
codeEnttity.setReCount(IntUtil.value(codeEnttity.getMyReCount()) + udiCalCountUtil.getUseActCount(udiRelevanceResponse)); codeEnttity.setReCount(IntUtil.value(codeEnttity.getMyReCount()) + udiCalCountUtil.getUseActCount(udiRelevanceResponse));
@ -501,28 +494,6 @@ public class WorkPutController extends BaseController {
return ResultVOUtils.error(500, "请先录入业务详情"); return ResultVOUtils.error(500, "请先录入业务详情");
} }
} }
// BaseResponse baseResponse = checkRelId(codeEnttity, unitFk);
// if (baseResponse != null) {
// deleteEmptyBillNo(orderEntity);
// }
// genDetaiEntity = codeEnttity;
// if (baseResponse == null) {
// baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
// if (baseResponse != null)
// return baseResponse;
// } else {
// if (baseResponse.getCode() == 501) {
// return baseResponse;
// } else if (baseResponse.getCode() == 502) {
// return baseResponse;
// }
// checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
// return baseResponse;
// }
//预出库退货校验队列库存 //预出库退货校验队列库存
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEnttity.getCode(), orderEntity.getWorkPlaceCode()); IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEnttity.getCode(), orderEntity.getWorkPlaceCode());

@ -245,11 +245,11 @@ public class IoSplitCodeEntity implements Serializable {
private String measname; private String measname;
@TableField(exist = false) @TableField(exist = false)
private String manufactory; private String manufactory;
// /** /**
// * 医保编码,组套编码 *
// */ */
// @TableField(value = "ybbm") @TableField(value = "ybbm")
// private String ybbm; private String ybbm;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

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

@ -584,20 +584,21 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
if (CollUtil.isNotEmpty(allotCollects)) { if (CollUtil.isNotEmpty(allotCollects)) {
saveBatch(allotCollects); saveBatch(allotCollects);
collectOrderBizService.saveBatch(allotCollectBizs); collectOrderBizService.saveBatch(allotCollectBizs);
// if (IntUtil.value(collectSet.getAutoFinishOrder())) {
if (IntUtil.value(collectSet.getAutoFinishOrder())) for (IoCollectOrder collectOrder : allotCollects) { // for (IoCollectOrder collectOrder : allotCollects) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(addr); // SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(addr);
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { // if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {
boolean b = splitFifoCodeService.lockInventoryByOrder(collectOrder.getBillNo(), 1); // boolean b = splitFifoCodeService.lockInventoryByOrder(collectOrder.getBillNo(), 1);
if (b && sysWorkplaceDocumentEntity.getAutoHandle()) { // if (b && sysWorkplaceDocumentEntity.getAutoHandle()) {
//单据是否自动完成 是 调用 完成 // //单据是否自动完成 是 调用 完成
AuthAdmin user = customerService.getUserBean(); // AuthAdmin user = customerService.getUserBean();
collectOrderRequest.setUpdateUser(user.getId()); // collectOrderRequest.setUpdateUser(user.getId());
collectOrderRequest.setBusType(addr); // collectOrderRequest.setBusType(addr);
finishOrder(collectOrderRequest, user, true); // finishOrder(collectOrderRequest, user, true);
} // }
} // }
} // }
// }
} }
} }
} }

@ -461,17 +461,6 @@ public class IoAddInoutService {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo())); List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo()));
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId(), codeTempEntity.getSupId()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId(), codeTempEntity.getSupId());
// if (StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode()) && CollUtil.isNotEmpty(ioOrderDetailCodeEntities)) {
// boolean isSame = false;
// for (IoOrderDetailCodeEntity ioOrderDetailCodeEntity : ioOrderDetailCodeEntities) {
// if (ioOrderDetailCodeEntity.getBindRlFk().equals(udiRelevanceResponse.getId())) {
// isSame = true;
// }
// }
// if (!isSame)
// throw new JsonException(507, "上货产品不符!");
// }
if (codeTempEntity.getPrice() == null && udiRelevanceResponse.getPrice() != null) { if (codeTempEntity.getPrice() == null && udiRelevanceResponse.getPrice() != null) {
codeTempService.updateById(IoCodeTempEntity.builder().id(codeTempEntity.getId()).price(udiRelevanceResponse.getPrice()).build()); codeTempService.updateById(IoCodeTempEntity.builder().id(codeTempEntity.getId()).price(udiRelevanceResponse.getPrice()).build());
} }

@ -97,6 +97,16 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return ioSplitCodeEntities; return ioSplitCodeEntities;
} }
public List<IoSplitCodeEntity> findSplitCodes(String ybbm, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.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 IoSplitCodeEntity findByCode(String code, Long workPlaceCode) { public IoSplitCodeEntity findByCode(String code, Long workPlaceCode) {
if (workPlaceCode == null) { if (workPlaceCode == null) {
return null; return null;
@ -657,6 +667,44 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
collectOrderBizService.updateBatchById(collectOrderBizs); collectOrderBizService.updateBatchById(collectOrderBizs);
} }
/**
*
*
* @param collectOrder
*/
public void preQxAutoTagCode(IoCollectOrder collectOrder, String queueCode) {
Long putWorkPlaceCode = null;
//获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
splitFifoCodeService.findByCheckCode(putWorkPlaceCode,
collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
collectOrderBiz.setTempSplitCount(splitTotal);
total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) {
collectOrderBiz.setAutoTagStatus(3);
} else
collectOrderBiz.setAutoTagStatus(1);
}
collectOrderBizService.updateBatchById(collectOrderBizs);
}
/** /**
* *

@ -68,9 +68,6 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
.eq(StrUtil.isNotEmpty(queueCode), IoSplitFifoCodeEntity::getWorkPlaceQueueCode, queueCode) .eq(StrUtil.isNotEmpty(queueCode), IoSplitFifoCodeEntity::getWorkPlaceQueueCode, queueCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo) .orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
); );
// 暂时不穿todo
// .eq(StrUtil.isNotEmpty(busType), IoSplitFifoCodeEntity::getBusType, busType)
return splitFifoCodeEntities; return splitFifoCodeEntities;
} }
@ -111,8 +108,6 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
} }
} }
// 暂时不穿todo
// .eq(StrUtil.isNotEmpty(busType), IoSplitFifoCodeEntity::getBusType, busType)
return splitFifoCodeEntities; return splitFifoCodeEntities;
} }

@ -99,10 +99,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode()); splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode());
splitCodeEntity.setWorkPlaceQueueCode(orderEntity.getWorkPlaceQueueCode()); splitCodeEntity.setWorkPlaceQueueCode(orderEntity.getWorkPlaceQueueCode());
splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit());
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(codeEntity.getRelId() + ""); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(codeEntity.getRelId() + "");
// if (udiRelevanceResponse != null) { if (udiRelevanceResponse != null) {
// splitCodeEntity.setYbbm(udiRelevanceResponse.getYbbm()); splitCodeEntity.setYbbm(udiRelevanceResponse.getYbbm());
// } }
splitCodeEntity.setBusType(orderEntity.getSplitBusType()); splitCodeEntity.setBusType(orderEntity.getSplitBusType());
index++; index++;
splitCodeEntity.setInBactchNo(System.currentTimeMillis() + index + ""); splitCodeEntity.setInBactchNo(System.currentTimeMillis() + index + "");

@ -68,9 +68,12 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
}); });
} }
@Resource
IoCollectSetService collectSetService;
private void process() { private void process() {
List<IoCollectOrder> list = collectOrderService.list(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getTagStatus, 1)); List<IoCollectOrder> list = collectOrderService.list(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getTagStatus, 1));
IoCollectSet collectSet = collectSetService.getSet();
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
for (IoCollectOrder collectOrder : list) { for (IoCollectOrder collectOrder : list) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrder.getBusType()); SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrder.getBusType());
@ -84,7 +87,7 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode()); collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode());
collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode()); collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode());
collectOrderRequest.setBillNo(collectOrder.getBillNo()); collectOrderRequest.setBillNo(collectOrder.getBillNo());
if (sysWorkplaceDocumentEntity.getAutoHandle()) { if (IntUtil.value(collectSet.getAutoFinishOrder())) {
//单据是否自动完成 是 调用 完成 //单据是否自动完成 是 调用 完成
AuthAdmin authAdmin = new AuthAdmin(); AuthAdmin authAdmin = new AuthAdmin();
authAdmin.setId(1l); authAdmin.setId(1l);
@ -94,8 +97,8 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
} catch (Exception e) { } catch (Exception e) {
log.error("自动完成第三方处方单异常", e); log.error("自动完成第三方处方单异常", e);
} }
} }
} }
} }
} }

@ -5163,8 +5163,6 @@ CALL Pro_Temp_ColumnWork('sys_workplace_freight', 'freightRow',
CALL Pro_Temp_ColumnWork('io_split_fifo_inv', 'inCodeCount', CALL Pro_Temp_ColumnWork('io_split_fifo_inv', 'inCodeCount',
'int NULL DEFAULT NULL COMMENT ''入库码数量''', 'int NULL DEFAULT NULL COMMENT ''入库码数量''',
1); 1);
@ -5268,7 +5266,8 @@ CREATE TABLE IF NOT EXISTS `sys_workplace_region`
ALTER TABLE rel_code_batch ALTER TABLE rel_code_batch
MODIFY COLUMN `batchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '批次号'; MODIFY COLUMN `batchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '批次号';
CREATE TABLE IF NOT EXISTS `inv_product_batch` ( CREATE TABLE IF NOT EXISTS `inv_product_batch`
(
`id` int NOT NULL AUTO_INCREMENT, `id` int NOT NULL AUTO_INCREMENT,
`inBatchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '内部批号', `inBatchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '内部批号',
`orderId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '入库单号', `orderId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '入库单号',
@ -5286,7 +5285,9 @@ CREATE TABLE IF NOT EXISTS `inv_product_batch` (
`updateTime` datetime DEFAULT NULL COMMENT '更新时间', `updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '仓库编码', `invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '仓库编码',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
CALL Pro_Temp_ColumnWork('auth_company', 'auditComment', CALL Pro_Temp_ColumnWork('auth_company', 'auditComment',
@ -5337,3 +5338,13 @@ CALL Pro_Temp_ColumnWork('io_collect_order_origin', 'preInBillNo',
CALL Pro_Temp_ColumnWork('sys_workplace', 'productType', CALL Pro_Temp_ColumnWork('sys_workplace', 'productType',
'tinyint NULL DEFAULT NULL COMMENT ''业务类型 1器械业务 2药品业务''', 'tinyint NULL DEFAULT NULL COMMENT ''业务类型 1器械业务 2药品业务''',
1); 1);
CALL Pro_Temp_ColumnWork('io_split_fifo_code', 'ybbm',
' varchar(50) NULL DEFAULT NULL COMMENT ''医保编码''',
1);
CALL Pro_Temp_ColumnWork('io_split_code', 'ybbm',
' varchar(50) NULL DEFAULT NULL COMMENT ''医保编码''',
1);

Loading…
Cancel
Save