|
|
|
@ -7,10 +7,13 @@ import com.glxp.sale.admin.controller.inout.utils.DataTransUtil;
|
|
|
|
|
import com.glxp.sale.admin.controller.inout.utils.InoutUtils;
|
|
|
|
|
import com.glxp.sale.admin.entity.basic.BasicThirdSysDetailEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.inout.*;
|
|
|
|
|
import com.glxp.sale.admin.entity.udid.UdiEntity;
|
|
|
|
|
import com.glxp.sale.admin.httpclient.ErpOrderClient;
|
|
|
|
|
import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.inout.*;
|
|
|
|
|
import com.glxp.sale.admin.res.basic.UdiRelevanceResponse;
|
|
|
|
|
import com.glxp.sale.admin.service.basic.BussinessTypeService;
|
|
|
|
|
import com.glxp.sale.admin.service.basic.UdiInfoService;
|
|
|
|
|
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
|
|
|
|
@ -22,6 +25,7 @@ import com.glxp.sale.admin.util.FilterUdiUtils;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
@ -249,6 +253,12 @@ public class IoTransInoutService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Async
|
|
|
|
|
public void repeatPrint(OrderEntity orderEntity) {
|
|
|
|
|
printOrder(orderEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void checkOrder(OrderEntity orderEntity) {
|
|
|
|
|
orderEntity = orderService.findById(orderEntity.getId());
|
|
|
|
|
List<String> erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk());
|
|
|
|
@ -259,12 +269,13 @@ public class IoTransInoutService {
|
|
|
|
|
checkThirdOrder(erpOrderEntities, orderEntity, transData);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
|
|
|
|
|
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
|
|
|
|
|
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS);
|
|
|
|
|
orderEntity.setRemark("未选入第三方出入库单据进行校验,请手动选择");
|
|
|
|
|
orderService.updateOrder(orderEntity);
|
|
|
|
|
myErpOrderService.deleteByOrderId(orderEntity.getId());
|
|
|
|
|
new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, transData);
|
|
|
|
|
printOrder(orderEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -321,40 +332,24 @@ public class IoTransInoutService {
|
|
|
|
|
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_SUCCESS && orderEntity.getErpFk() == null
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询单据校验后生成的单据详情
|
|
|
|
|
FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest();
|
|
|
|
|
filterErpOrderRequest.setOrderId(orderId);
|
|
|
|
|
List<ErpOrderEntity> erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest);
|
|
|
|
|
|
|
|
|
|
//生成业务单据记录
|
|
|
|
|
StockOrderEntity stockOrderEntity = new StockOrderEntity();
|
|
|
|
|
stockOrderEntity.setBillNo(orderEntity.getId());
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction());
|
|
|
|
|
stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());
|
|
|
|
|
stockOrderEntity.setBilldate(orderEntity.getActDate());
|
|
|
|
|
stockOrderEntity.setCustomerId(orderEntity.getCustomerId());
|
|
|
|
|
stockOrderEntity.setUnitIdFk(orderEntity.getCustomerId());
|
|
|
|
|
stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD);
|
|
|
|
|
stockOrderEntity.setCorpId(orderEntity.getFromCorpId());
|
|
|
|
|
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
|
|
|
|
|
stockOrderEntity.setCorpName(orderEntity.getFromCorp());
|
|
|
|
|
stockOrderService.insertStockOrder(stockOrderEntity);
|
|
|
|
|
|
|
|
|
|
//删除关联的业务单据详情
|
|
|
|
|
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
|
|
|
|
|
stockOrderFilterRequest.setBillNo(stockOrderEntity.getBillNo());
|
|
|
|
|
stockOrderEntity = stockOrderService.findOne(stockOrderFilterRequest);
|
|
|
|
|
stockOrderDetailService.deleteByOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//生成业务单据详情
|
|
|
|
|
List<StockOrderDetailEntity> stockOrderDetailEntities = new ArrayList<>();
|
|
|
|
|
if (erpOrderEntities != null && erpOrderEntities.size() > 0) {
|
|
|
|
|
boolean isError = false;
|
|
|
|
|
for (ErpOrderEntity erpOrderEntity : erpOrderEntities) {
|
|
|
|
|
StockOrderDetailEntity stockOrderDetailEntity = new StockOrderDetailEntity();
|
|
|
|
|
stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
// stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
stockOrderDetailEntity.setProductId(erpOrderEntity.getGoodsid());
|
|
|
|
|
stockOrderDetailEntity.setProductName(erpOrderEntity.getGoodsname());
|
|
|
|
|
|
|
|
|
|
if (erpOrderEntity.getGoodsid() == null)
|
|
|
|
|
stockOrderDetailEntity.setProductId(erpOrderEntity.getNameCode());
|
|
|
|
|
if (erpOrderEntity.getGoodsname() == null)
|
|
|
|
@ -366,6 +361,8 @@ public class IoTransInoutService {
|
|
|
|
|
// stockOrderDetailEntity.setYlqxzcrbarmc(erpOrderEntity.get());
|
|
|
|
|
if (erpOrderEntity.getCount() != null) {
|
|
|
|
|
stockOrderDetailEntity.setSweepCount(erpOrderEntity.getCount() + "");
|
|
|
|
|
stockOrderDetailEntity.setReCount(erpOrderEntity.getReCount() + "");
|
|
|
|
|
stockOrderDetailEntity.setCount(erpOrderEntity.getErpCount() + "");
|
|
|
|
|
}
|
|
|
|
|
if (erpOrderEntity.getReCount() != null) {
|
|
|
|
|
stockOrderDetailEntity.setReCount(erpOrderEntity.getReCount() + "");
|
|
|
|
@ -373,11 +370,44 @@ public class IoTransInoutService {
|
|
|
|
|
if (erpOrderEntity.getErpCount() != null) {
|
|
|
|
|
stockOrderDetailEntity.setCount(erpOrderEntity.getErpCount() + "");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
|
|
|
|
|
filterUdiInfoRequest.setNameCode(erpOrderEntity.getNameCode());
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
|
|
|
|
|
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && erpOrderEntity.getBindRlFk() == null) {
|
|
|
|
|
isError = true;
|
|
|
|
|
erpOrderEntity.setBindStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
|
|
|
|
|
myErpOrderService.updateErpOrder(erpOrderEntity);
|
|
|
|
|
} else if (udiRelevanceEntities.size() == 1) {
|
|
|
|
|
UdiRelevanceResponse udiRelevanceEntity = udiRelevanceEntities.get(0);
|
|
|
|
|
setThridName(bussinessTypeEntity, stockOrderDetailEntity, udiRelevanceEntity);
|
|
|
|
|
|
|
|
|
|
} else if (erpOrderEntity.getBindRlFk() != null) {
|
|
|
|
|
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(erpOrderEntity.getBindRlFk());
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = new UdiRelevanceResponse();
|
|
|
|
|
BeanUtils.copyProperties(udiRelevanceEntity, udiRelevanceResponse);
|
|
|
|
|
setThridName(bussinessTypeEntity, stockOrderDetailEntity, udiRelevanceResponse);
|
|
|
|
|
erpOrderEntity.setGoodsid(stockOrderDetailEntity.getProductId());
|
|
|
|
|
erpOrderEntity.setGoodsname(stockOrderDetailEntity.getProductName());
|
|
|
|
|
myErpOrderService.updateErpOrder(erpOrderEntity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stockOrderDetailEntities.add(stockOrderDetailEntity);
|
|
|
|
|
}
|
|
|
|
|
stockOrderDetailService.insertStockOrderDetails(stockOrderDetailEntities);
|
|
|
|
|
if (!isError) {
|
|
|
|
|
|
|
|
|
|
StockOrderEntity stockOrderEntity = genStockOrder(orderEntity, bussinessTypeEntity);
|
|
|
|
|
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
|
|
|
|
|
stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
stockOrderDetailService.insertStockOrderDetails(stockOrderDetailEntities);
|
|
|
|
|
orderEntity.setRemark("");
|
|
|
|
|
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
|
|
|
|
|
orderService.updateOrder(orderEntity);
|
|
|
|
|
} else {
|
|
|
|
|
orderEntity.setRemark("该产品DI绑定多个产品ID,请在扫码单据详情绑定对应产品ID");
|
|
|
|
|
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
|
|
|
|
|
orderService.updateOrder(orderEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (orderEntity.getContrastStatus() == ConstantStatus.ORDER_CHECK_SUCCESS) {
|
|
|
|
|
String[] erpIds = orderEntity.getErpFk().split(",");
|
|
|
|
@ -393,6 +423,49 @@ public class IoTransInoutService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public StockOrderEntity genStockOrder(OrderEntity orderEntity, BussinessTypeEntity bussinessTypeEntity) {
|
|
|
|
|
//生成业务单据记录
|
|
|
|
|
StockOrderEntity stockOrderEntity = new StockOrderEntity();
|
|
|
|
|
stockOrderEntity.setBillNo(orderEntity.getId());
|
|
|
|
|
stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());
|
|
|
|
|
stockOrderEntity.setBilldate(orderEntity.getActDate());
|
|
|
|
|
stockOrderEntity.setCustomerId(orderEntity.getCustomerId());
|
|
|
|
|
stockOrderEntity.setUnitIdFk(orderEntity.getCustomerId());
|
|
|
|
|
stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD);
|
|
|
|
|
stockOrderEntity.setCorpId(orderEntity.getFromCorpId());
|
|
|
|
|
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
|
|
|
|
|
stockOrderEntity.setCorpName(orderEntity.getFromCorp());
|
|
|
|
|
stockOrderService.insertStockOrder(stockOrderEntity);
|
|
|
|
|
|
|
|
|
|
//删除关联的业务单据详情
|
|
|
|
|
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
|
|
|
|
|
stockOrderFilterRequest.setBillNo(stockOrderEntity.getBillNo());
|
|
|
|
|
stockOrderEntity = stockOrderService.findOne(stockOrderFilterRequest);
|
|
|
|
|
stockOrderDetailService.deleteByOrderIdFk(stockOrderEntity.getId());
|
|
|
|
|
|
|
|
|
|
return stockOrderEntity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setThridName(BussinessTypeEntity bussinessTypeEntity, StockOrderDetailEntity stockOrderDetailEntity, UdiRelevanceResponse udiRelevanceEntity) {
|
|
|
|
|
if (bussinessTypeEntity.getThirdSysFk().equals("thirdId")) {
|
|
|
|
|
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId());
|
|
|
|
|
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName());
|
|
|
|
|
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId1")) {
|
|
|
|
|
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId1());
|
|
|
|
|
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName1());
|
|
|
|
|
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId2")) {
|
|
|
|
|
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId2());
|
|
|
|
|
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName2());
|
|
|
|
|
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId3")) {
|
|
|
|
|
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId3());
|
|
|
|
|
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName3());
|
|
|
|
|
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId4")) {
|
|
|
|
|
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId4());
|
|
|
|
|
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName4());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|