主要修复单据校验bug

master
anthonyywj2 3 years ago
parent 90283eca68
commit bdb6033325

@ -315,6 +315,7 @@ public class StockOrderController {
for (StockOrderDetailEntity thrOrderDetailEntity : stockOrderDetailEntityList) {
ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder();
BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder);
subErpOrder.setRelId(thrOrderDetailEntity.getProductId());
subErpOrders.add(subErpOrder);
}
}
@ -501,6 +502,7 @@ public class StockOrderController {
return ResultVOUtils.success(billNo);
}
/**
*
*

@ -307,6 +307,27 @@ public class OrderController {
return ResultVOUtils.success("合并成功,后台正在数据转换,请稍后刷新重试!");
}
//异常单据撤回
@AuthRuleAnnotation("")
@GetMapping("/spms/inout/order/revoke")
public BaseResponse revokeOrder(OrderFilterRequest orderFilterRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
OrderEntity orderEntity = orderService.findById(orderFilterRequest.getId());
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
List<WarehouseEntity> warehouseEntityList = codesService.findByReceiptId(orderEntity.getId());
codesTempService.insertCodesTemp(warehouseEntityList);
codesService.deleteByOrderId(orderEntity.getId());
orderService.updateOrder(orderEntity);
return ResultVOUtils.success("单据撤回成功!");
}
public List<String> getDocids(List<ErpOrderEntity> mergeList) {
List<String> docids = new ArrayList<>();

@ -23,10 +23,7 @@ import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse;
import com.glxp.api.admin.res.inout.ErpOrderResponse;
import com.glxp.api.admin.req.inout.*;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.service.basic.BussinessOriginTypeService;
import com.glxp.api.admin.service.basic.BussinessTypeService;
import com.glxp.api.admin.service.basic.UdiInfoService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.basic.*;
import com.glxp.api.admin.service.business.StockOrderDetailService;
import com.glxp.api.admin.service.business.StockOrderService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
@ -75,6 +72,8 @@ public class OrderDetailController {
@Resource
private BussinessTypeService bussinessTypeService;
@Resource
private BussinessLocalTypeService bussinessLocalTypeService;
@Resource
private ThrOrderService thrOrderService;
@Resource
private ThrOrderDetailService thrOrderDetailService;
@ -145,85 +144,94 @@ public class OrderDetailController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessTypeService.findByActionKey(filterErpOrderRequest.getBillAction(), "orderQueryUrl");
if (basicThirdSysDetailEntity == null || !basicThirdSysDetailEntity.getEnabled()) {
return ResultVOUtils.error(500, "第三方业务单据服务未启用");
}
if (basicThirdSysDetailEntity.getThirdSysFk() == null) {
return ResultVOUtils.error(500, "第三方业务单据服务未关联");
}
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessLocalTypeService.findOriginJoinByAction(filterErpOrderRequest.getBillAction());
if (bussinessOriginTypeResponse.getThirdSys() != null) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessLocalTypeService.findByActionKey(filterErpOrderRequest.getBillAction(), "orderQueryUrl");
if (basicThirdSysDetailEntity == null || !basicThirdSysDetailEntity.getEnabled()) {
return ResultVOUtils.error(500, "第三方业务单据服务未启用");
}
if (filterErpOrderRequest.getIsDownThrSys() != null && filterErpOrderRequest.getIsDownThrSys()) {
return new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest);
}
if (basicThirdSysDetailEntity.getThirdSysFk() == null) {
return ResultVOUtils.error(500, "第三方业务单据服务未关联");
}
if (filterErpOrderRequest.getIsDownThrSys() != null && filterErpOrderRequest.getIsDownThrSys()) {
return new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest);
}
// if (filterErpOrderRequest.getIsLocal() != null && filterErpOrderRequest.getIsLocal()) {
// return getLoaclData(filterErpOrderRequest);
// }
if (basicThirdSysDetailEntity.getLocalAction() != null && basicThirdSysDetailEntity.getThirdSysFk() == null) {
filterErpOrderRequest.setLocalAction(basicThirdSysDetailEntity.getLocalAction());
return getLoaclData(filterErpOrderRequest);
}
if (basicThirdSysDetailEntity.getFromType() != null && basicThirdSysDetailEntity.getFromType() == 0) {
if (basicThirdSysDetailEntity.getValue() == null) {
return ResultVOUtils.error(500, "业务单据查询接口未定义");
if (bussinessOriginTypeResponse.getLocalAction() != null && basicThirdSysDetailEntity.getThirdSysFk() == null) {
filterErpOrderRequest.setLocalAction(bussinessOriginTypeResponse.getLocalAction());
return getLoaclData(filterErpOrderRequest);
}
filterErpOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction());
BaseResponse<PageSimpleResponse<ErpOrderResponse>> baseResponse = new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest);
if (basicThirdSysDetailEntity.getFromType() != null && basicThirdSysDetailEntity.getFromType() == 0) {
if (basicThirdSysDetailEntity.getValue() == null) {
return ResultVOUtils.error(500, "业务单据查询接口未定义");
}
filterErpOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction());
BaseResponse<PageSimpleResponse<ErpOrderResponse>> baseResponse = new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest);
//
if (basicThirdSysDetailEntity.getLocalAction() != null) {
if (baseResponse.getData().getList() != null) {
BaseResponse<PageSimpleResponse<ErpOrderResponse>> loca = getLoaclData(filterErpOrderRequest);
baseResponse.getData().getList().addAll(loca.getData().getList());
if (bussinessOriginTypeResponse.getLocalAction() != null) {
if (baseResponse.getData().getList() != null) {
BaseResponse<PageSimpleResponse<ErpOrderResponse>> loca = getLoaclData(filterErpOrderRequest);
baseResponse.getData().getList().addAll(loca.getData().getList());
}
}
}
return baseResponse;
return baseResponse;
} else {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
BeanUtils.copyProperties(filterErpOrderRequest, filterThrOrderRequest);
filterThrOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction());
filterThrOrderRequest.setPage(filterErpOrderRequest.getPage());
filterThrOrderRequest.setLimit(filterErpOrderRequest.getLimit());
List<ErpOrderResponse> erpOrderResponses = new ArrayList<>();
List<ThrOrderEntity> data = thrOrderService.filterThrOrder(filterThrOrderRequest);
if (data != null && data.size() > 0) {
for (ThrOrderEntity thrOrderEntity : data) {
FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest();
filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + "");
List<ThrOrderDetailEntity> thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest);
ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
BeanUtils.copyProperties(thrOrderEntity, erpOrderResponse);
List<ErpOrderResponse.SubErpOrder> subErpOrders = new ArrayList<>();
if (thrOrderDetailEntities != null && thrOrderDetailEntities.size() > 0) {
for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder();
BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder);
subErpOrders.add(subErpOrder);
} else {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
BeanUtils.copyProperties(filterErpOrderRequest, filterThrOrderRequest);
filterThrOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction());
filterThrOrderRequest.setPage(filterErpOrderRequest.getPage());
filterThrOrderRequest.setLimit(filterErpOrderRequest.getLimit());
List<ErpOrderResponse> erpOrderResponses = new ArrayList<>();
List<ThrOrderEntity> data = thrOrderService.filterThrOrder(filterThrOrderRequest);
if (data != null && data.size() > 0) {
for (ThrOrderEntity thrOrderEntity : data) {
FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest();
filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + "");
List<ThrOrderDetailEntity> thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest);
ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
BeanUtils.copyProperties(thrOrderEntity, erpOrderResponse);
List<ErpOrderResponse.SubErpOrder> subErpOrders = new ArrayList<>();
if (thrOrderDetailEntities != null && thrOrderDetailEntities.size() > 0) {
for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder();
BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder);
subErpOrders.add(subErpOrder);
}
}
erpOrderResponse.setSubErpOrders(subErpOrders);
erpOrderResponses.add(erpOrderResponse);
}
erpOrderResponse.setSubErpOrders(subErpOrders);
erpOrderResponses.add(erpOrderResponse);
}
}
if (basicThirdSysDetailEntity.getLocalAction() != null) {
BaseResponse<PageSimpleResponse<ErpOrderResponse>> loca = getLoaclData(filterErpOrderRequest);
erpOrderResponses.addAll(loca.getData().getList());
}
PageInfo<ThrOrderEntity> pageInfo;
pageInfo = new PageInfo<>(data);
PageSimpleResponse<ErpOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(erpOrderResponses);
return ResultVOUtils.success(pageSimpleResponse);
if (bussinessOriginTypeResponse.getLocalAction() != null) {
BaseResponse<PageSimpleResponse<ErpOrderResponse>> loca = getLoaclData(filterErpOrderRequest);
erpOrderResponses.addAll(loca.getData().getList());
}
PageInfo<ThrOrderEntity> pageInfo;
pageInfo = new PageInfo<>(data);
PageSimpleResponse<ErpOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(erpOrderResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
} else {
BaseResponse<PageSimpleResponse<ErpOrderResponse>> loca = getLoaclData(filterErpOrderRequest);
return loca;
}
}
@GetMapping("/udiwms/erpOrder/addStockOrder")
@ -521,6 +529,8 @@ public class OrderDetailController {
erpOrderEntity.setGoodsid(subPurchase.getProductId());
erpOrderEntity.setGoodsname(subPurchase.getProductName());
erpOrderEntity.setRelIdFk(subPurchase.getRelId());
erpOrderEntity.setProductDate(subPurchase.getProductDate());
erpOrderEntity.setExpireDate(subPurchase.getExpireDate());
erpOrderEntity.setBatchNo(subPurchase.getBatchNo());
if (subPurchase.getCount() != null)
erpOrderEntity.setErpCount(Math.abs(Integer.parseInt(subPurchase.getCount())));

@ -23,6 +23,7 @@ import com.glxp.api.admin.service.basic.BussinessTypeService;
import com.glxp.api.admin.service.info.CompanyService;
import com.glxp.api.admin.service.inout.*;
import com.glxp.api.admin.thread.IoTransInoutService;
import com.glxp.api.admin.util.CustomUtil;
import com.glxp.api.admin.util.DateUtil;
import com.glxp.api.admin.util.FileUtils;
import com.glxp.api.admin.util.FilterUdiUtils;
@ -268,6 +269,8 @@ public class WareHouseController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
try {
Integer userId = customerService.getUserId();
postOrderRequest.setUserId(userId);
transInoutService.creatOrderAsycn(postOrderRequest, null);
} catch (Exception e) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
@ -327,7 +330,7 @@ public class WareHouseController {
return ResultVOUtils.error(500, "UDI码格式错误");
String orderId = addOrderRequest.getOrderId();
if (StringUtils.isBlank(orderId)) {
orderId = System.currentTimeMillis() + new Random().nextInt(10) + "";
orderId = "SM" + CustomUtil.getId();
OrderEntity orderSaveRequest = new OrderEntity();
orderSaveRequest.setId(orderId);
if (addOrderRequest.getActDate() != null) {
@ -335,7 +338,8 @@ public class WareHouseController {
}
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(addOrderRequest.getAction());
orderSaveRequest.setMainAction(bussinessTypeEntity.getMainAction());
Integer userId = customerService.getUserId();
orderSaveRequest.setCreateUser(userId);
orderSaveRequest.setLocStorageCode(addOrderRequest.getLocStorageCode());
orderSaveRequest.setAction(addOrderRequest.getAction());
orderSaveRequest.setActor(addOrderRequest.getActor());

@ -284,6 +284,7 @@ public class ContrastErpUtil {
if (erpOrderEntity.getRelIdFk() != null) {
udiRelevanceResponse = udiRelevanceService.selectGroupById(erpOrderEntity.getRelIdFk());
} else {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(erpOrderEntity.getGoodsid(), bussinessTypeEntity.getThirdSys());
if (udiRelevanceEntity != null) {
udiRelevanceResponse = udiRelevanceService.selectGroupById(udiRelevanceEntity.getId());

@ -1,8 +1,10 @@
package com.glxp.api.admin.dao.basic;
import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest;
import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest;
import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest;
import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -18,6 +20,8 @@ public interface BussinessLocalTypeDao {
List<BussinessLocalTypeEntity> filterJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest);
List<BussinessOriginTypeResponse> filterJoinOrigin(BusOriginJoinFilterRequest busOriginJoinFilterRequest);
List<BussinessLocalTypeEntity> filterJoinByUser(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest);
List<BussinessLocalTypeEntity> filterLeftJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest);

@ -0,0 +1,11 @@
package com.glxp.api.admin.req.basic;
import lombok.Data;
@Data
public class BusOriginJoinFilterRequest {
private String action;
private String localAction;
private String thirdAction;
}

@ -6,6 +6,12 @@ import lombok.Data;
public class BussinessOriginTypeResponse {
private String name;
private String action;
private String localName;
private String originAction;
private String originName;
private String localAction;
private String thirdAction;
private String thirdSys;
private String thirdSysName;
}

@ -1,7 +1,9 @@
package com.glxp.api.admin.service.basic;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest;
import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse;
import java.util.List;
@ -19,6 +21,9 @@ public interface BussinessLocalTypeService {
List<BussinessLocalTypeEntity> filterLeftJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest);
BasicThirdSysDetailEntity findByActionKey(String action, String key);
BussinessOriginTypeResponse findOriginJoinByAction(String action);
BussinessLocalTypeEntity findBTByAction(String action);

@ -2,10 +2,14 @@ package com.glxp.api.admin.service.basic.impl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.admin.dao.basic.BussinessLocalTypeDao;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest;
import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest;
import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest;
import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse;
import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
import com.glxp.api.admin.service.basic.BussinessLocalTypeService;
import org.springframework.stereotype.Service;
@ -18,6 +22,8 @@ public class BussinessLocalTypeServiceImpl implements BussinessLocalTypeService
@Resource
BussinessLocalTypeDao bussinessLocalTypeDao;
@Resource
BasicThirdSysDetailService basicThirdSysDetailService;
@Override
public BussinessLocalTypeEntity selectById(String id) {
@ -81,6 +87,34 @@ public class BussinessLocalTypeServiceImpl implements BussinessLocalTypeService
return data;
}
@Override
public BasicThirdSysDetailEntity findByActionKey(String action, String key) {
BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest();
busOriginJoinFilterRequest.setLocalAction(action);
List<BussinessOriginTypeResponse> bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest);
if (!bussinessOriginTypeResponses.isEmpty()) {
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0);
if (bussinessOriginTypeResponse.getThirdSys() != null) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeResponse.getThirdSys());
return basicThirdSysDetailEntity;
}
}
return null;
}
@Override
public BussinessOriginTypeResponse findOriginJoinByAction(String action) {
BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest();
busOriginJoinFilterRequest.setLocalAction(action);
List<BussinessOriginTypeResponse> bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest);
if (!bussinessOriginTypeResponses.isEmpty()) {
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0);
return bussinessOriginTypeResponse;
}
return null;
}
@Override
public BussinessLocalTypeEntity findBTByAction(String action) {
BussinessLocalTypeFilterRequest bussinessTypeFilterRequest = new BussinessLocalTypeFilterRequest();

@ -3,11 +3,14 @@ package com.glxp.api.admin.service.basic.impl;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.admin.constant.ConstantType;
import com.glxp.api.admin.dao.basic.BussinessLocalTypeDao;
import com.glxp.api.admin.dao.basic.BussinessTypeDao;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BussinessOriginTypeEntity;
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest;
import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest;
import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse;
import com.glxp.api.admin.res.basic.BussinessTypResponse;
import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
import com.glxp.api.admin.service.basic.BussinessOriginTypeService;
@ -27,6 +30,8 @@ public class BussinessTypeServiceImpl implements BussinessTypeService {
BasicThirdSysDetailService basicThirdSysDetailService;
@Resource
BussinessOriginTypeService bussinessOriginTypeService;
@Resource
BussinessLocalTypeDao bussinessLocalTypeDao;
@Override
public BussinessTypeEntity selectById(String id) {
@ -95,29 +100,13 @@ public class BussinessTypeServiceImpl implements BussinessTypeService {
@Override
public BasicThirdSysDetailEntity findByActionKey(String action, String key) {
BussinessTypResponse bussinessTypResponse = findJoinBTByAction(action);
if (bussinessTypResponse != null) {
BussinessOriginTypeEntity bussinessOriginTypeEntity = bussinessOriginTypeService.findByAction(bussinessTypResponse.getThirdAction());
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeEntity.getThirdSys());
if (basicThirdSysDetailEntity == null) {
basicThirdSysDetailEntity = new BasicThirdSysDetailEntity();
basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse.getLocalAction());
basicThirdSysDetailEntity.setEnabled(true);
return basicThirdSysDetailEntity;
} else {
basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse.getLocalAction());
return basicThirdSysDetailEntity;
}
} else {
BussinessTypeEntity bussinessTypResponse2 = findBTByAction(action);
if (bussinessTypResponse2 != null) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = new BasicThirdSysDetailEntity();
basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse2.getLocalAction());
basicThirdSysDetailEntity.setEnabled(true);
return basicThirdSysDetailEntity;
}
BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest();
busOriginJoinFilterRequest.setAction(action);
List<BussinessOriginTypeResponse> bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest);
if (!bussinessOriginTypeResponses.isEmpty()) {
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0);
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeResponse.getThirdSys());
return basicThirdSysDetailEntity;
}
return null;
}

@ -18,6 +18,7 @@ import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.httpclient.ErpOrderClient;
import com.glxp.api.admin.req.basic.FilterCompanyProductRelevanceRequest;
import com.glxp.api.admin.req.basic.FilterUdiInfoRequest;
import com.glxp.api.admin.req.business.StockOrderFilterRequest;
import com.glxp.api.admin.req.inout.CommitRequest;
@ -32,6 +33,7 @@ import com.glxp.api.admin.service.basic.UdiInfoService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.business.StockOrderDetailService;
import com.glxp.api.admin.service.business.StockOrderService;
import com.glxp.api.admin.service.info.CompanyProductRelevanceService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.service.inout.CodesService;
import com.glxp.api.admin.service.inout.CodesTempService;
@ -72,7 +74,8 @@ public class IoTransInoutService {
private UdiInfoService udiInfoService;
@Value("${UDI_SERVER_URL}")
private String udiUrl;
@Resource
CompanyProductRelevanceService companyProductRelevanceService;
@Resource
private CodesTempService codesTempService;
@Autowired
@ -122,9 +125,9 @@ public class IoTransInoutService {
WarehouseEntity warehouseEntity = warehouseEntityList.get(0);
String orderId = "SM" + CustomUtil.getId() + i + "";
if (warehouseEntity.getOrderId() != null) {
orderId = warehouseEntity.getOrderId();
}
// if (warehouseEntity.getOrderId() != null) {
// orderId = warehouseEntity.getOrderId();
// }
OrderEntity orderSaveRequest = new OrderEntity();
orderSaveRequest.setId(orderId);
@ -206,6 +209,9 @@ public class IoTransInoutService {
orderSaveRequest.setMainAction(warehouseEntity.getMainAction());
orderSaveRequest.setFromCorp(warehouseEntity.getFromCorp());
orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW);
orderSaveRequest.setReceiveStatus(0);
orderSaveRequest.setCreateUser(postOrderRequest.getUserId());
orderSaveRequest.setLocStorageCode(warehouseEntity.getLocStorageCode());
orderSaveRequest.setStatus(postOrderRequest.getSubmitType() == 0 ?
ConstantStatus.ORDER_STATUS_PROCESS : ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderSaveRequest.setExportStatus(ConstantStatus.ORDER_EXPORT_UN);
@ -248,6 +254,7 @@ public class IoTransInoutService {
}
}
public void transInout(OrderEntity orderEntity) {
if (orderEntity.getFromCorp() == null) {
@ -324,6 +331,7 @@ public class IoTransInoutService {
}
}
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(warehouseEntity.getNameCode());
if (udiRelevanceResponse == null) {
orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL);
@ -334,46 +342,18 @@ public class IoTransInoutService {
orderService.updateRemark(orderEntity.getId(), "udi码" + warehouseEntity.getCode() + "该产品不允许以使用单元入库!");
return;
}
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceService.findByUdiRlIdUnitFk(udiRelevanceResponse.getId() + "", warehouseEntity.getFromCorpId());
if (companyProductRelevanceEntity == null) {
orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL);
orderService.updateRemark(orderEntity.getId(), udiRelevanceResponse.getCpmctymc() + "该产品非此供应商配送");
return;
}
}
}
if (insertList.size() > 0) {
warehouseService.insertWarehouses(insertList);
//未所有条码关联基础信息关联表ID
List<WarehouseEntity> warehouseEntityList = warehouseService.findByReceiptId(orderEntity.getId());
for (WarehouseEntity warehouseEntity : warehouseEntityList) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode());
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) {
warehouseEntity.setRelId(null);
warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
} else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) {
warehouseEntity.setRelId(null);
warehouseEntity.setStatus(2);
} else {
warehouseEntity.setStatus(0);
warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + "");
}
warehouseService.updateCode(warehouseEntity);
}
if (orderEntity.getErpFk() != null && !"".equals(orderEntity.getErpFk())) {//已经绑定校验单据号,等待校验
orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK);
} else {
//生成单据详情
inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList);
if (bussinessTypeEntity.getThirdSysFk() == null && bussinessTypeEntity.getLocalAction() == null) {//不需要校验
checkMutiDi(orderEntity.getId()); //校验一个DI是否绑定多个产品ID
orderEntity = orderService.findById(orderEntity.getId());
if (orderEntity.getContrastStatus() != ConstantStatus.ORDER_CHECK_FAIL) {
orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_SUCCESS);
invProductsTrService.genInvProducts(orderEntity.getId());
}
} else {//需要校验,等待校验
orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK);
}
}
//删除临时表
WarehouseQueryRequest tempQuery = new WarehouseQueryRequest();
@ -389,10 +369,52 @@ public class IoTransInoutService {
}
}
/**
* //未所有条码关联基础信息关联表ID
* List<WarehouseEntity> warehouseEntityList = warehouseService.findByReceiptId(orderEntity.getId());
* for (WarehouseEntity warehouseEntity : warehouseEntityList) {
* FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
* filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode());
* List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
* if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) {
* warehouseEntity.setRelId(null);
* warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
* } else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) {
* warehouseEntity.setRelId(null);
* warehouseEntity.setStatus(2);
* } else {
* warehouseEntity.setStatus(0);
* warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + "");
* }
* warehouseService.updateCode(warehouseEntity);
* }
* <p>
* <p>
* if (orderEntity.getErpFk() != null && !"".equals(orderEntity.getErpFk())) {//已经绑定校验单据号,等待校验
* orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK);
* } else {
* //生成单据详情
* inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList);
* if (bussinessTypeEntity.getThirdSysFk() == null && bussinessTypeEntity.getLocalAction() == null) {//不需要校验
* checkMutiDi(orderEntity.getId()); //校验一个DI是否绑定多个产品ID
* orderEntity = orderService.findById(orderEntity.getId());
* if (orderEntity.getContrastStatus() != ConstantStatus.ORDER_CHECK_FAIL) {
* orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_SUCCESS);
* invProductsTrService.genInvProducts(orderEntity.getId());
* }
* } else {//需要校验,等待校验
* orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK);
* }
* }
*
* @param orderId
*/
//转入正式表后,更换单据状态,等待校验或已完成
public void transStatus(String orderId) {
//todo 改成等待校验,选择校验
OrderEntity orderEntity = orderService.findById(orderId);
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction());
List<WarehouseEntity> warehouseEntityList = warehouseService.findByReceiptId(orderId);
myErpOrderService.deleteByOrderId(orderEntity.getId());
//为所有条码关联基础信息关联表ID
@ -400,6 +422,14 @@ public class IoTransInoutService {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode());
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
//默认或已选中供应商
String originSupId = checkOriginExitSup(warehouseEntity);
if (originSupId != null) {
warehouseEntity.setSupId(originSupId);
}
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) {
warehouseEntity.setRelId(null);
warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
@ -408,19 +438,32 @@ public class IoTransInoutService {
warehouseEntity.setStatus(2);
} else {
warehouseEntity.setStatus(0);
warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + "");
String supId = checkOriginExitSup(warehouseEntity);
if (supId != null) {
warehouseEntity.setSupId(supId);
} else {
supId = checkInvExitSup(warehouseEntity);
warehouseEntity.setSupId(supId);
if (warehouseEntity.getRelId() == null)
warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + "");
if (originSupId == null) {
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
String supId = null;
if (originSupId == null) {
supId = checkExitSup(warehouseEntity.getRelId());
if (supId == null) {
supId = checkInvExitSup(warehouseEntity);
}
} else
supId = originSupId;
if (supId != null) {//&& !supId.equals("MUTI")
warehouseEntity.setSupId(supId);
}
} else {
String supId = checkExitSup(warehouseEntity.getRelId());
if (supId == null) {
supId = checkInvExitSup(warehouseEntity);
}
warehouseEntity.setSupId(supId);
}
}
}
warehouseService.updateCode(warehouseEntity);
}
String action = orderEntity.getAction();
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(action);
if (!bussinessTypeEntity.isCheckEnable()) {
orderEntity = orderService.findById(orderEntity.getId());
unCheckFinish(orderEntity, warehouseEntityList);
@ -494,12 +537,10 @@ public class IoTransInoutService {
//校验是否自带供应商
public String checkOriginExitSup(WarehouseEntity warehouseEntity) {
if (ConstantType.TYPE_PUT.equals(warehouseEntity.getMainAction())) {
if (warehouseEntity.getSupId() != null && !"".equals(warehouseEntity.getSupId())) {
return warehouseEntity.getSupId();
} else if (ConstantType.TYPE_PUT.equals(warehouseEntity.getMainAction())) {
return warehouseEntity.getFromCorpId();
} else if (ConstantType.TYPE_OUT.equals(warehouseEntity.getMainAction())) {
if (warehouseEntity.getSupId() != null && !"".equals(warehouseEntity.getSupId())) {
return warehouseEntity.getSupId();
}
}
return null;
}
@ -531,21 +572,32 @@ public class IoTransInoutService {
return null;
}
// //校验是否存在供应商
// public String checkExitSup(String relId) {
// //校验条码关联供应商
// FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest();
// filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId);
// List<CompanyProductRelevanceEntity> companyProductRelevanceEntities = companyProductRelevanceService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
// if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() == 1) {
// CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceEntities.get(0);
// CompanyEntity companyEntity = companyService.findCompany(companyProductRelevanceEntity.getCustomerId());
// return companyEntity.getUnitIdFk();
// } else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) {
// return "MUTI"; //绑定多个供应商
// }
// return null;
// }
//校验是否存在供应商
public String checkExitSup(String relId) {
//校验条码关联供应商
FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest();
filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId);
List<CompanyProductRelevanceEntity> companyProductRelevanceEntities = companyProductRelevanceService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() == 1) {
CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceEntities.get(0);
// BasicUnitMaintainEntity companyEntity = basicUnitMaintainService.selectByErpId(companyProductRelevanceEntity.getUnitFk());
return companyProductRelevanceEntity.getUnitFk();
} else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) {
String unitFk = companyProductRelevanceEntities.get(0).getUnitFk();
boolean isMuti = false;
for (CompanyProductRelevanceEntity companyProductRelevanceEntity : companyProductRelevanceEntities) {
if (!unitFk.equals(companyProductRelevanceEntity.getUnitFk())) {
isMuti = true;
break;
}
}
if (isMuti)
return "MUTI"; //绑定多个供应商
else
return unitFk;
}
return null;
}
public void genOrderDetail(List<WarehouseEntity> warehouseEntityList) {
inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList);
@ -840,11 +892,14 @@ public class IoTransInoutService {
public StockOrderEntity genStockOrder(OrderEntity orderEntity, BussinessTypeEntity bussinessTypeEntity) {
//生成业务单据记录
StockOrderEntity stockOrderEntity = new StockOrderEntity();
stockOrderEntity.setBillNo(orderEntity.getId());
stockOrderEntity.setBillNo("ST" + CustomUtil.getId());
stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());//todo
stockOrderEntity.setBilldate(orderEntity.getActDate());
stockOrderEntity.setUnitIdFk(orderEntity.getFromCorpId());
stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD);
stockOrderEntity.setCreateUser(orderEntity.getCreateUser());
stockOrderEntity.setReviewUser(orderEntity.getReviewUser());
stockOrderEntity.setLocStorageCode(orderEntity.getLocStorageCode());
stockOrderEntity.setCorpId(orderEntity.getFromCorpId());
if (bussinessTypeEntity.isSecCheckEnable()) {
stockOrderEntity.setStatus(ConstantStatus.SORDER_DELIVER);

@ -41,7 +41,8 @@
<select id="filterJoin" parameterType="com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest"
resultType="com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity">
SELECT basic_bustype_local.id,basic_bustype_local.name localName, basic_bustype_local.action localAction,originAction,
SELECT basic_bustype_local.id,basic_bustype_local.name localName, basic_bustype_local.action
localAction,originAction,
basic_bussiness_type.name ,
basic_bussiness_type.action,basic_bussiness_type.checkEnable,basic_bustype_local.advanceType,basic_bustype_local.changeEnable
, basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.corpType
@ -65,6 +66,29 @@
</select>
<select id="filterJoinOrigin" parameterType="com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest"
resultType="com.glxp.api.admin.res.basic.BussinessOriginTypeResponse">
select
basic_bussiness_type.action,basic_bussiness_type.`name`,
basic_bussiness_type.localAction,basic_bustype_local.`name` localName,
basic_bustype_origin.action originAction,basic_bustype_origin.name originName,
thirdSys,thirdSysName,basic_bustype_origin.`enable` originEnable
from basic_bussiness_type
left JOIN basic_bustype_local on basic_bussiness_type.localAction = basic_bustype_local.action
left JOIN basic_bustype_origin on basic_bustype_local.originAction = basic_bustype_origin.action
<where>
<if test="action != ''and action != null">
AND basic_bussiness_type.action =#{action}
</if>
<if test="localAction != ''and localAction != null">
AND basic_bustype_local.action =#{localAction}
</if>
<if test="thirdAction != ''and thirdAction != null">
AND basic_bustype_origin.action =#{thirdAction}
</if>
</where>
GROUP BY basic_bussiness_type.id
</select>
<select id="filterJoinByUser" parameterType="com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest"
resultType="com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity">
@ -158,4 +182,6 @@
FROM basic_bustype_local
WHERE id = #{id}
</select>
</mapper>

@ -55,7 +55,7 @@
AND name LIKE concat(#{name},'%')
</if>
<if test="action != ''and action != null">
AND `action` LIKE concat(#{action},'%')
AND basic_bussiness_type.`action` LIKE concat(#{action},'%')
</if>
<if test="mainAction != ''and mainAction != null">
AND mainAction LIKE concat(#{mainAction},'%')

Loading…
Cancel
Save