|
|
|
@ -15,6 +15,7 @@ import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper;
|
|
|
|
|
import com.glxp.api.entity.auth.InvWarehouseEntity;
|
|
|
|
|
import com.glxp.api.entity.auth.SysWorkplace;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplacePutRel;
|
|
|
|
|
import com.glxp.api.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrder;
|
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderBiz;
|
|
|
|
@ -37,6 +38,7 @@ import com.glxp.api.service.basic.UdiRelevanceService;
|
|
|
|
|
import com.glxp.api.service.inout.IoSplitCodeService;
|
|
|
|
|
import com.glxp.api.service.inv.AnncmntProductService;
|
|
|
|
|
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
|
|
|
|
|
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
|
|
|
|
|
import com.glxp.api.service.thrsys.ThrSystemService;
|
|
|
|
|
import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
@ -111,16 +113,21 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
InvWarehouseService invWarehouseService;
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplacePutRelService workplacePutRelService;
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public IoCollectOrder prescribeTagCode(AddTagCodeReqeust addTagCodeReqeust) {
|
|
|
|
|
Long userId = customerService.getUserId();
|
|
|
|
|
String userIds = customerService.getUserId() + "";
|
|
|
|
|
SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode());
|
|
|
|
|
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(workPlace.getWorkplaceId(), null);
|
|
|
|
|
Long putWorkPlaceCode = null;
|
|
|
|
|
if (sysWorkplacePutRel != null)
|
|
|
|
|
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
if (workPlace == null) throw new JsonException(500, "请先选择工位");
|
|
|
|
|
|
|
|
|
|
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByWorkplaceCode(workPlace.getWorkplaceId(), addTagCodeReqeust.getBusType());
|
|
|
|
|
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = null;
|
|
|
|
|
IoCollectOrder collectOrder = null;
|
|
|
|
|
|
|
|
|
@ -154,7 +161,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Integer circleCount = calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
Integer useCount = calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
Integer scanCount = 0;
|
|
|
|
|
|
|
|
|
|
IoCollectOrderCodeMan exitCode = this.findByCode(addTagCodeReqeust.getBillNo(), code);
|
|
|
|
|
if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) {
|
|
|
|
@ -171,7 +180,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(500, "当前产品已过期!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
|
//2.校验是否处方单UDI码
|
|
|
|
|
if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_GEN_ORDER) {
|
|
|
|
@ -222,16 +231,20 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
collectOrder.setWorkPlaceCode(addTagCodeReqeust.getWorkPlaceCode());
|
|
|
|
|
if (collectOrder == null)
|
|
|
|
|
throw new JsonException(500, "单据不存在!");
|
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
|
// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
|
// if (!b1) {
|
|
|
|
|
// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
|
|
|
|
|
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
|
|
|
|
|
throw new JsonException(500, "当前追溯码已被拆零!");
|
|
|
|
|
if (IntUtil.value(splitCodeEntity.getRemainCount()) < 1) {
|
|
|
|
|
throw new JsonException(500, "当前追溯码已被拆零!");
|
|
|
|
|
} else {
|
|
|
|
|
circleCount = splitCodeEntity.getRemainCount();
|
|
|
|
|
useCount = splitCodeEntity.getRemainCount();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
scanCount = circleCount;
|
|
|
|
|
} else {
|
|
|
|
|
scanCount = useCount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CollectOrderCodeManRequest collectOrderCodeManRequest = new CollectOrderCodeManRequest();
|
|
|
|
|
collectOrderCodeManRequest.setUdiCode(code);
|
|
|
|
|
collectOrderCodeManRequest.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
|
|
|
|
@ -248,12 +261,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1);
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse));
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2: //不插入
|
|
|
|
@ -262,16 +270,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
|
|
|
|
|
int actCount = 0;
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
} else {
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
}
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
|
|
|
|
|
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
|
|
|
|
|
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
|
|
|
|
|
if (needCount > 0) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) {
|
|
|
|
|
throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -286,15 +290,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(502, addTagCodeReqeust.getCode() + "非此单据追溯码,是否继续添加!");
|
|
|
|
|
int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
int actCount1 = 0;
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
} else {
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
}
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
|
|
|
|
|
if (actCount1 > collectOrderBiz.getCount()) {
|
|
|
|
|
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
|
|
|
|
|
if (needCount > 0) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) {
|
|
|
|
|
throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续扫码?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -336,9 +336,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(500, "当前追溯码已被其他单据关联!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
|
|
|
|
|
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
|
|
|
|
|
throw new JsonException(500, "当前追溯码已被拆零!");
|
|
|
|
|
if (IntUtil.value(splitCodeEntity.getRemainCount()) < 1) {
|
|
|
|
|
throw new JsonException(500, "当前追溯码已被拆零!");
|
|
|
|
|
} else {
|
|
|
|
|
circleCount = splitCodeEntity.getRemainCount();
|
|
|
|
|
useCount = splitCodeEntity.getRemainCount();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
scanCount = circleCount;
|
|
|
|
|
} else {
|
|
|
|
|
scanCount = useCount;
|
|
|
|
|
}
|
|
|
|
|
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
|
|
|
|
|
case 1: //插入
|
|
|
|
@ -347,11 +356,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1);
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse));
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse));
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2: //不插入
|
|
|
|
@ -359,15 +364,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(500, "非此单据追溯码!");
|
|
|
|
|
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
int actCount = 0;
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
} else {
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
}
|
|
|
|
|
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
|
|
|
|
|
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
|
|
|
|
|
if (needCount > 0) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) {
|
|
|
|
|
throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -384,15 +385,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
throw new JsonException(502, addTagCodeReqeust.getCode() + "非此单据追溯码,是否继续添加?");
|
|
|
|
|
int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
int actCount1 = 0;
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
} else {
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
}
|
|
|
|
|
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
|
|
|
|
|
if (actCount1 > collectOrderBiz.getCount()) {
|
|
|
|
|
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
|
|
|
|
|
if (needCount > 0) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
|
|
|
|
|
if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) {
|
|
|
|
|
throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -406,11 +403,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1);
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getCirActCount(udiRelevanceResponse));
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse));
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -421,8 +414,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
collectOrderBizService.saveOrUpdate(collectOrderBiz);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) {
|
|
|
|
|
exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1);
|
|
|
|
|
exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + scanCount);
|
|
|
|
|
exitCode.setBizIdFk(collectOrderBiz.getId());
|
|
|
|
|
this.updateById(exitCode);
|
|
|
|
|
} else {
|
|
|
|
@ -434,16 +428,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
.relId(collectOrderBiz.getRelId())
|
|
|
|
|
.nameCode(udiRelevanceResponse.getNameCode())
|
|
|
|
|
.batchNo(udiEntity.getBatchNo())
|
|
|
|
|
.serialNo(udiEntity.getSerialNo())
|
|
|
|
|
.productDate(udiEntity.getProduceDate())
|
|
|
|
|
.expireDate(udiEntity.getExpireDate())
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.createUser(userId)
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|
.updateUser(userId)
|
|
|
|
|
.scanCount(1)
|
|
|
|
|
.scanCount(scanCount)
|
|
|
|
|
.build();
|
|
|
|
|
this.save(collectOrderCodeMan);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
collectOrder.setTagStatus(2);
|
|
|
|
|
collectOrderService.updateById(collectOrder);
|
|
|
|
|
return collectOrder;
|
|
|
|
|