|
|
|
@ -34,6 +34,7 @@ import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
|
import com.glxp.api.util.OrderNoTypeBean;
|
|
|
|
|
import com.glxp.api.util.udi.FilterUdiUtils;
|
|
|
|
|
import com.glxp.api.util.udi.UdiCalCountUtil;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -68,6 +69,8 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
IoCollectOrderService collectOrderService;
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplaceDocumentService sysWorkplaceDocumentService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiCalCountUtil calCountUtil;
|
|
|
|
|
|
|
|
|
|
public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) {
|
|
|
|
|
if (collectOrderCodeManRequest == null) {
|
|
|
|
@ -145,7 +148,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//直接扫码单生成业务单
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity, collectOrder);
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
collectOrderBizService.saveOrUpdate(collectOrderBiz);
|
|
|
|
|
} else if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_VAIL_BATCH) {
|
|
|
|
@ -164,38 +167,63 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
|
|
|
|
|
case 1: //插入
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity, collectOrder);
|
|
|
|
|
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));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2: //不插入
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
throw new JsonException(500, "非此单据追溯码!");
|
|
|
|
|
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
if (count > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
throw new JsonException(500, "扫码数量超出!");
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanCount(count);
|
|
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(actCount);
|
|
|
|
|
break;
|
|
|
|
|
case 3: //提醒是否插入
|
|
|
|
|
|
|
|
|
|
if (!IntUtil.value(addTagCodeReqeust.getInsert())) {
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
throw new JsonException(502, "非此单据追溯码!");
|
|
|
|
|
int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
if (count1 > collectOrderBiz.getCount()) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
if (actCount1 > collectOrderBiz.getCount()) {
|
|
|
|
|
throw new JsonException(502, "扫码数量超出!");
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanCount(count1);
|
|
|
|
|
collectOrderBiz.setScanActCount(actCount1);
|
|
|
|
|
} else {
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity, collectOrder);
|
|
|
|
|
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));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -219,20 +247,32 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
|
|
|
|
|
case 1: //插入
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity, collectOrder);
|
|
|
|
|
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));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2: //不插入
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
throw new JsonException(500, "非此单据追溯码!");
|
|
|
|
|
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
if (count > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
throw new JsonException(500, "扫码数量超出!");
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanCount(count);
|
|
|
|
|
collectOrderBiz.setScanActCount(actCount);
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 3: //提醒是否插入
|
|
|
|
@ -241,16 +281,28 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
throw new JsonException(502, "非此单据追溯码!");
|
|
|
|
|
int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
|
|
|
|
|
if (count1 > IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
if (actCount1 > collectOrderBiz.getCount()) {
|
|
|
|
|
throw new JsonException(502, "扫码数量超出!");
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanCount(count1);
|
|
|
|
|
collectOrderBiz.setScanActCount(actCount1);
|
|
|
|
|
} else {
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity, collectOrder);
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setScanCount(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));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -293,20 +345,32 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) {
|
|
|
|
|
public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity, IoCollectOrder collectOrder) {
|
|
|
|
|
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
|
(StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo()))
|
|
|
|
|
) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setScanActCount(actCount);
|
|
|
|
|
collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1);
|
|
|
|
|
collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1);
|
|
|
|
|
return collectOrderBiz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
int actCount = 0;
|
|
|
|
|
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
|
|
|
|
|
actCount = calCountUtil.getCirActCount(udiRelevanceResponse);
|
|
|
|
|
} else {
|
|
|
|
|
actCount = calCountUtil.getUseActCount(udiRelevanceResponse);
|
|
|
|
|
}
|
|
|
|
|
return IoCollectOrderBiz.builder()
|
|
|
|
|
.relId(udiRelevanceResponse.getId())
|
|
|
|
|
.thrCode(udiRelevanceResponse.getMainId())
|
|
|
|
@ -321,7 +385,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
|
|
|
|
|
.count(0)
|
|
|
|
|
.actCount(0)
|
|
|
|
|
.scanCount(1)
|
|
|
|
|
.scanActCount(1)
|
|
|
|
|
.scanActCount(actCount)
|
|
|
|
|
.measureUnit(udiRelevanceResponse.getMeasname())
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|