|
|
|
@ -24,8 +24,10 @@ 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;
|
|
|
|
@ -35,6 +37,7 @@ 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;
|
|
|
|
@ -44,8 +47,10 @@ 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;
|
|
|
|
@ -84,8 +89,12 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
@Resource
|
|
|
|
|
InvWarehouseService invWarehouseService;
|
|
|
|
|
@Resource
|
|
|
|
|
InvSubWarehouseService invSubWarehouseService;
|
|
|
|
|
@Resource
|
|
|
|
|
ThrInvWarehouseService thrInvWarehouseService;
|
|
|
|
|
@Resource
|
|
|
|
|
ThrSubInvWarehouseService thrSubInvWarehouseService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysBusApiDao basicThirdSysBusApiDao;
|
|
|
|
@ -228,7 +237,7 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
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()); //单号
|
|
|
|
@ -238,11 +247,16 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
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 {
|
|
|
|
@ -270,17 +284,17 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderEntity.getLocStorageCode());
|
|
|
|
|
InvSubWarehouseEntity invSubWarehouseEntity = invSubWarehouseService.findByInvSubByCode(stockOrderEntity.getInvWarehouseCode());
|
|
|
|
|
try {
|
|
|
|
|
// String thirdSysFk = (String) ReflectUtil.getFieldValue(invWarehouseEntity, invWarehouseEntity.getClass().getField(thirdId));
|
|
|
|
|
ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseService.selectByCode(invWarehouseEntity.getThirdId(), thirdId);
|
|
|
|
|
udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode());
|
|
|
|
|
udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName());
|
|
|
|
|
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(stockOrderEntity.getBillFlag());//单据状态
|
|
|
|
|
udiwmsOrderRequest.setBillFlag(1 + "");//单据状态
|
|
|
|
|
|
|
|
|
|
//查询单据出入库类型
|
|
|
|
|
String mainAction = bussinessTypeDao.selectInoutTypebByLocalAction(stockOrderEntity.getBillType());
|
|
|
|
@ -293,7 +307,7 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注
|
|
|
|
|
|
|
|
|
|
//组装明细数据
|
|
|
|
|
List<WarehouseEntity> warehouseEntities = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
|
|
|
|
|
List<UdiwmsOrderDetail> items = new ArrayList<>(stockOrderDetailEntities.size());
|
|
|
|
|
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
|
|
|
|
|
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(stockOrderDetailEntity.getRelId());
|
|
|
|
@ -349,6 +363,13 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
uploadLog.setFromType(ConstantStatus.THIRD_ORDER_UPLOAD);
|
|
|
|
|
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);
|
|
|
|
@ -356,19 +377,18 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest);
|
|
|
|
|
if (StrUtil.isNotBlank(response)) {
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
BaseResponse<UdiwmsOrderResponse> baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse<UdiwmsOrderResponse>>() {
|
|
|
|
|
BaseResponse<String> baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() {
|
|
|
|
|
});
|
|
|
|
|
if (baseResponse.getCode().equals(20000)) {
|
|
|
|
|
UdiwmsOrderResponse udiwmsOrderResponse = baseResponse.getData();
|
|
|
|
|
String udiwmsOrderResponse = baseResponse.getData();
|
|
|
|
|
orderEntity.setExportStatus(1);
|
|
|
|
|
if (udiwmsOrderResponse != null) {
|
|
|
|
|
orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo());
|
|
|
|
|
}
|
|
|
|
|
// if (udiwmsOrderResponse != null) {
|
|
|
|
|
// orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo());
|
|
|
|
|
// }
|
|
|
|
|
orderService.updateOrder(orderEntity);
|
|
|
|
|
|
|
|
|
|
uploadLog.setStatus(2);
|
|
|
|
|
uploadLog.setThrBillNo(udiwmsOrderResponse.getThirdBillNo());
|
|
|
|
|
uploadLog.setThrBillNo(udiwmsOrderResponse);
|
|
|
|
|
uploadLog.setResult("提交成功");
|
|
|
|
|
stockOrderUploadLogService.insert(uploadLog);
|
|
|
|
|
return ResultVOUtils.success("提交成功");
|
|
|
|
@ -403,13 +423,6 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
BeanUtils.copyProperties(udiwmsOrderRequest, udiwmsPreInOrderRequest);
|
|
|
|
|
udiwmsPreInOrderRequest.setLocInvCode(udiwmsOrderRequest.getLocStorageCode());
|
|
|
|
|
udiwmsPreInOrderRequest.setLocInvName(udiwmsOrderRequest.getLocStorageName());
|
|
|
|
|
if (orderEntity.getReviewUser() != null) {
|
|
|
|
|
AuthAdmin authAdmin = authAdminService.findById(orderEntity.getReviewUser().longValue());
|
|
|
|
|
udiwmsPreInOrderRequest.setActor(authAdmin.getEmployeeName());
|
|
|
|
|
} else if (orderEntity.getCreateUser() != null) {
|
|
|
|
|
AuthAdmin authAdmin = authAdminService.findById(orderEntity.getCreateUser().longValue());
|
|
|
|
|
udiwmsPreInOrderRequest.setActor(authAdmin.getEmployeeName());
|
|
|
|
|
}
|
|
|
|
|
List<UdiwmsPreInOrderRequest.ItemDTO> itemDTOS = new ArrayList<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(udiwmsOrderRequest.getItem())) {
|
|
|
|
|
for (UdiwmsOrderDetail udiwmsOrderDetail : udiwmsOrderRequest.getItem()) {
|
|
|
|
|