|
|
@ -2,67 +2,40 @@ package com.glxp.api.admin.service.business.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
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.BasicThirdSysBusApiDao;
|
|
|
|
import com.glxp.api.admin.dao.basic.BasicThirdSysDao;
|
|
|
|
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.StockOrderDao;
|
|
|
|
import com.glxp.api.admin.dao.business.StockOrderDetailDao;
|
|
|
|
import com.glxp.api.admin.dao.business.StockOrderDetailDao;
|
|
|
|
import com.glxp.api.admin.entity.auth.AuthAdmin;
|
|
|
|
import com.glxp.api.admin.entity.basic.BasicThirdSysBusApiEntity;
|
|
|
|
import com.glxp.api.admin.entity.basic.*;
|
|
|
|
import com.glxp.api.admin.entity.basic.BasicThirdSysEntity;
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderDetailEntity;
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderDetailEntity;
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderEntity;
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderEntity;
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderPrintEntity;
|
|
|
|
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.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.basic.FilterBasicThirdSysDetailRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderFilterRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderFilterRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderQueryRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderQueryRequest;
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderUploadRequest;
|
|
|
|
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.StockOrderDetailEntityVo;
|
|
|
|
import com.glxp.api.admin.res.business.StockOrderExportResponse;
|
|
|
|
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.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.admin.util.HttpOkClient;
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
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;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
@ -77,31 +50,9 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private BasicThirdSysBusApiDao thirdSysBusApiDao;
|
|
|
|
private BasicThirdSysBusApiDao thirdSysBusApiDao;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private UnitMaintainDao unitMaintainDao;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private BussinessTypeDao bussinessTypeDao;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private BasicThirdSysDao basicThirdSysDao;
|
|
|
|
private BasicThirdSysDao basicThirdSysDao;
|
|
|
|
@Resource
|
|
|
|
@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;
|
|
|
|
private BasicThirdSysBusApiDao basicThirdSysBusApiDao;
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private StockOrderUploadLogService stockOrderUploadLogService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private CodesService codesService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<StockOrderEntity> listStockOrders(StockOrderQueryRequest stockOrderQueryRequest) {
|
|
|
|
public List<StockOrderEntity> listStockOrders(StockOrderQueryRequest stockOrderQueryRequest) {
|
|
|
@ -229,236 +180,22 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
return stockOrderDao.selectSupplementOrderList();
|
|
|
|
return stockOrderDao.selectSupplementOrderList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public BaseResponse submitOrderToThirdys(String id) {
|
|
|
|
public BaseResponse submitOrderToThirdys(String id) {
|
|
|
|
//查询单据和详情信息,组装第三方系统接口参数所需数据
|
|
|
|
String billType = stockOrderDao.findBillTypeById(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());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询第三方系统的单据ID,及第三方系统标识
|
|
|
|
//查询第三方系统的单据ID,及第三方系统标识
|
|
|
|
BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(stockOrderEntity.getBillType());
|
|
|
|
BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(billType);
|
|
|
|
udiwmsOrderRequest.setThirdSys(thirdSysBusApiEntity.getThirdSys()); //第三方系统标识
|
|
|
|
UdiwmsOrderRequest udiwmsOrderRequest = new UdiwmsOrderRequest();
|
|
|
|
udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode());
|
|
|
|
udiwmsOrderRequest.setId(id);
|
|
|
|
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);
|
|
|
|
|
|
|
|
BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys());
|
|
|
|
BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys());
|
|
|
|
String response = null;
|
|
|
|
String response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest);
|
|
|
|
if (orderEntity.getReviewUser() != null) {
|
|
|
|
BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {});
|
|
|
|
AuthAdmin authAdmin = authAdminService.findById(orderEntity.getReviewUser().longValue());
|
|
|
|
if (baseResponse.getCode().equals(20000)) {
|
|
|
|
udiwmsOrderRequest.setActor(authAdmin.getEmployeeName());
|
|
|
|
return ResultVOUtils.success("提交成功");
|
|
|
|
} 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>>() {
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
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 {
|
|
|
|
} else {
|
|
|
|
uploadLog.setStatus(3);
|
|
|
|
log.error("单据提交失败,异常信息:" + baseResponse.getMessage());
|
|
|
|
uploadLog.setResult("提交失败,调用接口返回为空");
|
|
|
|
|
|
|
|
stockOrderUploadLogService.insert(uploadLog);
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "提交失败");
|
|
|
|
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
|
|
|
|
@Override
|
|
|
@ -490,61 +227,4 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
return stockOrderEntityList;
|
|
|
|
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;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|