|  |  | @ -136,7 +136,132 @@ public class LhzyyClient extends CommonHttpClient { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |     public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { |  |  |  |     public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         return null; |  |  |  |         if (StrUtil.isBlank(udiwmsOrderRequest.getBillNo())) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "单据号不能为空"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         DsOrderRequest dsOrderRequest = new DsOrderRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         BeanUtil.copyProperties(udiwmsOrderRequest, dsOrderRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询单据和详情信息,组装第三方系统接口参数
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper<IoOrderEntity>().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo()).last("limit 1")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dsOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询对应的第三方单据类型
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper<ThrSystemBusApiEntity>().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType()).last("limit 1")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "接口未配置,无法提交!"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dsOrderRequest.setBillType(thrSystemBusApiEntity.getThirdBuyCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询单据类型,设置往来单位信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeDao.selectByAction(udiwmsOrderRequest.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_HOSPTIAL)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //医院客户
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setCorpId(orderEntity.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //查询客户名称
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String corpName = basicCorpDao.selectNameByErpId(orderEntity.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setCorpName(corpName); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //内部科室
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper<AuthWarehouseEntity>().eq(AuthWarehouseEntity::getCode, udiwmsOrderRequest.getCorpId())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             try { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //根据第三方系统标识,获取对应字段的值
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper<ThrInvWarehouseEntity>() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 log.error("查询单据对应往来单位的第三方仓库信息异常", e); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_SP)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //供应商
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ThrCorpEntity thrCorp = thrCorpService.getThrCorp(udiwmsOrderRequest.getCorpId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (null != thrCorp) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dsOrderRequest.setCorpId(thrCorp.getUnitId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dsOrderRequest.setCorpName(thrCorp.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 log.error("查询单据对应的第三方往来单位信息异常"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询仓库信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper<AuthWarehouseEntity>().eq(AuthWarehouseEntity::getCode, orderEntity.getInvCode())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         try { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper<ThrInvWarehouseEntity>() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } catch (Exception e) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             log.info("查询第三方系统仓库信息异常", e); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (StrUtil.nullToEmpty(thrSystemBusApiEntity.getUrl()).equals("useOut")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setCorpId(dsOrderRequest.getLocStorageCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setCorpName(dsOrderRequest.getLocStorageName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper<ThrInvWarehouseEntity>().eq(ThrInvWarehouseEntity::getCode, "29") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocStorageCode("29"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             udiwmsOrderRequest.setLocInvCode("29"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             udiwmsOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dsOrderRequest.setBillFlag("1"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //设置单据出入库类型
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setInoutType(1); //入库
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dsOrderRequest.setInoutType(2); //出库
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dsOrderRequest.setRemark("udi管理系统提交单据"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //组装单据明细数据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<IoCodeEntity> ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .eq(IoCodeEntity::getOrderId, orderEntity.getBillNo()) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<UdiwmsOrderDetailRequest> items = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询业务单据详情
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<IoOrderDetailBizEntity> detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper<IoOrderDetailBizEntity>().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         setOrderDetailList(ioCodeEntities, items, detailBizEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Collections.reverse(items); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //云霄使用items字段,其他医院使用item字段
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dsOrderRequest.setItems(items); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return submitOrderUtil.submitOrder(orderEntity, dsOrderRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void setOrderDetailList(List<IoCodeEntity> ioCodeEntities, List<UdiwmsOrderDetailRequest> orderDetailRequests, List<IoOrderDetailBizEntity> detailBizEntities) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (IoOrderDetailBizEntity detailBizEntity : detailBizEntities) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             UdiwmsOrderDetailRequest item = submitOrderUtil.buildProductInfo(detailBizEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (StrUtil.isEmpty(item.getRegisterNo()) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     || item.getRegisterNo().contains(";") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     || item.getRegisterNo().contains(",") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     || item.getRegisterNo().contains(",")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 BasicUdirelEntity basicUdirel = basicUdirelDao.selectById(detailBizEntity.getBindRlFk()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new LambdaQueryWrapper<ThrProductsEntity>() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         .eq(ThrProductsEntity::getCode, basicUdirel.getThirdId()).last("limit 1")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 item.setRegisterNo(thrProductsEntity.getRegisterNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //封装条码信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             submitOrderUtil.setCodeList(ioCodeEntities, detailBizEntity, item); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             orderDetailRequests.add(item); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
	
		
		
			
				
					|  |  | 
 |