|  |  |  | @ -1,26 +1,37 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.service.forthird.impl; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.bean.BeanUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.ObjectUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.alibaba.fastjson.JSON; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageInfo; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.inout.IoCodeDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.Constant; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.ConstantStatus; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.BasicBussinessTypeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.UdiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoCodeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoCodeTempEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoOrderEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.exception.JsonException; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.basic.FilterUdiRelRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.forthird.IoOrderCodeRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.forthird.IoOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inv.FilterInvProductRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.PageSimpleResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.basic.UdiRelevanceResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.forthird.ForInvOutScanCodeResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.inv.InvProductPageResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.inv.InvProductResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.IBasicBussinessTypeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.UdiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.forthird.ForThirdSysApiService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inout.impl.IoCodeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inout.IoAddInoutService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inout.IoCheckInoutService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inv.impl.InvProductService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.CustomUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.GennerOrderUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.OrderNoTypeBean; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.StringUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.udi.FilterUdiUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
	
		
			
				
					|  |  |  | @ -28,20 +39,27 @@ import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | @Slf4j | 
			
		
	
		
			
				
					|  |  |  |  | @Service | 
			
		
	
		
			
				
					|  |  |  |  | @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
			
				
					|  |  |  |  | public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { | 
			
		
	
		
			
				
					|  |  |  |  | public class ForThirdSysApiService { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     InvProductService invProductService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiRelevanceService udiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     GennerOrderUtils gennerOrderUtils; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IBasicBussinessTypeService bussinessTypeService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCheckInoutService ioCheckInoutService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoAddInoutService addInoutService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public PageSimpleResponse<InvProductResponse> invProductsFilter(FilterInvProductRequest filterInvProductRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         buildForInvProductsFilter(filterInvProductRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         List<InvProductResponse> list = invProductService.filterList(filterInvProductRequest); | 
			
		
	
	
		
			
				
					|  |  |  | @ -52,7 +70,6 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { | 
			
		
	
		
			
				
					|  |  |  |  |         return pageResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public PageSimpleResponse<UdiRelevanceResponse> basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         buildForBasicProductsSearchFilter(filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiRelevanceResponse> list = udiRelevanceService.filterUdiGp(filterUdiRelRequest); | 
			
		
	
	
		
			
				
					|  |  |  | @ -63,19 +80,64 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { | 
			
		
	
		
			
				
					|  |  |  |  |         return pageResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCodeDao codeDao; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse invOutScanCode(ForInvOutScanCodeRequest hisRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         IoOrderRequest orderRequest = hisRequest.getIoOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderRequest.getAction()); | 
			
		
	
		
			
				
					|  |  |  |  |         String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderCodeRequest> codeRequestList = hisRequest.getCodeRequestList(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCodeTempEntity> codeTempEntities = BeanUtil.copyToList(codeRequestList, IoCodeTempEntity.class); | 
			
		
	
		
			
				
					|  |  |  |  |         IoOrderEntity orderEntity = new IoOrderEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtil.copyProperties(orderRequest, orderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setBillNo(orderNo); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setCorpOrderId(CustomUtil.getId() + "x"); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setAction(bussinessTypeEntity.getAction()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setFromCorp(orderRequest.getFromCorp()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setFromType(ConstantStatus.FROM_WEBNEW); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setCreateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setUpdateUser(orderRequest.getUpdateUser() + ""); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setUpdateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setCustomerId("110"); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setDeptCode(orderRequest.getDeptCode()); | 
			
		
	
		
			
				
					|  |  |  |  | //        orderEntity.setCheckPreInOrders(addOrderRequest.getCheckPreInOrders());
 | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setInvCode(orderRequest.getInvCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setOrderType(orderRequest.getOrderType()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setBusType(bussinessTypeEntity.getBusType()); | 
			
		
	
		
			
				
					|  |  |  |  |         orderEntity.setSickerAdNum(orderRequest.getSickerAdNum()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         for (IoCodeTempEntity codeEnttity : codeTempEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setOrderId(orderNo); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setCorpOrderId(orderEntity.getCorpOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setCreateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setUpdateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setMainAction(bussinessTypeEntity.getMainAction()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setAction(bussinessTypeEntity.getAction()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setNameCode(udiEntity.getUdi()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setProduceDate(udiEntity.getProduceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setExpireDate(udiEntity.getExpireDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setSerialNo(udiEntity.getSerialNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setDeptCode(orderEntity.getDeptCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setInvCode(orderEntity.getInvCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), false); | 
			
		
	
		
			
				
					|  |  |  |  |             if (udiRelevanceResponses.size() == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error("收费项目未对照!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setRelId(udiRelevanceResponses.get(0).getId()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeEnttity.setCount(1); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         ForInvOutScanCodeResponse forInvOutScanCodeResponse = new ForInvOutScanCodeResponse(); | 
			
		
	
		
			
				
					|  |  |  |  |         System.out.println(JSON.toJSONString(forInvOutScanCodeRequest)); | 
			
		
	
		
			
				
					|  |  |  |  |         // TODO: 2024/3/15  以获取到业务单据实体 需要对单据进行操作 成功返回 单据号
 | 
			
		
	
		
			
				
					|  |  |  |  |         //校验UDI码是否正确,获取最新的UDI码
 | 
			
		
	
		
			
				
					|  |  |  |  | //        codeDao.selectOne(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getCode, forInvOutScanCodeRequest.getIoOrderRequest().getCode()));
 | 
			
		
	
		
			
				
					|  |  |  |  |         String billNo = "1212121"; | 
			
		
	
		
			
				
					|  |  |  |  |         forInvOutScanCodeResponse.setBillNo(billNo); | 
			
		
	
		
			
				
					|  |  |  |  |         return forInvOutScanCodeResponse; | 
			
		
	
		
			
				
					|  |  |  |  |         forInvOutScanCodeResponse.setBillNo(orderNo); | 
			
		
	
		
			
				
					|  |  |  |  |         addInoutService.dealProcess(orderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |         if (!ioCheckInoutService.checkManual(orderEntity.getBillNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |             ioCheckInoutService.check(orderEntity.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(forInvOutScanCodeResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private void buildForBasicProductsSearchFilter(FilterUdiRelRequest filterUdiRelRequest) { |