|
|
|
@ -0,0 +1,455 @@
|
|
|
|
|
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.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.inout.CodesDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.inout.OrderDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.inventory.InvWarehouseDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.basic.BasicThirdSysDetailDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.dao.thrsys.ThrInvWarehouseDao;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.basic.BussinessLocalTypeEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.basic.UdiRelevanceEntity;
|
|
|
|
|
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.basic.BasicThirdSysDetailEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.thrsys.ThrCorpEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.thrsys.ThrInvWarehouseEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.entity.thrsys.ThrProductsEntity;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.UdiwmsOnhandRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.UdiwmsOrderDetail;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.UdiwmsOrderRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.basic.BussinessLocalTypeFilterRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.dsxyy.*;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.thrsys.FilterThrInvWarehouseRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.res.basic.BussinessOriginTypeResponse;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.basic.BasicThirdSysBusApiService;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.basic.BussinessOriginTypeService;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.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.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 东山县医院接口对接
|
|
|
|
|
*/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
|
public class DsxyyClient {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private ThirdSysConfig thirdSysConfig;
|
|
|
|
|
@Resource
|
|
|
|
|
private HttpClient httpClient;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private StockOrderDao stockOrderDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private StockOrderDetailDao stockOrderDetailDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private BussinessLocalTypeDao bussinessLocalTypeDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysBusApiDao thirdSysBusApiDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private InvWarehouseDao invWarehouseDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private ThrInvWarehouseDao thrInvWarehouseDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private BussinessTypeDao bussinessTypeDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysDetailDao basicThirdSysDetailDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private UdiRelevanceDao udiRelevanceDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderDao orderDao;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysBusApiService basicThirdSysBusApiService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BussinessOriginTypeService bussinessOriginTypeService;
|
|
|
|
|
@Resource
|
|
|
|
|
private SubmitOrderUtils submitOrderUtils;
|
|
|
|
|
@Resource
|
|
|
|
|
private CodesDao codesDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private StockOrderUploadLogService stockOrderUploadLogService;
|
|
|
|
|
|
|
|
|
|
public String[] getHeaderArray() {
|
|
|
|
|
List<String> headArray = new ArrayList<>(6);
|
|
|
|
|
headArray.add("Content-Type");
|
|
|
|
|
headArray.add("application/json");
|
|
|
|
|
if (StrUtil.isNotEmpty(thirdSysConfig.getThirdSysConfig().getApikey())) {
|
|
|
|
|
headArray.add("api_key");
|
|
|
|
|
headArray.add(thirdSysConfig.getThirdSysConfig().getApikey());
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.isNotEmpty(thirdSysConfig.getThirdSysConfig().getSecretkey())) {
|
|
|
|
|
headArray.add("secret_key");
|
|
|
|
|
headArray.add(thirdSysConfig.getThirdSysConfig().getSecretkey());
|
|
|
|
|
}
|
|
|
|
|
String[] strArray = new String[headArray.size()];
|
|
|
|
|
headArray.toArray(strArray);
|
|
|
|
|
return strArray;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse testConnect() {
|
|
|
|
|
DsUnitRequest dsUnitRequest = new DsUnitRequest();
|
|
|
|
|
dsUnitRequest.setPage(1);
|
|
|
|
|
dsUnitRequest.setLimit(1);
|
|
|
|
|
BaseResponse baseResponse = getUnit(dsUnitRequest);
|
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
|
return ResultVOUtils.success("连接成功!");
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "连接失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getUnit(DsUnitRequest dsUnitRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("corpUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), dsUnitRequest, getHeaderArray());
|
|
|
|
|
BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getProducts(DsProductRequest udiwmsProductRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("piQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsProductRequest, getHeaderArray());
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getOrderTypes(DsBusTypeRequest udiwmsBusTypeRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("busTypeQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsBusTypeRequest, getHeaderArray());
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
|
|
|
|
|
if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据类型不能未空");
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.isEmpty(udiwmsOrderRequest.getThirdSys())) {
|
|
|
|
|
return ResultVOUtils.error(500, "第三方系统ID不能为空");
|
|
|
|
|
}
|
|
|
|
|
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.findByKey(udiwmsOrderRequest.getBillType(), thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
udiwmsOrderRequest.setBillType(bussinessOriginTypeResponse.getThirdAction());
|
|
|
|
|
BasicThirdSysBusApiEntity basicThirdSysBusApiEntity = basicThirdSysBusApiService.selectByKey(bussinessOriginTypeResponse.getThirdAction(), bussinessOriginTypeResponse.getThirdSys(), 1);
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysBusApiEntity.getUrl(), udiwmsOrderRequest, getHeaderArray());
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse submitOrders(DsOrderRequest udiwmsOrderRequest) {
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(udiwmsOrderRequest.getId())) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据ID不能为空!");
|
|
|
|
|
}
|
|
|
|
|
//查询单据和详情信息,组装第三方系统接口参数所需数据
|
|
|
|
|
StockOrderEntity stockOrderEntity = stockOrderDao.findById(udiwmsOrderRequest.getId());
|
|
|
|
|
OrderEntity orderEntity = orderDao.findById(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
List<StockOrderDetailEntity> stockOrderDetailEntities = stockOrderDetailDao.findByOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate());
|
|
|
|
|
udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo());
|
|
|
|
|
|
|
|
|
|
BussinessLocalTypeFilterRequest bussinessLocalTypeFilterRequest = new BussinessLocalTypeFilterRequest();
|
|
|
|
|
bussinessLocalTypeFilterRequest.setAction(stockOrderEntity.getBillType());
|
|
|
|
|
List<BussinessLocalTypeEntity> bussinessLocalTypeEntities = bussinessLocalTypeDao.filterJoin(bussinessLocalTypeFilterRequest);
|
|
|
|
|
BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeEntities.get(0);
|
|
|
|
|
|
|
|
|
|
//查询第三方系统的单据ID,及第三方系统标识
|
|
|
|
|
BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(stockOrderEntity.getBillType());
|
|
|
|
|
if (StrUtil.isBlank(thirdSysBusApiEntity.getUrl())) {
|
|
|
|
|
return ResultVOUtils.error(500, "接口未配置,无法提交!");
|
|
|
|
|
}
|
|
|
|
|
String thirdId = getThirdId(thirdSysBusApiEntity);
|
|
|
|
|
// udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode());
|
|
|
|
|
udiwmsOrderRequest.setBillType(submitOrderUtils.toBusType(stockOrderEntity.getBillType()));
|
|
|
|
|
if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT) {
|
|
|
|
|
udiwmsOrderRequest.setCorpId(stockOrderEntity.getCorpName()); //往来单位编码,需转换为第三方系统的ID
|
|
|
|
|
udiwmsOrderRequest.setCorpName(stockOrderEntity.getCorpName()); //往来单位名称,需转换为第三方系统的名称
|
|
|
|
|
} else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) {
|
|
|
|
|
List<InvWarehouseEntity> invWarehouseEntities = invWarehouseDao.selectByCode(stockOrderEntity.getCorpId());
|
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseEntities.get(0);
|
|
|
|
|
try {
|
|
|
|
|
//根据第三方系统标识,获取对应字段的值
|
|
|
|
|
FilterThrInvWarehouseRequest filterThrInvWarehouseRequest = new FilterThrInvWarehouseRequest();
|
|
|
|
|
filterThrInvWarehouseRequest.setCode(invWarehouseEntity.getThirdId());
|
|
|
|
|
filterThrInvWarehouseRequest.setThirdSysFk(thirdId);
|
|
|
|
|
List<ThrInvWarehouseEntity> thrInvWarehouseEntities = thrInvWarehouseDao.filterThrInvWarehouse(filterThrInvWarehouseRequest);
|
|
|
|
|
ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseEntities.get(0);
|
|
|
|
|
udiwmsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); //往来单位编码,需转换为第三方系统的ID
|
|
|
|
|
udiwmsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); //往来单位名称,需转换为第三方系统的名称
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("查询单据对应的第三方往来单位信息异常", e);
|
|
|
|
|
}
|
|
|
|
|
} else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
|
|
|
|
|
ThrCorpEntity thrCorpEntity = submitOrderUtils.toCorp(stockOrderEntity.getCorpId(), thirdId);
|
|
|
|
|
if (thrCorpEntity == null)
|
|
|
|
|
return ResultVOUtils.error(500, "上传失败,往来单位未关联对应第三方产品编码!");
|
|
|
|
|
udiwmsOrderRequest.setCorpId(thrCorpEntity.getUnitId()); //往来单位编码,需转换为第三方系统的ID
|
|
|
|
|
udiwmsOrderRequest.setCorpName(thrCorpEntity.getName()); //往来单位名称,需转换为第三方系统的名称
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOneByCode(orderEntity.getInvStorageCode());
|
|
|
|
|
try {
|
|
|
|
|
if (StrUtil.isNotEmpty(invWarehouseEntity.getThirdId())) {
|
|
|
|
|
ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectByCode(invWarehouseEntity.getThirdId(), thirdId);
|
|
|
|
|
udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode());
|
|
|
|
|
udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName());
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "未绑定第三方仓库!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("查询第三方系统仓库异常", e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StrUtil.nullToEmpty(thirdSysBusApiEntity.getUrl()).equals("useOut")) {
|
|
|
|
|
udiwmsOrderRequest.setCorpId(udiwmsOrderRequest.getLocStorageCode());
|
|
|
|
|
udiwmsOrderRequest.setCorpName(udiwmsOrderRequest.getLocStorageName());
|
|
|
|
|
ThrInvWarehouseEntity deviceInv = thrInvWarehouseDao.selectByCode("29", thirdId);
|
|
|
|
|
udiwmsOrderRequest.setLocStorageCode("29");
|
|
|
|
|
udiwmsOrderRequest.setLocStorageName(deviceInv.getName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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); //出入库类型:出库
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// //出库单转入库单
|
|
|
|
|
// if (StrUtil.nullToEmpty(thirdSysBusApiEntity.getUrl()).equals("useOut")) {
|
|
|
|
|
// //使用部门
|
|
|
|
|
// udiwmsOrderRequest.setUseDeptCode(udiwmsOrderRequest.getLocStorageCode());
|
|
|
|
|
// udiwmsOrderRequest.setUseDeptName(udiwmsOrderRequest.getLocStorageName());
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// ThrInvWarehouseEntity deviceInv = thrInvWarehouseDao.selectByCode("29", thirdId);
|
|
|
|
|
// udiwmsOrderRequest.setLocStorageCode("29");
|
|
|
|
|
// udiwmsOrderRequest.setLocStorageName(deviceInv.getName());
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// udiwmsOrderRequest.setInoutType(1); //出入库类型:入库
|
|
|
|
|
//
|
|
|
|
|
// List<WarehouseEntity> warehouseEntities = codesDao.findByReceiptId(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
// if (CollUtil.isNotEmpty(warehouseEntities)) {
|
|
|
|
|
// UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectThirdInfoByErpId(warehouseEntities.get(0).getSupId());
|
|
|
|
|
// udiwmsOrderRequest.setCorpId(unitMaintainEntity.getThirdId());
|
|
|
|
|
// udiwmsOrderRequest.setCorpName(unitMaintainEntity.getThirdName());
|
|
|
|
|
// }
|
|
|
|
|
//// udiwmsOrderRequest.setCorpId(udiwmsOrderRequest.getLocStorageCode());
|
|
|
|
|
//// udiwmsOrderRequest.setCorpName(udiwmsOrderRequest.getLocStorageName());
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注
|
|
|
|
|
|
|
|
|
|
//组装明细数据
|
|
|
|
|
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();
|
|
|
|
|
BeanUtil.copyProperties(stockOrderDetailEntity, item);
|
|
|
|
|
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.getZczbhhzbapzbh());
|
|
|
|
|
try {
|
|
|
|
|
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);
|
|
|
|
|
if (StrUtil.isEmpty(thrProductsEntity.getCode())) {
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + "产品DI未关联第三方产品信息");
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
} else {
|
|
|
|
|
item.setProductId(thrProductsEntity.getCode());
|
|
|
|
|
item.setProductName(thrProductsEntity.getName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
//记录日志
|
|
|
|
|
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOrderRequest, getHeaderArray());
|
|
|
|
|
if (StrUtil.isNotBlank(response)) {
|
|
|
|
|
try {
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
if (baseResponse.getCode().equals(20000)) {
|
|
|
|
|
String thirdBillNo = String.valueOf(baseResponse.getData());
|
|
|
|
|
orderEntity.setExportStatus(1);
|
|
|
|
|
orderEntity.setThirdBillNo(thirdBillNo);
|
|
|
|
|
uploadLog.setStatus(2);
|
|
|
|
|
uploadLog.setThrBillNo(null);
|
|
|
|
|
uploadLog.setResult("提交成功");
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
orderDao.updateOrder(orderEntity);
|
|
|
|
|
return ResultVOUtils.success("提交成功");
|
|
|
|
|
}
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + baseResponse.getMessage());
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return baseResponse;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error(e.getMessage(), e);
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,错误信息:" + e.getMessage());
|
|
|
|
|
stockOrderUploadLogService.insertOrUpdate(uploadLog);
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
|
uploadLog.setResult("提交失败,调用接口返回为空");
|
|
|
|
|
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());
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getWarehouse(DsWarehouseRequest udiwmsWarehouseRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("warehouseQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsWarehouseRequest, getHeaderArray());
|
|
|
|
|
BaseResponse baseResponse =
|
|
|
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
|
|
|
});
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|