|  |  |  | @ -1,29 +1,69 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.service.collect; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.enums.ResultEnum; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.Constant; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.WorkOperType; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.basic.BasicSkPrescribeItemCodeMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.auth.SysWorkplace; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.BasicCollectBustypeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.BasicSkPrescribeItemCode; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.UdiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrder; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrderCodeAuto; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.exception.JsonException; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.collect.CollectOrderCodeAutoRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.collect.CollectOrderCodeManRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inout.AddTagCodeReqeust; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.basic.UdiRelevanceResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.collect.CollectOrderCodeAutoResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.collect.CollectOrderCodeManResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.auth.CustomerService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.auth.SysWorkplaceService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.BasicCollectBustypeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.UdiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  | 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 org.apache.commons.lang3.StringUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Collections; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrderCodeMan; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | @Service | 
			
		
	
		
			
				
					|  |  |  |  | public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCodeManMapper, IoCollectOrderCodeMan> { | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOrderCodeManMapper collectOrderCodeManMapper; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     SysWorkplaceService sysWorkPlaceService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiRelevanceService udiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOrderBizService collectOrderBizService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     GennerOrderUtils gennerOrderUtils; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     BasicCollectBustypeService bustypeService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     CustomerService customerService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOrderService collectOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (collectOrderCodeManRequest == null) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -46,4 +86,277 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode | 
			
		
	
		
			
				
					|  |  |  |  |         return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo) | 
			
		
	
		
			
				
					|  |  |  |  |                 .eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrder prescribeTagCode(AddTagCodeReqeust addTagCodeReqeust) { | 
			
		
	
		
			
				
					|  |  |  |  |         Long userId = customerService.getUserId(); | 
			
		
	
		
			
				
					|  |  |  |  |         String userIds = customerService.getUserId() + ""; | 
			
		
	
		
			
				
					|  |  |  |  |         SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (workPlace == null) throw new JsonException(500,"请先选择工位"); | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrderBiz collectOrderBiz = null; | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrder collectOrder = null; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //1.校验UDI码完整性
 | 
			
		
	
		
			
				
					|  |  |  |  |         String code = addTagCodeReqeust.getCode(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StringUtils.isBlank(code)) throw new JsonException(ResultEnum.DATA_ERROR.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (code.endsWith("\u001D")) { | 
			
		
	
		
			
				
					|  |  |  |  |             code = code.replace("\u001D", ""); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         UdiEntity udiEntity = FilterUdiUtils.getUdi(code); | 
			
		
	
		
			
				
					|  |  |  |  |         if (udiEntity == null) throw new JsonException(500,"无效条码!"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         UdiRelevanceResponse udiRelevanceResponse; | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isEmpty(udiRelevanceResponses))  throw new JsonException(500,"耗材字典不存在此产品!"); | 
			
		
	
		
			
				
					|  |  |  |  |         else udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         //2.校验是否处方单UDI码
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); | 
			
		
	
		
			
				
					|  |  |  |  |                 BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(workPlace.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrder = IoCollectOrder.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                         .billNo(orderNo) | 
			
		
	
		
			
				
					|  |  |  |  |                         .busType(bustypeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .fromType(bustypeEntity.getFromType()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .fromCorp(addTagCodeReqeust.getFromCorp()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .billTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .workPlaceCode(workPlace.getWorkplaceId()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .createUser(userIds) | 
			
		
	
		
			
				
					|  |  |  |  |                         .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .tagStatus(1) | 
			
		
	
		
			
				
					|  |  |  |  |                         .build(); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderService.save(collectOrder); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //直接扫码单生成业务单
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBizService.saveOrUpdate(collectOrderBiz); | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (collectOrder == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new JsonException(500,"单据不存在!"); | 
			
		
	
		
			
				
					|  |  |  |  |             //3.校验该UDI码是否已经出库(是否在预出库队列)
 | 
			
		
	
		
			
				
					|  |  |  |  | //            Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
 | 
			
		
	
		
			
				
					|  |  |  |  | //            if (!b1) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
 | 
			
		
	
		
			
				
					|  |  |  |  | //            }
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             switch (workPlace.getCheckInsert()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 case 1: //插入
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (collectOrderBiz == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |                 case 2: //不插入
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "非此单据追溯码!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; | 
			
		
	
		
			
				
					|  |  |  |  |                     if (count > IntUtil.value(collectOrderBiz.getCount())) { | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "扫码数量超出!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setScanCount(count); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     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()) { | 
			
		
	
		
			
				
					|  |  |  |  |                             throw new JsonException(502, "扫码数量超出!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setScanCount(count1); | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (collectOrderBiz == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                         } else { | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |                 default: | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (collectOrder == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new JsonException(500, "单据不存在!"); | 
			
		
	
		
			
				
					|  |  |  |  |             //3.校验该UDI码是否已经出库(是否在预出库队列)
 | 
			
		
	
		
			
				
					|  |  |  |  | //            Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
 | 
			
		
	
		
			
				
					|  |  |  |  | //            if (!b1) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
 | 
			
		
	
		
			
				
					|  |  |  |  | //            }
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //按单不校验三期
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             switch (workPlace.getCheckInsert()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 case 1: //插入
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (collectOrderBiz == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |                 case 2: //不插入
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "非此单据追溯码!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; | 
			
		
	
		
			
				
					|  |  |  |  |                     if (count > IntUtil.value(collectOrderBiz.getCount())) { | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "扫码数量超出!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setScanCount(count); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |                 case 3: //提醒是否插入
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (!IntUtil.value(addTagCodeReqeust.getInsert())) { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |                             throw new JsonException(502, "非此单据追溯码!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1; | 
			
		
	
		
			
				
					|  |  |  |  |                         if (count1 > IntUtil.value(collectOrderBiz.getCount())) { | 
			
		
	
		
			
				
					|  |  |  |  |                             throw new JsonException(502, "扫码数量超出!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setScanCount(count1); | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (collectOrderBiz == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                         } else { | 
			
		
	
		
			
				
					|  |  |  |  |                             collectOrderBiz.setScanCount(collectOrderBiz.getScanCount() + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |                 default: | 
			
		
	
		
			
				
					|  |  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrderBizService.updateById(collectOrderBiz); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrderCodeMan exitCode = this.findByCode(collectOrderBiz.getOrderIdFk(), code); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |             exitCode.setBizIdFk(collectOrderBiz.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |             this.updateById(exitCode); | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new JsonException(500, "重复扫码!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             IoCollectOrderCodeMan collectOrderCodeMan = | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCollectOrderCodeMan.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                             .udiCode(code) | 
			
		
	
		
			
				
					|  |  |  |  |                             .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .bizIdFk(collectOrderBiz.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .nameCode(udiRelevanceResponse.getNameCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .batchNo(udiEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .productDate(udiEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .expireDate(udiEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .createUser(userId) | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateUser(userId) | 
			
		
	
		
			
				
					|  |  |  |  |                             .scanCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                             .build(); | 
			
		
	
		
			
				
					|  |  |  |  |             this.save(collectOrderCodeMan); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrder.setTagStatus(2); | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrderService.updateById(collectOrder); | 
			
		
	
		
			
				
					|  |  |  |  |         return collectOrder; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && | 
			
		
	
		
			
				
					|  |  |  |  |                         (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |         return IoCollectOrderBiz.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                 .relId(udiRelevanceResponse.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .thrCode(udiRelevanceResponse.getMainId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .ybbm(udiRelevanceResponse.getYbbm()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .payFeeCode(udiRelevanceResponse.getPayFeeCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .cpmctymc(udiRelevanceResponse.getCpmctymc()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .nameCode(udiRelevanceResponse.getNameCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .ggxh(udiRelevanceResponse.getGgxh()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .batchNo(udiEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .productDate(udiEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .expireDate(udiEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .count(0) | 
			
		
	
		
			
				
					|  |  |  |  |                 .actCount(0) | 
			
		
	
		
			
				
					|  |  |  |  |                 .scanCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .scanActCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .measureUnit(udiRelevanceResponse.getMeasname()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .build(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz vailByBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && | 
			
		
	
		
			
				
					|  |  |  |  |                         (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz vailNoBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderBiz> addList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     addList.add(collectOrderBiz); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (addList.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : addList) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (IntUtil.value(collectOrderBiz.getCount()) > IntUtil.value(collectOrderBiz.getScanCount())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             return addList.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |