|  |  |  | @ -2,67 +2,40 @@ package com.glxp.api.admin.service.business.impl; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.bean.BeanUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.ReflectUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.json.JSONUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.alibaba.fastjson.JSONObject; | 
			
		
	
		
			
				
					|  |  |  |  | import com.alibaba.fastjson.TypeReference; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.constant.ConstantStatus; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.constant.ConstantType; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.basic.BasicThirdSysBusApiDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.basic.BasicThirdSysDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.basic.BussinessTypeDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.basic.UnitMaintainDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.business.StockOrderDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.business.StockOrderDetailDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.auth.AuthAdmin; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.basic.*; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.basic.BasicThirdSysBusApiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.basic.BasicThirdSysEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.business.StockOrderDetailEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.business.StockOrderEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.business.StockOrderPrintEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.business.StockOrderUploadLogEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.inout.OrderEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.inout.WarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.inventory.InvWarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.httpclient.req.UdiwmsOrderDetail; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.httpclient.req.UdiwmsOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.httpclient.req.UdiwmsPreInOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.httpclient.res.UdiwmsOrderResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.basic.FilterBasicThirdSysDetailRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.business.StockOrderFilterRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.business.StockOrderQueryRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.business.StockOrderUploadRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.res.business.StockOrderDetailEntityVo; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.res.business.StockOrderExportResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.auth.AuthAdminService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.basic.BussinessLocalTypeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.basic.UdiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.business.StockOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.business.StockOrderUploadLogService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.inout.CodesService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.inout.OrderService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.inventory.InvSubWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.inventory.InvWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.thrsys.ThrInvWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.thrsys.ThrSubInvWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.util.DateUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.util.HttpClient; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.util.HttpOkClient; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | 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.util.*; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Collections; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Set; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | @Slf4j | 
			
		
	
	
		
			
				
					|  |  |  | @ -77,31 +50,9 @@ public class StockOrderServiceImpl implements StockOrderService { | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicThirdSysBusApiDao thirdSysBusApiDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private UnitMaintainDao unitMaintainDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BussinessTypeDao bussinessTypeDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicThirdSysDao basicThirdSysDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private OrderService orderService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     BussinessLocalTypeService bussinessLocalTypeService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     InvWarehouseService invWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     InvSubWarehouseService invSubWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrInvWarehouseService thrInvWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     ThrSubInvWarehouseService thrSubInvWarehouseService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiRelevanceService udiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private BasicThirdSysBusApiDao basicThirdSysBusApiDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private StockOrderUploadLogService stockOrderUploadLogService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     private CodesService codesService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public List<StockOrderEntity> listStockOrders(StockOrderQueryRequest stockOrderQueryRequest) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -229,236 +180,22 @@ public class StockOrderServiceImpl implements StockOrderService { | 
			
		
	
		
			
				
					|  |  |  |  |         return stockOrderDao.selectSupplementOrderList(); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitOrderToThirdys(String id) { | 
			
		
	
		
			
				
					|  |  |  |  |         //查询单据和详情信息,组装第三方系统接口参数所需数据
 | 
			
		
	
		
			
				
					|  |  |  |  |         StockOrderEntity stockOrderEntity = stockOrderDao.findById(id); | 
			
		
	
		
			
				
					|  |  |  |  |         StockOrderDetailFilterRequest orderDetailFilterRequest = new StockOrderDetailFilterRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         orderDetailFilterRequest.setOrderIdFk(id); | 
			
		
	
		
			
				
					|  |  |  |  |         List<StockOrderDetailEntity> stockOrderDetailEntities = stockOrderDetailDao.filterStockOrderDetail(orderDetailFilterRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         List<WarehouseEntity> warehouseEntities = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk()); | 
			
		
	
		
			
				
					|  |  |  |  |         UdiwmsOrderRequest udiwmsOrderRequest = new UdiwmsOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate()); //单据日期
 | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo()); //单号
 | 
			
		
	
		
			
				
					|  |  |  |  |         BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeService.findBTByAction(stockOrderEntity.getBillType()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         String billType = stockOrderDao.findBillTypeById(id); | 
			
		
	
		
			
				
					|  |  |  |  |         //查询第三方系统的单据ID,及第三方系统标识
 | 
			
		
	
		
			
				
					|  |  |  |  |         BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(stockOrderEntity.getBillType()); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setThirdSys(thirdSysBusApiEntity.getThirdSys()); //第三方系统标识
 | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         String thirdId = getThirdId(thirdSysBusApiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |         if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //            String supId = warehouseEntities.get(0).getSupId();
 | 
			
		
	
		
			
				
					|  |  |  |  | //            UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectThirdInfoByErpId(supId);
 | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setCorpId(stockOrderEntity.getCorpName()); //往来单位编码,需转换为第三方系统的ID
 | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setCorpName(stockOrderEntity.getCorpName()); //往来单位名称,需转换为第三方系统的名称
 | 
			
		
	
		
			
				
					|  |  |  |  | //            udiwmsOrderRequest.setCorpId(unitMaintainEntity.getThirdId());
 | 
			
		
	
		
			
				
					|  |  |  |  | //            udiwmsOrderRequest.setCorpName(unitMaintainEntity.getThirdName());
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) { | 
			
		
	
		
			
				
					|  |  |  |  |             InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderEntity.getCorpId()); | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |                 //根据第三方系统标识,获取对应字段的值
 | 
			
		
	
		
			
				
					|  |  |  |  | //                String invWaThirdId = invWarehouseEntity.getClass().getField(thirdId);
 | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdSysFk = (String) ReflectUtil.getFieldValue(invWarehouseEntity, thirdId); | 
			
		
	
		
			
				
					|  |  |  |  |                 ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseService.selectByCode(invWarehouseEntity.getThirdId(), thirdId); | 
			
		
	
		
			
				
					|  |  |  |  |                 udiwmsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); //往来单位编码,需转换为第三方系统的ID
 | 
			
		
	
		
			
				
					|  |  |  |  |                 udiwmsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); //往来单位名称,需转换为第三方系统的名称
 | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error(e.getMessage(), e); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { | 
			
		
	
		
			
				
					|  |  |  |  |             //查询往来单位第三方系统对照编码
 | 
			
		
	
		
			
				
					|  |  |  |  |             UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectThirdInfoByErpId(stockOrderEntity.getCorpId()); | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdCorpId = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdId)); | 
			
		
	
		
			
				
					|  |  |  |  |                 udiwmsOrderRequest.setCorpId(thirdCorpId); //往来单位编码,需转换为第三方系统的ID
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdName = getThirdName(thirdId); | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdCorpName = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdName)); | 
			
		
	
		
			
				
					|  |  |  |  |                 udiwmsOrderRequest.setCorpName(thirdCorpName); //往来单位名称,需转换为第三方系统的名称
 | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error(e.getMessage(), e); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         InvSubWarehouseEntity invSubWarehouseEntity = invSubWarehouseService.findByInvSubByCode(stockOrderEntity.getInvWarehouseCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |  | //            String thirdSysFk = (String) ReflectUtil.getFieldValue(invWarehouseEntity, invWarehouseEntity.getClass().getField(thirdId));
 | 
			
		
	
		
			
				
					|  |  |  |  |             ThrSubInvWarehouseEntity thrSubInvWarehouseEntity = thrSubInvWarehouseService.selectByThrCode(thirdId, invSubWarehouseEntity.getThirdId()); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setLocStorageCode(thrSubInvWarehouseEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setLocStorageName(thrSubInvWarehouseEntity.getName()); | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |             log.error(e.getMessage(), e); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setBillFlag(1 + "");//单据状态
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //查询单据出入库类型
 | 
			
		
	
		
			
				
					|  |  |  |  |         String mainAction = bussinessTypeDao.selectInoutTypebByLocalAction(stockOrderEntity.getBillType()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (ConstantType.TYPE_PUT.equals(mainAction)) { | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setInoutType(1); //出入库类型:入库
 | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (ConstantType.TYPE_OUT.equals(mainAction)) { | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setInoutType(2); //出入库类型:出库
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //组装明细数据
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiwmsOrderDetail> items = new ArrayList<>(stockOrderDetailEntities.size()); | 
			
		
	
		
			
				
					|  |  |  |  |         for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(stockOrderDetailEntity.getRelId()); | 
			
		
	
		
			
				
					|  |  |  |  |             UdiwmsOrderDetail item = new UdiwmsOrderDetail(); | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtil.copyProperties(stockOrderDetailEntity, item); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(stockOrderDetailEntity.getProductDate())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setProductDate(DateUtil.formateExpireTime("20" + stockOrderDetailEntity.getProductDate())); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(stockOrderDetailEntity.getExpireDate())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setExpireDate(DateUtil.formateExpireTime("20" + stockOrderDetailEntity.getExpireDate())); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             item.setMeasname(udiRelevanceEntity.getMeasname()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setStandard(stockOrderDetailEntity.getSpec()); | 
			
		
	
		
			
				
					|  |  |  |  |             item.setRegisterNo(stockOrderDetailEntity.getZczbhhzbapzbh()); | 
			
		
	
		
			
				
					|  |  |  |  |             List<WarehouseEntity> warehouseEntityList = filterCodes(stockOrderDetailEntity, warehouseEntities); | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isNotEmpty(warehouseEntityList)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 List<UdiwmsOrderDetail.CodeDetaiEntity> codeDetaiEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                 warehouseEntityList.forEach(warehouseEntity -> { | 
			
		
	
		
			
				
					|  |  |  |  |                     UdiwmsOrderDetail.CodeDetaiEntity codeDetaiEntity = new UdiwmsOrderDetail.CodeDetaiEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |                     BeanUtils.copyProperties(warehouseEntity, codeDetaiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                     codeDetaiEntities.add(codeDetaiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setCodeList(codeDetaiEntities); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdProductId = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdId); | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setProductId(thirdProductId); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdName = getThirdName(thirdId); | 
			
		
	
		
			
				
					|  |  |  |  |                 String thirdProductName = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdName); | 
			
		
	
		
			
				
					|  |  |  |  |                 item.setProductName(thirdProductName); | 
			
		
	
		
			
				
					|  |  |  |  |                 items.add(item); | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 log.error(e.getMessage(), e); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setItem(items); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //提交成功,更新导出状态
 | 
			
		
	
		
			
				
					|  |  |  |  |         OrderEntity orderEntity = | 
			
		
	
		
			
				
					|  |  |  |  |                 orderService.findById(stockOrderEntity.getOrderIdFk()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //提交单据到第三方服务
 | 
			
		
	
		
			
				
					|  |  |  |  |         //记录日志
 | 
			
		
	
		
			
				
					|  |  |  |  |         StockOrderUploadLogEntity uploadLog = new StockOrderUploadLogEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |         uploadLog.setBillDate(DateUtil.parseDate(udiwmsOrderRequest.getBillDate())); | 
			
		
	
		
			
				
					|  |  |  |  |         uploadLog.setBillType(stockOrderEntity.getBillType()); | 
			
		
	
		
			
				
					|  |  |  |  |         uploadLog.setSubmitTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |         uploadLog.setBillNo(udiwmsOrderRequest.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         uploadLog.setFromType(ConstantStatus.THIRD_ORDER_UPLOAD); | 
			
		
	
		
			
				
					|  |  |  |  |         BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(billType); | 
			
		
	
		
			
				
					|  |  |  |  |         UdiwmsOrderRequest udiwmsOrderRequest = new UdiwmsOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         udiwmsOrderRequest.setId(id); | 
			
		
	
		
			
				
					|  |  |  |  |         BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys()); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = null; | 
			
		
	
		
			
				
					|  |  |  |  |         if (orderEntity.getReviewUser() != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             AuthAdmin authAdmin = authAdminService.findById(orderEntity.getReviewUser().longValue()); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setActor(authAdmin.getEmployeeName()); | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (orderEntity.getCreateUser() != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             AuthAdmin authAdmin = authAdminService.findById(orderEntity.getCreateUser().longValue()); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsOrderRequest.setActor(authAdmin.getEmployeeName()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (bussinessLocalTypeEntity.isPreIn()) { | 
			
		
	
		
			
				
					|  |  |  |  |             UdiwmsPreInOrderRequest udiwmsPreInOrderRequest = submitPreInOrderToThirdSys(udiwmsOrderRequest, orderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/preIn/submitOrders", udiwmsPreInOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         } else | 
			
		
	
		
			
				
					|  |  |  |  |             response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isNotBlank(response)) { | 
			
		
	
		
			
				
					|  |  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |  |                 BaseResponse<String> baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() { | 
			
		
	
		
			
				
					|  |  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |  |         String response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {}); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode().equals(20000)) { | 
			
		
	
		
			
				
					|  |  |  |  |                     String udiwmsOrderResponse = baseResponse.getData(); | 
			
		
	
		
			
				
					|  |  |  |  |                     orderEntity.setExportStatus(1); | 
			
		
	
		
			
				
					|  |  |  |  | //                    if (udiwmsOrderResponse != null) {
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo());
 | 
			
		
	
		
			
				
					|  |  |  |  | //                    }
 | 
			
		
	
		
			
				
					|  |  |  |  |                     orderService.updateOrder(orderEntity); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     uploadLog.setStatus(2); | 
			
		
	
		
			
				
					|  |  |  |  |                     uploadLog.setThrBillNo(udiwmsOrderResponse); | 
			
		
	
		
			
				
					|  |  |  |  |                     uploadLog.setResult("提交成功"); | 
			
		
	
		
			
				
					|  |  |  |  |                     stockOrderUploadLogService.insert(uploadLog); | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.success("提交成功"); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setStatus(3); | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setResult("提交失败;错误信息:" + baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                 stockOrderUploadLogService.insert(uploadLog); | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "提交失败"); | 
			
		
	
		
			
				
					|  |  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setStatus(3); | 
			
		
	
		
			
				
					|  |  |  |  |                 uploadLog.setResult("提交失败, " + e.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                 stockOrderUploadLogService.insert(uploadLog); | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "提交失败"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             uploadLog.setStatus(3); | 
			
		
	
		
			
				
					|  |  |  |  |             uploadLog.setResult("提交失败,调用接口返回为空"); | 
			
		
	
		
			
				
					|  |  |  |  |             stockOrderUploadLogService.insert(uploadLog); | 
			
		
	
		
			
				
					|  |  |  |  |             log.error("单据提交失败,异常信息:" + baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "提交失败"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     AuthAdminService authAdminService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public UdiwmsPreInOrderRequest submitPreInOrderToThirdSys(UdiwmsOrderRequest udiwmsOrderRequest, OrderEntity orderEntity) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         UdiwmsPreInOrderRequest udiwmsPreInOrderRequest = new UdiwmsPreInOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (udiwmsOrderRequest != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtils.copyProperties(udiwmsOrderRequest, udiwmsPreInOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsPreInOrderRequest.setLocInvCode(udiwmsOrderRequest.getLocStorageCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsPreInOrderRequest.setLocInvName(udiwmsOrderRequest.getLocStorageName()); | 
			
		
	
		
			
				
					|  |  |  |  |             List<UdiwmsPreInOrderRequest.ItemDTO> itemDTOS = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isNotEmpty(udiwmsOrderRequest.getItem())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 for (UdiwmsOrderDetail udiwmsOrderDetail : udiwmsOrderRequest.getItem()) { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (CollUtil.isNotEmpty(udiwmsOrderDetail.getCodeList())) { | 
			
		
	
		
			
				
					|  |  |  |  |                         for (UdiwmsOrderDetail.CodeDetaiEntity codeDetaiEntity : udiwmsOrderDetail.getCodeList()) { | 
			
		
	
		
			
				
					|  |  |  |  |                             UdiwmsPreInOrderRequest.ItemDTO itemDTO = new UdiwmsPreInOrderRequest.ItemDTO(); | 
			
		
	
		
			
				
					|  |  |  |  |                             BeanUtils.copyProperties(udiwmsOrderDetail, itemDTO); | 
			
		
	
		
			
				
					|  |  |  |  |                             itemDTO.setCode(codeDetaiEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                             itemDTO.setCount(codeDetaiEntity.getCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                             itemDTOS.add(itemDTO); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             udiwmsPreInOrderRequest.setItems(itemDTOS); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return udiwmsPreInOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public List<WarehouseEntity> filterCodes(StockOrderDetailEntity stockOrderDetailEntity, List<WarehouseEntity> warehouseEntities) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<WarehouseEntity> results = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(warehouseEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (WarehouseEntity warehouseEntity : warehouseEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.trimToEmpty(warehouseEntity.getRelId()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId())) | 
			
		
	
		
			
				
					|  |  |  |  |                         && StrUtil.trimToEmpty(warehouseEntity.getBatchNo()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo())) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     results.add(warehouseEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return results; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
	
		
			
				
					|  |  |  | @ -490,61 +227,4 @@ public class StockOrderServiceImpl implements StockOrderService { | 
			
		
	
		
			
				
					|  |  |  |  |         return stockOrderEntityList; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 获取第三方名称字段 | 
			
		
	
		
			
				
					|  |  |  |  |      * | 
			
		
	
		
			
				
					|  |  |  |  |      * @param thirdId | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private String getThirdName(String thirdId) { | 
			
		
	
		
			
				
					|  |  |  |  |         String thirdName = null; | 
			
		
	
		
			
				
					|  |  |  |  |         switch (thirdId) { | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdName = "thirdName"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId1": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdName = "thirdName1"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId2": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdName = "thirdName2"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId3": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdName = "thirdName3"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId4": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdName = "thirdName4"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             default: | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return thirdName; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * @param thirdSysBusApiEntity | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private String getThirdId(BasicThirdSysBusApiEntity thirdSysBusApiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         String thirdId = null; | 
			
		
	
		
			
				
					|  |  |  |  |         switch (thirdSysBusApiEntity.getThirdSys()) { | 
			
		
	
		
			
				
					|  |  |  |  |             case "thirdId": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdId = "thirdId"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "third1": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdId = "thirdId1"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "third2": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdId = "thirdId2"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "third3": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdId = "thirdId3"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             case "third4": | 
			
		
	
		
			
				
					|  |  |  |  |                 thirdId = "thirdId4"; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             default: | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return thirdId; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |