订单绑定优化

This commit is contained in:
潘荣晟
2026-02-11 18:13:46 +08:00
parent 2f36a4013b
commit c08351a830
5 changed files with 301 additions and 13 deletions

View File

@@ -276,6 +276,8 @@ public class ContractRespVO {
@Schema(description = "是否信用", example = "1")
private String hasCredit;
@Schema(description = "关联合同主键")
private Long relatedContractId;
@Schema(description = "收发货规则")
private List<ContractReceiveSendRespVO> contractReceiveSends;

View File

@@ -234,5 +234,12 @@ public class PurchaseOrderController implements BusinessControllerMarker {
purchaseOrderService.boundOrder(req);
return success(true);
}
//获取关联订单
@PostMapping("/get-no-permission")
@Operation(summary = "获取关联订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
public CommonResult<OrderRespVO> getOrder(@RequestParam("id") Long id) {
return success(purchaseOrderService.getOrder(id));
}
}

View File

@@ -164,4 +164,5 @@ public interface PurchaseOrderService {
*/
PageResult<PurchaseOrderDO> pageOrderNoPermission(PurchaseOrderPageReqVO pageReqVO);
void boundOrder(BoundOrderReqVO reqVO);
OrderRespVO getOrder(Long id);
}

View File

@@ -10,6 +10,7 @@ import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.common.util.spring.SpringUtils;
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
@@ -24,17 +25,27 @@ import com.zt.plat.module.bpm.api.task.BpmTaskApi;
import com.zt.plat.module.bpm.api.task.dto.*;
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
import com.zt.plat.module.contractorder.api.dto.order.OriginalMaterialProcessingDetailDTO;
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SaleOrderDetailsRespVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO;
import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper;
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
import com.zt.plat.module.contractorder.dal.mysql.entrustorder.EntrustOrderDetailMapper;
import com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing.OriginalMaterialProcessingDetailMapper;
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper;
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper;
import com.zt.plat.module.contractorder.enums.ErpConstants;
import com.zt.plat.module.contractorder.enums.OrderTypeEnum;
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
@@ -114,6 +125,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
@Resource
private ContractMainMapper contractMainMapper;
private static final Map<String, String> VALID_RELATIONS = new HashMap<>();
static {
// 初始化合法的双向映射关系
VALID_RELATIONS.put("ENT", "ENTED_PUR");
@@ -982,6 +994,51 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
log.info("绑定订单操作完成订单ID{}", reqVO.getId());
}
@Override
public OrderRespVO getOrder(Long id) {
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(id);
OrderRespVO bean = BeanUtils.toBean(purchaseOrderDO, OrderRespVO.class);
if (OrderTypeEnum.SALE.getCode().equals(bean.getSplyBsnTp())) {
// 销售订单
List<SalesOrderDetailDO> salesOrderDetailDOS = SpringUtils.getBean(SalesOrderDetailMapper.class).selectList(
new LambdaQueryWrapper<SalesOrderDetailDO>()
.eq(SalesOrderDetailDO::getOrderId, purchaseOrderDO.getId())
);
bean.setSaleOrdDtlRespVOS(BeanUtils.toBean(salesOrderDetailDOS, SaleOrderDetailsRespVO.class));
} else if (OrderTypeEnum.PUR.getCode().equals(bean.getSplyBsnTp())) {
// 采购订单
List<PrchOrdDtlDO> prchOrdDtlDOS = prchOrdDtlMapper.selectList(
new LambdaQueryWrapper<PrchOrdDtlDO>()
.eq(PrchOrdDtlDO::getOrdId, purchaseOrderDO.getId())
);
bean.setPrchOrdDtlRespVOS(BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class));
} else if (OrderTypeEnum.ENT.getCode().equals(bean.getSplyBsnTp())) {
//委托加工订单
List<EntrustOrderDetailDO> entrustOrderDetailDOS = SpringUtils.getBean(EntrustOrderDetailMapper.class).selectList(
new LambdaQueryWrapper<EntrustOrderDetailDO>()
.eq(EntrustOrderDetailDO::getOrderId, purchaseOrderDO.getId())
);
bean.setEntrustOrdDtlRespVOS(BeanUtils.toBean(entrustOrderDetailDOS, EntrustOrderDetailRespVO.class));
} else if (OrderTypeEnum.ENTED_SALE.getCode().equals(bean.getSplyBsnTp())) {
//来料加工销售订单
List<OriginalMaterialProcessingDetailDO> originalMaterialProcessingDetailDOS = SpringUtils.getBean(OriginalMaterialProcessingDetailMapper.class).selectList(
new LambdaQueryWrapper<OriginalMaterialProcessingDetailDO>()
.eq(OriginalMaterialProcessingDetailDO::getOrderId, purchaseOrderDO.getId())
);
bean.setOriginalMaterialProcessingDetailRespVOS(BeanUtils.toBean(originalMaterialProcessingDetailDOS, OriginalMaterialProcessingDetailRespVO.class));
} else if (OrderTypeEnum.ENTED_PUR.getCode().equals(bean.getSplyBsnTp())) {
//来料加工采购订单
List<OriginalMaterialProcessingDetailDO> originalMaterialProcessingDetailDOS = SpringUtils.getBean(OriginalMaterialProcessingDetailMapper.class).selectList(
new LambdaQueryWrapper<OriginalMaterialProcessingDetailDO>()
.eq(OriginalMaterialProcessingDetailDO::getOrderId, purchaseOrderDO.getId())
);
bean.setOriginalMaterialProcessingDetailRespVOS(BeanUtils.toBean(originalMaterialProcessingDetailDOS, OriginalMaterialProcessingDetailRespVO.class));
}
return bean;
}
public WarehouseFactoryRespVO getBoundFactoryAndWarehouse(String factoryCode, String warehouseCode) {
// 1. 查询主库信息,空值直接抛异常(精准异常信息)