|
|
|
@ -1,16 +1,19 @@
|
|
|
|
|
package com.glxp.mipsdl.admin.client.http;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
|
import com.glxp.mipsdl.admin.config.ThirdSysConfig;
|
|
|
|
|
import com.glxp.mipsdl.admin.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.mipsdl.admin.constant.ConstantType;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.*;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.BasicThirdSysBusApiDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.BussinessLocalTypeDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.BussinessTypeDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.UdiRelevanceDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.business.StockOrderDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.business.StockOrderDetailDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.business.StockOrderUploadLogDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.inout.CodesDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.inout.OrderDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.inventory.InvWarehouseDao;
|
|
|
|
@ -23,6 +26,7 @@ import com.glxp.mipsdl.admin.entity.business.StockOrderDetailEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.business.StockOrderEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.business.StockOrderUploadLogEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.inout.OrderEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.inout.WarehouseEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.inventory.InvWarehouseEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.thrsys.ThrCorpEntity;
|
|
|
|
@ -37,12 +41,14 @@ import com.glxp.mipsdl.admin.req.thrsys.FilterThrInvWarehouseRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.phxyy.BasicThirdSysBusApiService;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.phxyy.BussinessOriginTypeService;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.phxyy.StockOrderUploadLogService;
|
|
|
|
|
import com.glxp.mipsdl.admin.util.DateUtil;
|
|
|
|
|
import com.glxp.mipsdl.admin.util.HttpClient;
|
|
|
|
|
import com.glxp.mipsdl.admin.util.SubmitOrderUtils;
|
|
|
|
|
import com.glxp.mipsdl.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.mipsdl.common.util.ResultVOUtils;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -84,8 +90,6 @@ public class PhxyyClient {
|
|
|
|
|
private UdiRelevanceDao udiRelevanceDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderDao orderDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private StockOrderUploadLogDao stockOrderUploadLogDao;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysBusApiService basicThirdSysBusApiService;
|
|
|
|
@ -96,7 +100,7 @@ public class PhxyyClient {
|
|
|
|
|
@Resource
|
|
|
|
|
CodesDao codesDao;
|
|
|
|
|
@Resource
|
|
|
|
|
UnitMaintainDao unitMaintainDao;
|
|
|
|
|
StockOrderUploadLogService stockOrderUploadLogService;
|
|
|
|
|
|
|
|
|
|
public HttpHeaders getHeaders() {
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
@ -296,6 +300,17 @@ public class PhxyyClient {
|
|
|
|
|
|
|
|
|
|
//组装明细数据
|
|
|
|
|
List<UdiwmsOrderDetail> items = new ArrayList<>(stockOrderDetailEntities.size());
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
if (bussinessLocalTypeEntity.getOrderVisibleType() == 1 && (stockOrderEntity.getStatus().equals("4") || stockOrderEntity.getStatus().equals("5"))) {
|
|
|
|
|
stockOrderDetailEntities = transferSerList(stockOrderDetailEntities, stockOrderEntity.getOrderIdFk());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
|
|
|
|
|
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(stockOrderDetailEntity.getRelId());
|
|
|
|
|
UdiwmsOrderDetail item = new UdiwmsOrderDetail();
|
|
|
|
@ -310,29 +325,35 @@ public class PhxyyClient {
|
|
|
|
|
item.setStandard(stockOrderDetailEntity.getSpec());
|
|
|
|
|
item.setRegisterNo(stockOrderDetailEntity.getZczbhhzbapzbh());
|
|
|
|
|
try {
|
|
|
|
|
item.setPrice(stockOrderDetailEntity.getPrice());
|
|
|
|
|
item.setPrice(stockOrderDetailEntity.getPrice() + "");
|
|
|
|
|
item.setFirstSalesInvNo(stockOrderDetailEntity.getFirstSalesInvNo());
|
|
|
|
|
item.setSecSalesInvNo(stockOrderDetailEntity.getSecSalesInvNo());
|
|
|
|
|
item.setInvoiceDate(stockOrderDetailEntity.getInvoiceDate());
|
|
|
|
|
item.setSecSalesListNo(stockOrderDetailEntity.getSecSalesListNo());
|
|
|
|
|
ThrProductsEntity thrProductsEntity = submitOrderUtils.toProduct(stockOrderDetailEntity, thirdId);
|
|
|
|
|
item.setProductId(thrProductsEntity.getCode());
|
|
|
|
|
item.setProductName(thrProductsEntity.getName());
|
|
|
|
|
if (StrUtil.isEmpty(thrProductsEntity.getCode())) {
|
|
|
|
|
item.setProductId(thrProductsEntity.getCode());
|
|
|
|
|
item.setProductName(thrProductsEntity.getName());
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + "产品DI未关联第三方产品信息");
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items.add(item);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error(e.getMessage(), e);
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + e.getMessage());
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
udiwmsOrderRequest.setItem(items);
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("orderSubmitUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
//记录日志
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOrderRequest, getHeaderArray());
|
|
|
|
|
if (StrUtil.isNotBlank(response)) {
|
|
|
|
|
try {
|
|
|
|
@ -346,29 +367,57 @@ public class PhxyyClient {
|
|
|
|
|
uploadLog.setStatus(2);
|
|
|
|
|
uploadLog.setThrBillNo(null);
|
|
|
|
|
uploadLog.setResult("提交成功");
|
|
|
|
|
stockOrderUploadLogDao.insert(uploadLog);
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
orderDao.updateOrder(orderEntity);
|
|
|
|
|
return ResultVOUtils.success("提交成功");
|
|
|
|
|
}
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + baseResponse.getMessage());
|
|
|
|
|
stockOrderUploadLogDao.insert(uploadLog);
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return baseResponse;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error(e.getMessage(), e);
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + e.getMessage());
|
|
|
|
|
stockOrderUploadLogDao.insert(uploadLog);
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,调用接口返回为空");
|
|
|
|
|
stockOrderUploadLogDao.insert(uploadLog);
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<StockOrderDetailEntity> transferSerList(List<StockOrderDetailEntity> stockOrderDetailEntities, String orderId) {
|
|
|
|
|
List<StockOrderDetailEntity> resultList = new ArrayList<>();
|
|
|
|
|
List<WarehouseEntity> codeList = codesDao.findByReceiptId(orderId);
|
|
|
|
|
if (CollUtil.isNotEmpty(stockOrderDetailEntities)) {
|
|
|
|
|
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
|
|
|
|
|
if (CollUtil.isNotEmpty(codeList)) {
|
|
|
|
|
for (WarehouseEntity codeDetaiEntity : codeList) {
|
|
|
|
|
if (StrUtil.trimToEmpty(codeDetaiEntity.getRelId()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId()))
|
|
|
|
|
&& StrUtil.trimToEmpty(codeDetaiEntity.getBatchNo()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()))
|
|
|
|
|
) {
|
|
|
|
|
StockOrderDetailEntity item = new StockOrderDetailEntity();
|
|
|
|
|
BeanUtils.copyProperties(stockOrderDetailEntity, item);
|
|
|
|
|
// item.setCode(codeDetaiEntity.getCode());
|
|
|
|
|
item.setSerialNo(codeDetaiEntity.getSerialNo());
|
|
|
|
|
item.setCount(codeDetaiEntity.getCount());
|
|
|
|
|
item.setReCount(codeDetaiEntity.getCount());
|
|
|
|
|
resultList.add(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("invPiUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOnhandRequest, getHeaderArray());
|
|
|
|
|