|
|
|
@ -4,6 +4,7 @@ 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;
|
|
|
|
@ -15,6 +16,7 @@ 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.business.StockOrderDetailEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.business.StockOrderEntity;
|
|
|
|
@ -26,6 +28,7 @@ import com.glxp.api.admin.entity.inventory.InvWarehouseEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity;
|
|
|
|
|
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;
|
|
|
|
@ -34,6 +37,7 @@ import com.glxp.api.admin.req.business.StockOrderQueryRequest;
|
|
|
|
|
import com.glxp.api.admin.req.business.StockOrderUploadRequest;
|
|
|
|
|
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;
|
|
|
|
@ -295,7 +299,16 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
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<>();
|
|
|
|
@ -321,6 +334,10 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
|
|
|
|
|
udiwmsOrderRequest.setItem(items);
|
|
|
|
|
|
|
|
|
|
//提交成功,更新导出状态
|
|
|
|
|
OrderEntity orderEntity =
|
|
|
|
|
orderService.findById(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//提交单据到第三方服务
|
|
|
|
|
//记录日志
|
|
|
|
@ -330,9 +347,13 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
uploadLog.setSubmitTime(new Date());
|
|
|
|
|
uploadLog.setBillNo(udiwmsOrderRequest.getBillNo());
|
|
|
|
|
uploadLog.setFromType(ConstantStatus.THIRD_ORDER_UPLOAD);
|
|
|
|
|
|
|
|
|
|
BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys());
|
|
|
|
|
String response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest);
|
|
|
|
|
String response = null;
|
|
|
|
|
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 {
|
|
|
|
|
|
|
|
|
@ -341,9 +362,7 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
if (baseResponse.getCode().equals(20000)) {
|
|
|
|
|
UdiwmsOrderResponse udiwmsOrderResponse = baseResponse.getData();
|
|
|
|
|
|
|
|
|
|
//提交成功,更新导出状态
|
|
|
|
|
OrderEntity orderEntity =
|
|
|
|
|
orderService.findById(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
|
|
|
|
|
orderEntity.setExportStatus(1);
|
|
|
|
|
if (udiwmsOrderResponse != null) {
|
|
|
|
|
orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo());
|
|
|
|
@ -373,6 +392,47 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
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());
|
|
|
|
|
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()) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -381,8 +441,8 @@ public class StockOrderServiceImpl implements StockOrderService {
|
|
|
|
|
List<WarehouseEntity> results = new ArrayList<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(warehouseEntities)) {
|
|
|
|
|
for (WarehouseEntity warehouseEntity : warehouseEntities) {
|
|
|
|
|
if (StrUtil.trimToEmpty(warehouseEntity.getRelId()) == StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId())
|
|
|
|
|
&& StrUtil.trimToEmpty(warehouseEntity.getBatchNo()) == StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo())
|
|
|
|
|
if (StrUtil.trimToEmpty(warehouseEntity.getRelId()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId()))
|
|
|
|
|
&& StrUtil.trimToEmpty(warehouseEntity.getBatchNo()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()))
|
|
|
|
|
) {
|
|
|
|
|
results.add(warehouseEntity);
|
|
|
|
|
}
|
|
|
|
|