重复扫码相关问题

dev_no_inv
yewj 9 months ago
parent 14ae99a760
commit 7f8a26354e

@ -595,6 +595,8 @@ public class IoCodeTempController extends BaseController {
@Resource
IoSplitFifoCodeService fifoCodeService;
@Resource
IoSplitCodeService splitCodeService;
@Transactional(rollbackFor = Exception.class)
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
@ -684,7 +686,6 @@ public class IoCodeTempController extends BaseController {
}
String orderId = addOrderRequest.getBillNo();
//三期校验
@ -808,9 +809,9 @@ public class IoCodeTempController extends BaseController {
//校验码表是否已经存在追溯码 io_code_temp
IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code,udiEntity.getBatchNo(),bussinessTypeEntity.getAction());
if (codeTempEntity1 != null){
return ResultVOUtils.error(533,"扫码重复或当前追溯码已存在草稿单据中!");
IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction());
if (codeTempEntity1 != null) {
return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!");
}
//校验工位存量是否存在
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
@ -1305,25 +1306,33 @@ public class IoCodeTempController extends BaseController {
//校验码表是否已经存在追溯码 io_code_temp
IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code,udiEntity.getBatchNo(),bussinessTypeEntity.getAction());
if (codeTempEntity != null){
return ResultVOUtils.error(533,"扫码重复或当前追溯码已存在草稿单据中!");
IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction());
if (codeTempEntity != null) {
return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!");
}
//校验工位存量是否存在
//------工位上货相关-----校验工位存量是否存在----
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else {
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity == null) {
return ResultVOUtils.error(500, "当前追溯码未上货!");
}
}
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已经拆零,无法退货!");
}
}
if (addOrderRequest.getFromCorp() == null || StrUtil.isNotEmpty(addOrderRequest.getSickerAdNum())) {

@ -327,7 +327,7 @@ public class IoOrderController extends BaseController {
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/saveOrderWeb")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest){
public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity orderEntity = new IoOrderEntity();
if (addOrderRequest.getWorkPlaceCode() != null) {
@ -352,7 +352,7 @@ public class IoOrderController extends BaseController {
}
if (addOrderRequest.getAction().equals(ConstantType.SPLIT_RETURN) || addOrderRequest.getAction().equals(ConstantType.SPLIT_OUT)){
if (addOrderRequest.getAction().equals(ConstantType.SPLIT_RETURN) || addOrderRequest.getAction().equals(ConstantType.SPLIT_OUT)) {
orderEntity.setStatus(1);
}
orderEntity.setFromCorp(ioAddInoutService.updateCorp(bussinessTypeEntity, addOrderRequest.getFromCorp(), addOrderRequest.getSickerAdNum()));
@ -420,7 +420,7 @@ public class IoOrderController extends BaseController {
//上货校验追溯码是否重复
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(),addOrderRequest.getWorkPlaceCode() );
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() + "已存在!");
}
@ -445,7 +445,6 @@ public class IoOrderController extends BaseController {
}
if (checkInoutService.checkManual(addOrderRequest.getBillNo())) {
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
if (bussinessTypeEntity.getCheckWebNew() == 1) {
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
if (StrUtil.isNotEmpty(errMsg)) {
@ -481,8 +480,6 @@ public class IoOrderController extends BaseController {
ioAddInoutService.dealProcess(orderEntity);
checkInoutService.check(addOrderRequest.getBillNo());
}
} else {
return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!");
}
@ -1359,8 +1356,8 @@ public class IoOrderController extends BaseController {
@PostMapping("/udiwms/inout/order/upProcessing")
public BaseResponse isProcessing(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity order = orderService.findByBillNo(addOrderRequest.getBillNo());
if (order.getStatus() == 3){
return ResultVOUtils.error(501,"此订单正在处理中");
if (order.getStatus() == 3) {
return ResultVOUtils.error(501, "此订单正在处理中");
}
order.setStatus(3);//订单从草稿改变成为3 表示正在处理中
order.setUpdateUser(getUserId() + "");
@ -1371,12 +1368,11 @@ public class IoOrderController extends BaseController {
@GetMapping("/udiwms/inout/order/getProcessingOrder")
public BaseResponse getProcessingOrder(AddOrderRequest addOrderRequest) {
IoOrderResponse order = orderService.findByWorkPlaceCode(addOrderRequest.getWorkPlaceCode() + "",getUserId());
IoOrderResponse order = orderService.findByWorkPlaceCode(addOrderRequest.getWorkPlaceCode() + "", getUserId());
return ResultVOUtils.success(order);
}
public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) {

@ -14,4 +14,7 @@ public interface IoCollectOrderCodeManMapper extends BaseMapper<IoCollectOrderCo
List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest);
IoCollectOrderCodeMan exitCode(CollectOrderCodeManRequest collectOrderCodeManRequest);
}

@ -29,5 +29,6 @@ public class CollectOrderCodeManRequest extends ListPageRequest {
private Long updateUser;
private Long bizIdFk;
private String busType;
}

@ -82,6 +82,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
@Resource
UdiCalCountUtil calCountUtil;
@Resource
IoSplitCodeService splitCodeService;
public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) {
if (collectOrderCodeManRequest == null) {
return Collections.emptyList();
@ -99,6 +102,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
}
public IoCollectOrderCodeMan findByCode(String billNo, String code) {
return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo)
.eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1"));
@ -223,6 +227,19 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
// if (!b1) {
// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
// }
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被拆零!");
}
CollectOrderCodeManRequest collectOrderCodeManRequest = new CollectOrderCodeManRequest();
collectOrderCodeManRequest.setUdiCode(code);
collectOrderCodeManRequest.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
if (collectOrderCodeMan != null && StrUtil.isNotEmpty(collectOrderCodeMan.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被其他单据关联!");
}
collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
case 1: //插入
@ -310,6 +327,19 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
throw new JsonException(500, "单据不存在!");
//按单不校验三期
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
CollectOrderCodeManRequest collectOrderCodeManRequest = new CollectOrderCodeManRequest();
collectOrderCodeManRequest.setUdiCode(code);
collectOrderCodeManRequest.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
if (collectOrderCodeMan != null && StrUtil.isNotEmpty(collectOrderCodeMan.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被其他单据关联!");
}
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被拆零!");
}
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
case 1: //插入
if (collectOrderBiz == null) {
@ -419,8 +449,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
return collectOrder;
}
@Resource
IoSplitCodeService splitCodeService;
/**
*
@ -524,4 +552,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
return remove(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
}
IoCollectOrderCodeMan exitCode(CollectOrderCodeManRequest collectOrderCodeManRequest) {
return collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
}
}

@ -1156,7 +1156,6 @@ public class IoCheckInoutService {
}
}
}
}
List<IoCodeEntity> backCodeList = new ArrayList<>();
@ -1165,18 +1164,13 @@ public class IoCheckInoutService {
backCodeList.add(codeEntity);
}
}
//更新预验收单为已被选入
OrderEditRequest orderEditRequest = new OrderEditRequest();
orderEditRequest.setOrderIds(orderList);
orderEditRequest.setPreInSelected(1);
orderService.updateBatchOrder(orderEditRequest);
genBackOrder(orderEntity, backCodeList);
}
} else { //按仓库货位退货
List<IoCodeEntity> backCodeList = new ArrayList<>();
@ -1249,6 +1243,7 @@ public class IoCheckInoutService {
//拆零预出库退回
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
fifoInvService.removeInv(codeList, orderEntity.getWorkPlaceCode());
splitFifoCodeService.updateAllInvAlert(orderEntity.getWorkPlaceCode());
}
}
}

@ -135,8 +135,8 @@ public class IoGenInvService {
if (bussinessTypeEntity.getActionType() == (ConstantStatus.ACTION_TYPE_NORMAL) //带票(正常)
&& bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT) //入库
&& bussinessTypeEntity.getDevInType().equals(1)
) {
deviceChangeOrderService.generateDeviceInfo(orderEntity,codeEnttities);
) {
deviceChangeOrderService.generateDeviceInfo(orderEntity, codeEnttities);
}
}

@ -33,6 +33,9 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
*
*/
@Service
public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCodeEntity> {
@ -82,6 +85,11 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return null;
}
public IoSplitCodeEntity findByCode(String code) {
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
}
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);

@ -28,4 +28,20 @@
</where>
group by icocm.id
</select>
<select id="exitCode" parameterType="com.glxp.api.req.collect.CollectOrderCodeManRequest"
resultType="com.glxp.api.entity.collect.IoCollectOrderCodeMan">
SELECT *
FROM io_collect_order_code_man icocm
left join udi_wms_ct.io_collect_order bu on icocm.orderIdFk = bu.billNo
<where>
<if test="udiCode != '' and udiCode != null">
AND udiCode = #{udiCode}
</if>
<if test="busType != '' and busType != null">
AND busType = #{busType}
</if>
</where>
limit 1
</select>
</mapper>

Loading…
Cancel
Save