feat: 关联预验收入库单号

dev_2.5_optimize
chenhc 4 months ago
parent b8503c9464
commit 8fe4589322

@ -9,6 +9,7 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.thrsys.BasicInsChdrugEntity;
import com.glxp.api.req.inout.AddTagCodeReqeust;
@ -20,13 +21,16 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoSplitCodeDetailResponse;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.inout.IoCodeTempService;
import com.glxp.api.service.inout.IoSplitCodeDetailService;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -58,6 +62,12 @@ public class IoSplitController extends BaseController {
BasicSkPrescribeService basicSkPrescribeService;
@Resource
BasicSkPrescribeItemCodeService basicSkPrescribeItemCodeService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IoCodeService codeService;
@Resource
private IoCodeTempService codeTempService;
/**
*
@ -207,6 +217,43 @@ public class IoSplitController extends BaseController {
if (basicSkPrescribeDiEntity == null)
return ResultVOUtils.error(500, "非此处方单UDI码");
//2-1.校验预验收库存是否已存在
String preInBillNo = addTagCodeReqeust.getPreInBillNo();
String orderId = addTagCodeReqeust.getBillNo();
if (StrUtil.isNotEmpty(preInBillNo)){
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction("SC74047369831589");
if (bussinessTypeEntity.isScanPreIn() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse, 2)) {
if (bussinessTypeEntity.getBackPreinType() == 1 && bussinessTypeEntity.isPreInBack()) {//按单出库&& bussinessTypeEntity.isPreInBack()
String orderIds = preInBillNo;
if (StrUtil.isNotEmpty(orderIds)) {
String[] orderIdArray = orderIds.split(",");
List<String> orderList = CollUtil.toList(orderIdArray);
int count = codeService.findByOrderIdsCount(orderList, code);
if (count <= 0) {
return ResultVOUtils.error(500, "非预验收单产品或预验收库存数量不足!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (count < (codeTempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
} else {
if (count < 1) {
return ResultVOUtils.error(500, "预验收库存数量不足");
}
}
}
} else {
return ResultVOUtils.error(500, "未选择预验收入库单,请先选择预验收入库单!");
}
}
}
}
//3.校验该UDI码是否已经出库是否在预出库队列
Boolean b1 = splitFifoCodeService.isExitCode(code, basicSkPrescribeEntity.getWorkPlaceCode());
if (!b1) {
@ -275,4 +322,18 @@ public class IoSplitController extends BaseController {
}
/**
* @param purType 1:23
*/
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse
udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true;
} else
return false;
}
return true;
}
}

@ -285,6 +285,10 @@ public class IoCollectOrder implements Serializable {
@ApiModelProperty(value = "第三方单据类型编码")
private String thrBusType;
@TableField(value = "preInBillNo")
@ApiModelProperty(value = "关联预验收入库单号")
private String preInBillNo;
private static final long serialVersionUID = 1L;
}

@ -275,6 +275,9 @@ public class IoCollectOrderBackup implements Serializable {
private Integer checkCodeConfirm;
@TableField(value = "preInBillNo")
@ApiModelProperty(value = "关联预验收入库单号")
private String preInBillNo;
private static final long serialVersionUID = 1L;
}

@ -332,4 +332,8 @@ public class IoCollectOrderOrigin implements Serializable {
@ApiModelProperty(value = "第三方单据类型编码")
private String thrBusType;
@TableField(value = "preInBillNo")
@ApiModelProperty(value = "关联预验收入库单号")
private String preInBillNo;
}

@ -167,6 +167,6 @@ public class CollectOrderRequest extends ListPageRequest {
private Integer isCheckFinish;
private String preInBillNo;
}

@ -55,6 +55,7 @@ public class AddTagCodeReqeust {
private String shipper;
private String shipperName;
private String preInBillNo;
/**
*

@ -5318,3 +5318,18 @@ CALL Pro_Temp_ColumnWork('io_code_temp', 'queueCode',
CALL Pro_Temp_ColumnWork('sys_workplace_document', 'busType',
'tinyint NULL DEFAULT NULL COMMENT ''业务类型 1器械业务 2药品业务''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order', 'preInBillNo',
' varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''关联预验收入库单号(只有出库时需校验预验收库存才有)''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'preInBillNo',
' varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''关联预验收入库单号(只有出库时需校验预验收库存才有)''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_origin', 'preInBillNo',
' varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''关联预验收入库单号(只有出库时需校验预验收库存才有)''',
1);

Loading…
Cancel
Save