|  |  |  | @ -1,8 +1,10 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.controller.inout; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.annotation.CusRedissonAnnotation; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectCode; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrder; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inv.InvProductDetailEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.exception.JsonException; | 
			
		
	
	
		
			
				
					|  |  |  | @ -10,6 +12,8 @@ import com.glxp.api.req.collect.CollectOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.collect.IoCollectOrderResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.inout.IoOrderDetailCodeResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.inout.VailCodeResultResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectCodeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectOrderBizBackupService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectOriginService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inout.impl.IoCodeService; | 
			
		
	
	
		
			
				
					|  |  |  | @ -105,6 +109,8 @@ public class IoCodeTempController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOriginService collectOriginService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOrderService collectOrderService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectCodeService ioCollectCodeService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * PDA-----单据上传 | 
			
		
	
	
		
			
				
					|  |  |  | @ -2515,4 +2521,101 @@ public class IoCodeTempController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return true; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 工位上货选入完成单据 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
		
			
				
					|  |  |  |  |     @PostMapping("warehouse/inout/batchAddCodeByOrderFinish") | 
			
		
	
		
			
				
					|  |  |  |  |     @Log(title = "单据管理", businessType = BusinessType.INSERT) | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse batchAddCodeByOrderFinish(@RequestBody AddOrderCodeRequest addOrderCodeRequest, BindingResult bindingResult) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (bindingResult.hasErrors()) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         String orderFinishBillNo = addOrderCodeRequest.getOrderFinishBillNo(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectCode> list = ioCollectCodeService.list(new LambdaUpdateWrapper<IoCollectCode>().eq(IoCollectCode::getBillNo, orderFinishBillNo)); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isEmpty(list))  return ResultVOUtils.error(500, "未找到已完成单的码明细"); | 
			
		
	
		
			
				
					|  |  |  |  |         List<String> codeList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         list.forEach(item -> { | 
			
		
	
		
			
				
					|  |  |  |  |             String code = item.getCode(); | 
			
		
	
		
			
				
					|  |  |  |  |             Integer reCountObj  = item.getScanCount(); | 
			
		
	
		
			
				
					|  |  |  |  |             int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null,则默认为0次迭代
 | 
			
		
	
		
			
				
					|  |  |  |  |             for (int i = 0; i < reCount; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |                 codeList.add(code); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |         addOrderCodeRequest.setCodeList(codeList); | 
			
		
	
		
			
				
					|  |  |  |  |         addOrderCodeRequest.setCorpOrderId(orderFinishBillNo); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         AddCodeResult addCodeResult = new AddCodeResult(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isEmpty(codeList)) | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "追溯码不能为空"); | 
			
		
	
		
			
				
					|  |  |  |  |         List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         for (String code : codeList) { | 
			
		
	
		
			
				
					|  |  |  |  |             VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); | 
			
		
	
		
			
				
					|  |  |  |  |             AddOrderRequest addOrderRequest = new AddOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             addOrderRequest.setBillNo(addCodeResult.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); | 
			
		
	
		
			
				
					|  |  |  |  |             code = code.trim(); | 
			
		
	
		
			
				
					|  |  |  |  |             if (code.endsWith("\u001D")) { | 
			
		
	
		
			
				
					|  |  |  |  |                 code = code.replace("\u001D", ""); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             UdiEntity udiEntity = FilterUdiUtils.getUdi(code); | 
			
		
	
		
			
				
					|  |  |  |  |             if (udiEntity == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setStatus(2); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setErrMsg("无效条码"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 udiEntity.setBatchNo(addOrderRequest.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 udiEntity.setProduceDate(addOrderRequest.getProduceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 udiEntity.setExpireDate(addOrderRequest.getExpireDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 udiEntity.setSerialNo(addOrderRequest.getSerialNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             AuthAdmin authAdmin = getUser(); | 
			
		
	
		
			
				
					|  |  |  |  |             addOrderRequest.setInvCode(authAdmin.getLocInvCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (IntUtil.value(addOrderCodeRequest.getInoutType()) == 2) { | 
			
		
	
		
			
				
					|  |  |  |  |                 addOrderRequest.setAction(ConstantType.SPLIT_RETURN); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 addOrderRequest.setAction(ConstantType.SPLIT_OUT); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse baseResponse = null; | 
			
		
	
		
			
				
					|  |  |  |  |             addOrderRequest.setCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |             if (IntUtil.value(udiEntity.getProductType()) == 2) { | 
			
		
	
		
			
				
					|  |  |  |  |                 baseResponse = adddGrugOrder(addOrderRequest, udiEntity, code); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setStatus(1); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setErrMsg("正确"); | 
			
		
	
		
			
				
					|  |  |  |  |                 AddCodeResult temp = (AddCodeResult) baseResponse.getData(); | 
			
		
	
		
			
				
					|  |  |  |  |                 addCodeResult.setOrderId(temp.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 addOrderRequest.setBillNo(temp.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setStatus(2); | 
			
		
	
		
			
				
					|  |  |  |  |                 vailCodeResultResponse.setErrMsg(baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             vailCodeResultResponses.add(vailCodeResultResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         addCodeResult.setVailCodeResultResponses(vailCodeResultResponses); | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(addCodeResult); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |