|  |  |  | @ -0,0 +1,814 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.mipsdl.client.jydiyy; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.bean.BeanUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollectionUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.exceptions.ExceptionUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.json.JSONUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.alibaba.fastjson.JSON; | 
			
		
	
		
			
				
					|  |  |  |  | import com.alibaba.fastjson.JSONObject; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.toolkit.StringUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.client.CommonHttpClient; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.config.ThirdSysConfig; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.constant.ConstantType; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.constant.Constants; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.auth.AuthWarehouseDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.basic.BasicBussinessTypeDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.basic.BasicCorpDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.basic.BasicUdirelDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.inout.IoCodeDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.inout.IoOrderDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.inout.IoOrderDetailBizDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.dao.thrsys.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.basic.BasicBussinessTypeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.basic.BasicCorpEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.basic.BasicUdirelEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.inout.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.njxyy.ProductEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.njxyy.SickerEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.system.UdiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.entity.thrsys.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.http.HttpClient; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.base.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.base.forthird.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.ctqyy.GetSickRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.njxyy.PostThrProductRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.phxyy.PhBusTypeRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.phxyy.PhOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.phxyy.PhUnitRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.req.post.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.res.PageSimpleResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.res.udiwms.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.service.auth.AuthWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.service.order.OrderUploadLogService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.thirddao.njxyy.ThrCorpMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.thirddao.njxyy.ThrProductsMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.thirddao.njxyy.ThrSickerMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.mipsdl.util.*; | 
			
		
	
		
			
				
					|  |  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import java.math.BigDecimal; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Collections; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  |  |  * 建阳第一医院医院对接物资系统Client | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | @Slf4j | 
			
		
	
		
			
				
					|  |  |  |  | @Service(value = "100016HttpClient") //bean注册名称,使用编码 + HttpClient,文件接口加 FileClient
 | 
			
		
	
		
			
				
					|  |  |  |  | public class JydiyyClient extends CommonHttpClient { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThrSystemDetailService thrSystemDetailService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private HttpClient httpClient; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThrBustypeOriginDao thrBustypeOriginDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private IoOrderDao orderDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThrSystemBusApiDao thrSystemBusApiDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicBussinessTypeDao basicBussinessTypeDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicCorpDao basicCorpDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private IoCodeDao codeDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private AuthWarehouseDao authWarehouseDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThrInvWarehouseDao thrInvWarehouseDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private AuthWarehouseService authWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThirdSysConfig thirdSysConfig; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private IoOrderDetailBizDao orderDetailBizDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private SubmitOrderUtil submitOrderUtil; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicUdirelDao basicUdirelDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrProductsDao thrProductsDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private OrderUploadLogService orderUploadLogService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private ThrOrderUploadBustypesMapper thrOrderUploadBustypesMapper; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrCorpMapper thrCorpMapper; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrProductsMapper thrProductsMapper; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrSickerMapper thrSickerMapper; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 获取产品信息---(A001产品信息查询) | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param udiwmsProductRequest | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<ProductEntity> page = new Page<>(udiwmsProductRequest.getPage(), udiwmsProductRequest.getLimit()); | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<ProductEntity> productEntityIPage = thrProductsMapper.selectPage(page, new QueryWrapper<ProductEntity>() | 
			
		
	
		
			
				
					|  |  |  |  |                 .lambda() | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(udiwmsProductRequest.getCode()), ProductEntity::getCode, udiwmsProductRequest.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(udiwmsProductRequest.getName()), ProductEntity::getName, udiwmsProductRequest.getName())); | 
			
		
	
		
			
				
					|  |  |  |  |         PageSimpleResponse<ProductEntity> pageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setTotal(productEntityIPage.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setList(productEntityIPage.getRecords()); | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 获取患者信息--( A003病人信息视图) | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param getSickRequest | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getSickInfo(GetSickRequest getSickRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<SickerEntity> page = new Page<>(getSickRequest.getPage(), getSickRequest.getLimit()); | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<SickerEntity> productEntityIPage = thrSickerMapper.selectPage(page, new QueryWrapper<SickerEntity>() | 
			
		
	
		
			
				
					|  |  |  |  |                 .lambda() | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(getSickRequest.getCode()), SickerEntity::getIdentityNo, getSickRequest.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(getSickRequest.getName()), SickerEntity::getName, getSickRequest.getName())); | 
			
		
	
		
			
				
					|  |  |  |  |         List<BasicSkSickerResponse> basicSkSickerResponses = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         productEntityIPage.getRecords().forEach(sickerEntity -> { | 
			
		
	
		
			
				
					|  |  |  |  |             basicSkSickerResponses.add(BasicSkSickerResponse.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                     .sickerId(sickerEntity.getInpatientID()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .code(sickerEntity.getCurno()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .name(sickerEntity.getName()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .adNum(sickerEntity.getInpatientID()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .idNum(sickerEntity.getIdentityNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .phone(sickerEntity.getCellPhoneNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .gender(sickerEntity.getSex()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .bornDate(sickerEntity.getBirthDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .guardianName(sickerEntity.getOperName()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .build()); | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |         PageSimpleResponse<BasicSkSickerResponse> pageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setTotal(productEntityIPage.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setList(basicSkSickerResponses); | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 提交关联产品更新--(A004接收新增产品信息) | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse postRelProduct(PostRelProductRequest postThrInvProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiRelevanceResponse> datas = postThrInvProductsRequest.getDatas(); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = null; | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(datas)) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (UdiRelevanceResponse udiRelevanceResponse : datas) { | 
			
		
	
		
			
				
					|  |  |  |  |                 PostThrProductRequest postThrProductsRequest = new PostThrProductRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                 BeanUtil.copyProperties(udiRelevanceResponse, postThrProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_POST_THR_PRODUCTS_URL), postThrProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error(baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  | //                return baseResponse;
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(baseResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * B001 查询指定科室高值/普耗库存 | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param forInvProductsFilter | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse queryUdiInvProductsFilter(ForInvProductsFilter forInvProductsFilter) { | 
			
		
	
		
			
				
					|  |  |  |  |         //入参业务系统字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtils.copyProperties(forInvProductsFilter, filterInvProductRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         //调用业务系统http
 | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvProductsFilterUrl(), filterInvProductRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         //业务系统返回参数 字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<InvProductResponse> pageSimpleResponse = | 
			
		
	
		
			
				
					|  |  |  |  |                     JSONObject.parseObject(String.valueOf(baseResponse.getData()), PageSimpleResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             List<InvProductResponse> list = pageSimpleResponse.getList(); | 
			
		
	
		
			
				
					|  |  |  |  |             //处理list字段 进行实体转换 过滤掉不必要字段
 | 
			
		
	
		
			
				
					|  |  |  |  |             String json = JSON.toJSONString(list); | 
			
		
	
		
			
				
					|  |  |  |  |             List<ForInvProductsResponse> newList = JSON.parseArray(json, ForInvProductsResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<ForInvProductsResponse> newPageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setTotal(pageSimpleResponse.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setList(newList); | 
			
		
	
		
			
				
					|  |  |  |  |             baseResponse.setData(newPageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 扫码获取高值耗材库存 | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param forInvProductsFilter | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse queryUdiHighInvProductsFilter(ForInvProductsFilter forInvProductsFilter) { | 
			
		
	
		
			
				
					|  |  |  |  |         //入参业务系统字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtils.copyProperties(forInvProductsFilter, filterInvProductRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         log.info("HIS扫码获取高值耗材库存:" + JSONUtil.toJsonStr(forInvProductsFilter)); | 
			
		
	
		
			
				
					|  |  |  |  |         //调用业务系统http
 | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvHighProductsFilterUrl(), filterInvProductRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         //业务系统返回参数 字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<InvProductResponse> pageSimpleResponse = | 
			
		
	
		
			
				
					|  |  |  |  |                     JSONObject.parseObject(String.valueOf(baseResponse.getData()), PageSimpleResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             List<InvProductResponse> list = pageSimpleResponse.getList(); | 
			
		
	
		
			
				
					|  |  |  |  |             //处理list字段 进行实体转换 过滤掉不必要字段
 | 
			
		
	
		
			
				
					|  |  |  |  |             String json = JSON.toJSONString(list); | 
			
		
	
		
			
				
					|  |  |  |  |             List<ForInvProductsResponse> newList = JSON.parseArray(json, ForInvProductsResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<ForInvProductsResponse> newPageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setTotal(pageSimpleResponse.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setList(newList); | 
			
		
	
		
			
				
					|  |  |  |  |             baseResponse.setData(newPageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 获取往来单位 | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param udiwmsUnitRequest | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         PhUnitRequest phUnitRequest = new PhUnitRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtil.copyProperties(udiwmsUnitRequest, phUnitRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<ThrCorpEntity> page = new Page<>(udiwmsUnitRequest.getPage(), udiwmsUnitRequest.getLimit()); | 
			
		
	
		
			
				
					|  |  |  |  |         IPage<ThrCorpEntity> thrCorpEntityPage = thrCorpMapper.selectPage(page, new QueryWrapper<ThrCorpEntity>() | 
			
		
	
		
			
				
					|  |  |  |  |                 .lambda() | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(phUnitRequest.getUnitId()), ThrCorpEntity::getUnitId, phUnitRequest.getUnitId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .like(StringUtils.isNotBlank(phUnitRequest.getName()), ThrCorpEntity::getName, phUnitRequest.getName())); | 
			
		
	
		
			
				
					|  |  |  |  |         PageSimpleResponse<ThrCorpEntity> pageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setTotal(thrCorpEntityPage.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |         pageSimpleResponse.setList(thrCorpEntityPage.getRecords()); | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         PhBusTypeRequest phBusTypeRequest = new PhBusTypeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtil.copyProperties(udiwmsBusTypeRequest, phBusTypeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_BUS_TYPE_QUERY_URL), phBusTypeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getOrders(UdiwmsOrderQueryRequest udiwmsOrderQueryRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isBlank(udiwmsOrderQueryRequest.getBillType())) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "单据类型不能为空"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         //查询绑定的第三方单据类型
 | 
			
		
	
		
			
				
					|  |  |  |  |         String thirdAction = thrBustypeOriginDao.findThirdActionByBillType(udiwmsOrderQueryRequest.getBillType(), DictUtl.CURRENT_HOSP_CODE); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderQueryRequest.setBillType(thirdAction); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_ORDER_QUERY_URL), udiwmsOrderQueryRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (true) | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "暂时不传"); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isBlank(udiwmsOrderRequest.getBillNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "单据号不能为空"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         PhOrderRequest phOrderRequest = new PhOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtil.copyProperties(udiwmsOrderRequest, phOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //查询单据和详情信息,组装第三方系统接口参数
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper<IoOrderEntity>().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo()).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |         if (orderEntity.getAuditTime() == null) | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); | 
			
		
	
		
			
				
					|  |  |  |  |         else { | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getAuditTime())); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         //查询对应的第三方单据类型
 | 
			
		
	
		
			
				
					|  |  |  |  |         ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper<ThrSystemBusApiEntity>().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType())); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "接口未配置,无法提交!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         phOrderRequest.setBillType(thrSystemBusApiEntity.getThirdBuyCode()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //查询单据类型,设置往来单位信息
 | 
			
		
	
		
			
				
					|  |  |  |  |         BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeDao.selectByAction(udiwmsOrderRequest.getBillType()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_HOSPTIAL)) { | 
			
		
	
		
			
				
					|  |  |  |  |             //医院客户
 | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setCorpId(orderEntity.getFromCorp()); | 
			
		
	
		
			
				
					|  |  |  |  |             //查询客户名称
 | 
			
		
	
		
			
				
					|  |  |  |  |             String corpName = basicCorpDao.selectNameByErpId(orderEntity.getFromCorp()); | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.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())); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error("查询单据对应往来单位的第三方仓库信息异常", e); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             //供应商
 | 
			
		
	
		
			
				
					|  |  |  |  |             BasicCorpEntity basicCorpEntity = basicCorpDao.selectByErpId(orderEntity.getFromCorp()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (null != basicCorpEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setCorpId(basicCorpEntity.getThirdId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setCorpName(basicCorpEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 String msg = "查询单据对应的第三方往来单位信息异常"; | 
			
		
	
		
			
				
					|  |  |  |  |                 orderUploadLogService.updateLocalErr(orderEntity, msg); | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error("----单据提交-----" + orderEntity.getBillNo() + msg); | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, msg); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | //            ThrCorpEntity thrCorp = thrCorpService.getThrCorp(udiwmsOrderRequest.getCorpId());
 | 
			
		
	
		
			
				
					|  |  |  |  | //            if (null != thrCorp) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                phOrderRequest.setCorpId(thrCorp.getUnitId());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                phOrderRequest.setCorpName(thrCorp.getName());
 | 
			
		
	
		
			
				
					|  |  |  |  | //            } else {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                String msg = "查询单据对应的第三方往来单位信息异常";
 | 
			
		
	
		
			
				
					|  |  |  |  | //                orderUploadLogService.updateLocalErr(orderEntity, msg);
 | 
			
		
	
		
			
				
					|  |  |  |  | //                log.error("----单据提交-----" + orderEntity.getBillNo() + msg);
 | 
			
		
	
		
			
				
					|  |  |  |  | //                return ResultVOUtils.error(500, msg);
 | 
			
		
	
		
			
				
					|  |  |  |  | //            }
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //查询仓库信息
 | 
			
		
	
		
			
				
					|  |  |  |  |         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())); | 
			
		
	
		
			
				
					|  |  |  |  |             if (thrInvWarehouseEntity != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                 phOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 orderUploadLogService.updateLocalErr(orderEntity, "查询第三方系统仓库信息异常"); | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "查询第三方系统仓库信息异常"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |             log.error("查询第三方系统仓库信息异常", ExceptionUtil.stacktraceToString(e)); | 
			
		
	
		
			
				
					|  |  |  |  |             orderUploadLogService.updateLocalErr(orderEntity, "查询第三方系统仓库信息异常" + ExceptionUtil.stacktraceToString(e)); | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "查询第三方系统仓库信息异常"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         phOrderRequest.setBillFlag("1"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.nullToEmpty(thrSystemBusApiEntity.getUrl()).equals("useOut")) { | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setCorpId(phOrderRequest.getLocStorageCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setCorpName(phOrderRequest.getLocStorageName()); | 
			
		
	
		
			
				
					|  |  |  |  |             ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper<ThrInvWarehouseEntity>().eq(ThrInvWarehouseEntity::getCode, "29") | 
			
		
	
		
			
				
					|  |  |  |  |                     .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setLocStorageCode("29"); | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //设置单据出入库类型
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setInoutType(1); //入库
 | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { | 
			
		
	
		
			
				
					|  |  |  |  |             phOrderRequest.setInoutType(2); //出库
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         phOrderRequest.setRemark("UDI单据:" + udiwmsOrderRequest.getBillNo()); //备注
 | 
			
		
	
		
			
				
					|  |  |  |  |         //组装单据明细数据
 | 
			
		
	
		
			
				
					|  |  |  |  |         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);
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderDetailBizEntity> stockOrderDetailEntities = transferSerList(detailBizEntities, orderEntity.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  | //        Collections.sort(stockOrderDetailEntities, (o1, o2) -> {
 | 
			
		
	
		
			
				
					|  |  |  |  | //            String o1Str = o1.getCoName() + o1.getSpec() + o1.getBatchNo() + o1.getSerialNo();
 | 
			
		
	
		
			
				
					|  |  |  |  | //            String o2Str = o2.getCoName() + o2.getSpec() + o2.getBatchNo() + o1.getSerialNo();
 | 
			
		
	
		
			
				
					|  |  |  |  | //            Integer cp = o1Str.compareTo(o2Str);
 | 
			
		
	
		
			
				
					|  |  |  |  | //            return cp;
 | 
			
		
	
		
			
				
					|  |  |  |  | //        });
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         for (IoOrderDetailBizEntity stockOrderDetailEntity : stockOrderDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             BasicUdirelEntity udiRelevanceEntity = basicUdirelDao.selectById(stockOrderDetailEntity.getBindRlFk()); | 
			
		
	
		
			
				
					|  |  |  |  | //            if (StrUtil.isNotEmpty(udiRelevanceEntity.getMainId())) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new QueryWrapper<ThrProductsEntity>().eq("code", udiRelevanceEntity.getMainId()).last("limit 1"));
 | 
			
		
	
		
			
				
					|  |  |  |  | //                if (thrProductsEntity != null && StrUtil.isNotEmpty(thrProductsEntity.getRegisterNo())) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                    stockOrderDetailEntity.setCertCode(thrProductsEntity.getRegisterNo());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                }
 | 
			
		
	
		
			
				
					|  |  |  |  | //            }
 | 
			
		
	
		
			
				
					|  |  |  |  |             UdiwmsOrderDetailRequest item = new UdiwmsOrderDetailRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtil.copyProperties(stockOrderDetailEntity, item); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setManufactory(stockOrderDetailEntity.getManufacturer()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setProductDate(stockOrderDetailEntity.getProductDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setExpireDate(stockOrderDetailEntity.getExpireDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setBatchNo(stockOrderDetailEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(stockOrderDetailEntity.getProductDate())) { | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setProductDate(com.glxp.mipsdl.admin.util.DateUtil.formatExpireTime("20" + stockOrderDetailEntity.getProductDate()));
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(stockOrderDetailEntity.getExpireDate())) { | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setExpireDate(com.glxp.mipsdl.admin.util.DateUtil.formatExpireTime("20" + stockOrderDetailEntity.getExpireDate()));
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | //            item.setMeasname(udiRelevanceEntity.getMeasname());
 | 
			
		
	
		
			
				
					|  |  |  |  |             item.setStandard(stockOrderDetailEntity.getSpec()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setRegisterNo(stockOrderDetailEntity.getCertCode().replace(";", "")); | 
			
		
	
		
			
				
					|  |  |  |  |             IoOrderUploadLogEntity uploadLog = new IoOrderUploadLogEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setPrice(stockOrderDetailEntity.getPrice()); | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setFirstSalesInvNo(stockOrderDetailEntity.getFirstSalesInvNo());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setSecSalesInvNo(stockOrderDetailEntity.getSecSalesInvNo());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setInvoiceDate(stockOrderDetailEntity.getInvoiceDate());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                item.setSecSalesListNo(stockOrderDetailEntity.getSecSalesListNo());
 | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setBillNo(orderEntity.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                 String fphm = ""; | 
			
		
	
		
			
				
					|  |  |  |  |                 String fprq = null; | 
			
		
	
		
			
				
					|  |  |  |  |                 List<IoOrderInvoiceEntity> invoiceList = IoOrderInvoiceEntity.builder().build() | 
			
		
	
		
			
				
					|  |  |  |  |                         .selectList(Wrappers.lambdaQuery(IoOrderInvoiceEntity.class).eq(IoOrderInvoiceEntity::getOrderIdFk, orderEntity.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .eq(IoOrderInvoiceEntity::getBindRlFk, stockOrderDetailEntity.getBindRlFk()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .eq(StrUtil.isNotEmpty(stockOrderDetailEntity.getBatchNo()), IoOrderInvoiceEntity::getBatchNo, stockOrderDetailEntity.getBatchNo()). | 
			
		
	
		
			
				
					|  |  |  |  |                                 groupBy(IoOrderInvoiceEntity::getInvoiceEncode)); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (CollectionUtil.isNotEmpty(invoiceList)) { | 
			
		
	
		
			
				
					|  |  |  |  |                     fphm = invoiceList.stream().map(IoOrderInvoiceEntity::getInvoiceEncode).collect(Collectors.joining(",")); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (invoiceList.get(0).getInvoiceDate() != null) | 
			
		
	
		
			
				
					|  |  |  |  |                         fprq = DateUtil.formatDateTime(invoiceList.get(0).getInvoiceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setFirstSalesInvNo(fphm); | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setSecSalesInvNo(fphm); | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setInvoiceDate(fprq); | 
			
		
	
		
			
				
					|  |  |  |  |                 boolean isNeedFp = false; | 
			
		
	
		
			
				
					|  |  |  |  |                 ThrOrderUploadBustypesEntity thrOrderUploadBustypesEntity = thrOrderUploadBustypesMapper.selectOne(new QueryWrapper<ThrOrderUploadBustypesEntity>().eq("action", basicBussinessTypeEntity.getAction()).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (thrOrderUploadBustypesEntity != null && IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 3) { | 
			
		
	
		
			
				
					|  |  |  |  |                     isNeedFp = true; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT) && StrUtil.isEmpty(fphm) && isNeedFp) { | 
			
		
	
		
			
				
					|  |  |  |  |                     String errMsg = "提交失败,错误信息:" + stockOrderDetailEntity.getCoName() + "发票缺失,请补齐后重新提交"; | 
			
		
	
		
			
				
					|  |  |  |  |                     orderUploadLogService.updateLocalErr(orderEntity, errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |                     return ResultVOUtils.error(500, errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new QueryWrapper<ThrProductsEntity>().eq("code", udiRelevanceEntity.getMainId()).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.isEmpty(udiRelevanceEntity.getMainId()) || thrProductsEntity == null || StrUtil.isEmpty(thrProductsEntity.getCode())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     String errMsg = "提交失败,错误信息:" + "产品DI未关联第三方产品信息"; | 
			
		
	
		
			
				
					|  |  |  |  |                     orderUploadLogService.updateLocalErr(orderEntity, errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |                     return ResultVOUtils.error(500, errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     item.setProductId(thrProductsEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     item.setProductName(thrProductsEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 items.add(item); | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error(e.getMessage(), e); | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setStatus(3); | 
			
		
	
		
			
				
					|  |  |  |  |                 String errMsg = "提交失败,错误信息:" + e.getMessage(); | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setResult(errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |                 orderUploadLogService.insertOrUpdate(uploadLog); | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, errMsg); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         Collections.reverse(items); | 
			
		
	
		
			
				
					|  |  |  |  |         phOrderRequest.setItem(items); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return submitOrderUtil.submitOrder(orderEntity, phOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public List<IoOrderDetailBizEntity> transferSerList(List<IoOrderDetailBizEntity> stockOrderDetailEntities, String orderId) { | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderDetailBizEntity> resultList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCodeEntity> ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>() | 
			
		
	
		
			
				
					|  |  |  |  |                 .eq(IoCodeEntity::getOrderId, orderId) | 
			
		
	
		
			
				
					|  |  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(ioCodeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCodeEntity codeDetaiEntity : ioCodeEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (CollUtil.isNotEmpty(stockOrderDetailEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                     for (IoOrderDetailBizEntity stockOrderDetailEntity : stockOrderDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (IntUtil.value(codeDetaiEntity.getRelId()) == IntUtil.value(stockOrderDetailEntity.getBindRlFk()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 && StrUtil.trimToEmpty(codeDetaiEntity.getBatchNo()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()))) { | 
			
		
	
		
			
				
					|  |  |  |  |                             IoOrderDetailBizEntity item = new IoOrderDetailBizEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |                             BeanUtils.copyProperties(stockOrderDetailEntity, item); | 
			
		
	
		
			
				
					|  |  |  |  |                             item.setSerialNo(codeDetaiEntity.getSerialNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                             item.setCount(codeDetaiEntity.getReCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                             item.setReCount(codeDetaiEntity.getReCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                             resultList.add(item); | 
			
		
	
		
			
				
					|  |  |  |  |                             break; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return resultList; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getInvProducts(UdiwmsInvProductsRequest udiwmsInvProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_INV_PI_URL), udiwmsInvProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_WAREHOUSE_QUERY_URL), udiwmsWarehouseRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse postProducts(PostThrProductsRequest postThrProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         postThrProductsRequest.setUploadType("文件导入"); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostPiUrl(), postThrProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse postCorps(PostThrCorpRequest postThrCorpRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         postThrCorpRequest.setUploadType("文件导入"); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostCorpUrl(), postThrCorpRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse postOrderDetail(PostFileThrOrderRequest postFileThrOrderRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         postFileThrOrderRequest.setUploadType("文件导入"); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostOrderUrl(), postFileThrOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse postInvProducts(PostThrInvProductsRequest postThrInvProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvPiUrl(), postThrInvProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * HIS获取普耗库存 | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param forBasicProductsSearchFilter | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse queryUdiBasicProductsSearch(ForBasicProductsSearchFilter forBasicProductsSearchFilter) { | 
			
		
	
		
			
				
					|  |  |  |  |         //入参业务系统字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtils.copyProperties(forBasicProductsSearchFilter, filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         log.info("HIS获取普耗库存:" + JSONUtil.toJsonStr(forBasicProductsSearchFilter)); | 
			
		
	
		
			
				
					|  |  |  |  |         //调用业务系统http
 | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostBasicProductsSearch(), filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         //业务系统返回参数 字段控制
 | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = | 
			
		
	
		
			
				
					|  |  |  |  |                     JSONObject.parseObject(String.valueOf(baseResponse.getData()), PageSimpleResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             List<UdiRelevanceResponse> list = pageSimpleResponse.getList(); | 
			
		
	
		
			
				
					|  |  |  |  |             //处理list字段 进行实体转换 过滤掉不必要字段
 | 
			
		
	
		
			
				
					|  |  |  |  |             String json = JSON.toJSONString(list); | 
			
		
	
		
			
				
					|  |  |  |  |             List<ForBasicProductsSearchResponse> newList = JSON.parseArray(json, ForBasicProductsSearchResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             PageSimpleResponse<ForBasicProductsSearchResponse> newPageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setTotal(pageSimpleResponse.getTotal()); | 
			
		
	
		
			
				
					|  |  |  |  |             newPageSimpleResponse.setList(newList); | 
			
		
	
		
			
				
					|  |  |  |  |             baseResponse.setData(newPageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse queryUdiInvOutScanCode(ForInvOutScanCodeFilter forInvOutScanCodeFilter) { | 
			
		
	
		
			
				
					|  |  |  |  |         log.error(forInvOutScanCodeFilter.toString()); | 
			
		
	
		
			
				
					|  |  |  |  |         ForInvOutScanCodeRequest forInvOutScanCodeRequest = new ForInvOutScanCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         IoOrderRequest ioOrderRequest = new IoOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         ioOrderRequest.setCreateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ForInvOutScanCodeFilter.Billbaseinfo billbaseinfo = forInvOutScanCodeFilter.getBillbaseinfo(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ioOrderRequest.setCreateUser(billbaseinfo.getUserid()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isNotEmpty(billbaseinfo.getDeptid())) { | 
			
		
	
		
			
				
					|  |  |  |  |             AuthWarehouseEntity authWarehouseEntity = authWarehouseDao.selectOne(new QueryWrapper<AuthWarehouseEntity>().eq("thirdId", billbaseinfo.getDeptid()).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |             if (authWarehouseEntity == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "UDI系统科室未对照!"); | 
			
		
	
		
			
				
					|  |  |  |  |             ioOrderRequest.setInvCode(authWarehouseEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             ioOrderRequest.setDeptCode(authWarehouseEntity.getParentId()); | 
			
		
	
		
			
				
					|  |  |  |  |         } else | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "HIS执行科室不能为空!"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ForInvOutScanCodeFilter.Patientinfo patientinfo = forInvOutScanCodeFilter.getPatientinfo(); | 
			
		
	
		
			
				
					|  |  |  |  |         ioOrderRequest.setFromCorp(patientinfo.getInpatientid()); | 
			
		
	
		
			
				
					|  |  |  |  |         ioOrderRequest.setRemark(patientinfo.getInpatientid() + "-" + patientinfo.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |         ioOrderRequest.setSickerAdNum(patientinfo.getInpatientid()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<ForInvOutScanCodeFilter.Highvalue> highvalues = forInvOutScanCodeFilter.getHighvaluelist(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isEmpty(highvalues)) | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "耗材使用信息不能为空!"); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderCodeRequest> codeRequestListYb = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderCodeRequest> codeRequestListJs = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoOrderCodeRequest> codeRequestListYys = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         for (ForInvOutScanCodeFilter.Highvalue highvalue : highvalues) { | 
			
		
	
		
			
				
					|  |  |  |  |             IoOrderCodeRequest codeRequest = new IoOrderCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             codeRequest.setCode(highvalue.getUdicode()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeRequest.setInvCode(ioOrderRequest.getInvCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             codeRequest.setAction(ioOrderRequest.getAction()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(highvalue.getPrice())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 codeRequest.setPrice(new BigDecimal(highvalue.getPrice())); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (IntUtil.value(highvalue.getQuantity()) == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "耗材数量不能为空!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             codeRequest.setCount(IntUtil.value(highvalue.getQuantity())); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             UdiEntity udiEntity = FilterUdiUtils.getUdi(codeRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (udiEntity == null || StrUtil.isEmpty(udiEntity.getUdi())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "UDI码格式错误!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             BasicUdirelEntity udirelEntity = basicUdirelDao.selectByNameCode(udiEntity.getUdi()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (udirelEntity == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "耗材字典未对照!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (IntUtil.value(udirelEntity.getPurType()) == 2) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.success("YAS" + CustomUtil.getUnitId()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (codeRequest.getCount() == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "扫码数量不能为零!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } else if (codeRequest.getCount() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 //收费入库
 | 
			
		
	
		
			
				
					|  |  |  |  |                 ioOrderRequest.setAction("SC20250702001"); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (IntUtil.value(udirelEntity.getPurType()) == 1) { | 
			
		
	
		
			
				
					|  |  |  |  |                     //收费退库 入账
 | 
			
		
	
		
			
				
					|  |  |  |  |                     ioOrderRequest.setAction("SC20250702002"); | 
			
		
	
		
			
				
					|  |  |  |  |                     //判断库存
 | 
			
		
	
		
			
				
					|  |  |  |  |                     List<IoCodeEntity> codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC20250702002")); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                         codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getErrUdiCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC20250702002")); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                             return ResultVOUtils.error(500, "该UDI码未出库!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     codeRequestListYb.add(codeRequest); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 } else if (IntUtil.value(udirelEntity.getPurType()) == 2) { | 
			
		
	
		
			
				
					|  |  |  |  |                     //收费退库 预验收
 | 
			
		
	
		
			
				
					|  |  |  |  |                     ioOrderRequest.setAction("SC70927695263969"); | 
			
		
	
		
			
				
					|  |  |  |  |                     //判断库存
 | 
			
		
	
		
			
				
					|  |  |  |  |                     List<IoCodeEntity> codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC70927695263969")); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                         codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getErrUdiCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC70927695263969")); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                             return ResultVOUtils.error(500, "该UDI码未出库!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     codeRequestListYys.add(codeRequest); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 } else if (IntUtil.value(udirelEntity.getPurType()) == 3) { | 
			
		
	
		
			
				
					|  |  |  |  |                     //收费退库 寄售
 | 
			
		
	
		
			
				
					|  |  |  |  |                     ioOrderRequest.setAction("SC70927877557094"); | 
			
		
	
		
			
				
					|  |  |  |  |                     //判断库存
 | 
			
		
	
		
			
				
					|  |  |  |  |                     List<IoCodeEntity> codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC70927877557094")); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                         codeEntities = codeDao.selectList(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getErrUdiCode, codeRequest.getCode()).eq(IoCodeEntity::getAction, "SC70927877557094")); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (CollUtil.isEmpty(codeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                             return ResultVOUtils.error(500, "该UDI码未出库!"); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     codeRequestListJs.add(codeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         String billNo = ""; | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(codeRequestListYb)){ | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setCodeRequestList(codeRequestListYb); | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setIoOrderRequest(ioOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvOutScanCode(), forInvOutScanCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponse.getCode() == 20000){ | 
			
		
	
		
			
				
					|  |  |  |  |                 ForInvOutScanCodeResponse forInvOutScanCodeResponse = JSONObject.parseObject(String.valueOf(baseResponse.getData()), ForInvOutScanCodeResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |                 billNo = billNo + forInvOutScanCodeResponse.getBillNo() + ";"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(codeRequestListYys)){ | 
			
		
	
		
			
				
					|  |  |  |  |             ioOrderRequest.setInvCode("1000001"); | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setCodeRequestList(codeRequestListYys); | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setIoOrderRequest(ioOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvOutScanCode(), forInvOutScanCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponse.getCode() == 20000){ | 
			
		
	
		
			
				
					|  |  |  |  |                 ForInvOutScanCodeResponse forInvOutScanCodeResponse = JSONObject.parseObject(String.valueOf(baseResponse.getData()), ForInvOutScanCodeResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |                 billNo = billNo + forInvOutScanCodeResponse.getBillNo() + ";"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(codeRequestListJs)){ | 
			
		
	
		
			
				
					|  |  |  |  |             ioOrderRequest.setInvCode("1000002"); | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setCodeRequestList(codeRequestListJs); | 
			
		
	
		
			
				
					|  |  |  |  |             forInvOutScanCodeRequest.setIoOrderRequest(ioOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvOutScanCode(), forInvOutScanCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponse.getCode() == 20000){ | 
			
		
	
		
			
				
					|  |  |  |  |                 ForInvOutScanCodeResponse forInvOutScanCodeResponse = JSONObject.parseObject(String.valueOf(baseResponse.getData()), ForInvOutScanCodeResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |                 billNo = billNo + forInvOutScanCodeResponse.getBillNo() + ";"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(billNo); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse testConnect() { | 
			
		
	
		
			
				
					|  |  |  |  |         UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsUnitRequest.setPage(1); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsUnitRequest.setLimit(2); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = getUnit(udiwmsUnitRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.success("连接第三方系统成功!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success("连接第三方服务成功,连接第三方系统成功!"); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse queryUdiInvProducts(UdiwmsQueryUdiInvProductsRequest queryUdiInvProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getQueryInvUrl(), queryUdiInvProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitProducts(UdiwmsAddProductsRequest udiwmsAddProductsRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvPiUrl(), udiwmsAddProductsRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitUnit(UdiwmsAddUnitRequest udiwmsAddUnitRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvPiUrl(), udiwmsAddUnitRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvPiUrl(), udiwmsPreInOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } |