订单绑定相关
This commit is contained in:
@@ -104,7 +104,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
public CommonResult<PageResult<PurchaseOrderRespVO>> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) {
|
||||
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO);
|
||||
PageResult<PurchaseOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class);
|
||||
if (purchaseOrderRespVOPageResult.getList().isEmpty()){
|
||||
if (purchaseOrderRespVOPageResult.getList().isEmpty()) {
|
||||
return success(purchaseOrderRespVOPageResult);
|
||||
}
|
||||
purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO));
|
||||
@@ -207,7 +207,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@Operation(summary = "根据订单id和方式获取上或下游订单")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
|
||||
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
|
||||
return success( purchaseOrderService.getOrderByOrderIdAndType(reqVO));
|
||||
return success(purchaseOrderService.getOrderByOrderIdAndType(reqVO));
|
||||
}
|
||||
|
||||
|
||||
@@ -218,5 +218,21 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
return success(purchaseOrderService.getBindOrderByOrder(reqVO));
|
||||
}
|
||||
|
||||
//无权限查询订单
|
||||
@PostMapping("/page-no-permission")
|
||||
@Operation(summary = "无权限查询订单")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
|
||||
public CommonResult<PageResult<PurchaseOrderRespVO>> pageOrderNoPermission(@RequestBody PurchaseOrderPageReqVO pageReqVO) {
|
||||
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.pageOrderNoPermission(pageReqVO);
|
||||
return success( BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class));
|
||||
}
|
||||
//关联订单
|
||||
@PostMapping("/bound-order")
|
||||
@Operation(summary = "关联订单")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')")
|
||||
public CommonResult<Boolean> boundOrder(@RequestBody @Validated BoundOrderReqVO req) {
|
||||
purchaseOrderService.boundOrder(req);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@Data
|
||||
@Validated
|
||||
@Schema(description = "绑定订单请求参数")
|
||||
public class BoundOrderReqVO {
|
||||
@Schema(description = "订单ID")
|
||||
@NotNull(message = "订单ID不能为空")
|
||||
private Long id;
|
||||
@Schema(description = "绑定的订单ID")
|
||||
@NotNull(message = "被绑定的订单ID不能为空")
|
||||
private Long boundId;
|
||||
}
|
||||
@@ -14,7 +14,8 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
@Schema(description = "管理后台 - 采购订单分页 Request VO")
|
||||
@Data
|
||||
public class PurchaseOrderPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "订单主键")
|
||||
private Long id;
|
||||
@Schema(description = "ERP订单号")
|
||||
private String orderSAPNumber;
|
||||
|
||||
|
||||
@@ -295,5 +295,9 @@ public class PurchaseOrderDO extends BusinessBaseDO {
|
||||
@TableField("ISS_CAUS")
|
||||
private String issueCause;
|
||||
|
||||
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
@TableField(value = "REL_ORD_ID")
|
||||
private Long relatedOrderId;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.zt.plat.module.contractorder.dal.mysql.purchaseorder;
|
||||
import java.util.*;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||
|
||||
@@ -78,4 +80,50 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
|
||||
List<PurchaseOrderWithDetailsVO> selectOrderByAndAllIds(@Param("ids") List<Long> ids);
|
||||
|
||||
PurchaseOrderDO findOrderById(@Param("id") Long id);
|
||||
|
||||
@CompanyDataPermissionIgnore
|
||||
@DeptDataPermissionIgnore
|
||||
default PageResult<PurchaseOrderDO> selectLinkPage(PurchaseOrderPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseOrderDO>()
|
||||
.likeIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getCpNum, reqVO.getCompanyNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||
.eqIfPresent(PurchaseOrderDO::getType, reqVO.getType())
|
||||
.betweenIfPresent(PurchaseOrderDO::getVoucherDate, reqVO.getVoucherDate())
|
||||
.eqIfPresent(PurchaseOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration())
|
||||
.likeIfPresent(PurchaseOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
|
||||
.eqIfPresent(PurchaseOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
|
||||
.eqIfPresent(PurchaseOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup())
|
||||
.eqIfPresent(PurchaseOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getExchangeRate, reqVO.getExchangeRate())
|
||||
.likeIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(PurchaseOrderDO::getAgentNumber, reqVO.getAgentNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getAgentName, reqVO.getAgentName())
|
||||
.eqIfPresent(PurchaseOrderDO::getMtrlTp, reqVO.getMtrlTp())
|
||||
// .eqIfPresent(PurchaseOrderDO::getOrderNumber, reqVO.getOrderNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getContractNumber, reqVO.getContractNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getMaterialNumber, reqVO.getMaterialNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getMaterialName, reqVO.getMaterialName())
|
||||
.likeIfPresent(PurchaseOrderDO::getContractName, reqVO.getContractName())
|
||||
.likeIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber())
|
||||
.betweenIfPresent(PurchaseOrderDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(PurchaseOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName())
|
||||
.eqIfPresent(PurchaseOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName())
|
||||
.likeIfPresent(PurchaseOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName())
|
||||
.eqIfPresent(PurchaseOrderDO::getErpStatus, reqVO.getErpStatus())
|
||||
.eqIfPresent(PurchaseOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp() != null ? reqVO.getSplyBsnTp() : "PUR")
|
||||
.eqIfPresent(PurchaseOrderDO::getCause, reqVO.getCause())
|
||||
.eqIfPresent(PurchaseOrderDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(PurchaseOrderDO::getMeteringType, reqVO.getMeteringType())
|
||||
.likeIfPresent(PurchaseOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())
|
||||
.orderByDesc(PurchaseOrderDO::getId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.zt.plat.framework.security.core.LoginUser;
|
||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
@@ -2093,6 +2095,8 @@ public class ContractServiceImpl implements ContractService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CompanyDataPermissionIgnore
|
||||
@DeptDataPermissionIgnore
|
||||
public void relationContract(RelationContractVO relationContractVO) {
|
||||
//查询当前订单是否已经绑定订单了
|
||||
ContractMainDO contractMainDO = contractMainMapper.selectById(relationContractVO.getContractId());
|
||||
|
||||
@@ -156,4 +156,12 @@ public interface PurchaseOrderService {
|
||||
* @return 订单和计划数据
|
||||
*/
|
||||
PageResult<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO);
|
||||
/**
|
||||
* 分页查询订单数据
|
||||
*
|
||||
* @param pageReqVO 查询条件
|
||||
* @return 订单数据
|
||||
*/
|
||||
PageResult<PurchaseOrderDO> pageOrderNoPermission(PurchaseOrderPageReqVO pageReqVO);
|
||||
void boundOrder(BoundOrderReqVO reqVO);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ 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.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi;
|
||||
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
|
||||
@@ -23,14 +25,17 @@ 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.vo.contract.ContractRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
||||
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.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.mysql.contract.ContractMainMapper;
|
||||
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
||||
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.enums.ErpConstants;
|
||||
import com.zt.plat.module.contractorder.enums.OrderTypeEnum;
|
||||
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
|
||||
import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum;
|
||||
import com.zt.plat.module.contractorder.service.contract.ContractService;
|
||||
@@ -105,6 +110,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
private WarehouseFactoryService warehouseFactoryService;
|
||||
@Resource
|
||||
private InternalWarehouseService internalWarehouseService;
|
||||
@Resource
|
||||
private ContractMainMapper contractMainMapper;
|
||||
private static final Map<String, String> VALID_RELATIONS = new HashMap<>();
|
||||
static {
|
||||
// 初始化合法的双向映射关系
|
||||
VALID_RELATIONS.put("ENT", "ENTED_PUR");
|
||||
VALID_RELATIONS.put("ENTED_PUR", "ENT");
|
||||
VALID_RELATIONS.put("PUR", "SALE");
|
||||
VALID_RELATIONS.put("SALE", "PUR");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -903,6 +918,58 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
return new PageResult<>(pageData, (long) allData.size());
|
||||
}
|
||||
|
||||
@Override
|
||||
@CompanyDataPermissionIgnore
|
||||
@DeptDataPermissionIgnore
|
||||
public PageResult<PurchaseOrderDO> pageOrderNoPermission(PurchaseOrderPageReqVO pageReqVO) {
|
||||
if (pageReqVO.getId() == null){
|
||||
throw exception(PURCHASE_ORDER_ID_IS_NULL);
|
||||
}
|
||||
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(pageReqVO.getId());
|
||||
ContractMainDO contractMainDO = contractMainMapper.selectOne(new LambdaQueryWrapper<ContractMainDO>()
|
||||
.eq(ContractMainDO::getId, purchaseOrderDO.getContractNumber()));
|
||||
ContractMainDO relatedContract = contractMainMapper.selectById(contractMainDO.getRelatedContractId());
|
||||
String splyBsnTp = VALID_RELATIONS.getOrDefault(purchaseOrderDO.getSplyBsnTp(), null); // 获取供应商业务类型
|
||||
if (splyBsnTp == null){
|
||||
throw exception(PURCHASE_ORDER_ID_IS_EMPTY);
|
||||
}
|
||||
pageReqVO.setContractNumber(relatedContract.getSystemContractNumber());
|
||||
pageReqVO.setSplyBsnTp(splyBsnTp);
|
||||
return purchaseOrderMapper.selectLinkPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@CompanyDataPermissionIgnore
|
||||
@DeptDataPermissionIgnore
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void boundOrder(BoundOrderReqVO reqVO) {
|
||||
log.info("开始执行绑定订单操作,请求参数:{}", reqVO);
|
||||
//查询当前订单是否已经绑定订单
|
||||
PurchaseOrderDO orderDO = purchaseOrderMapper.selectById(reqVO.getId());
|
||||
PurchaseOrderDO boundOrder = purchaseOrderMapper.selectById(reqVO.getBoundId());
|
||||
if (boundOrder == null|| orderDO==null){
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
//判断当前订单是否是来料加工销售订单(来料加工消费订单不允许绑定订单)
|
||||
if (OrderTypeEnum.ENTED_SALE.getCode().equals(orderDO.getSplyBsnTp())) {
|
||||
throw exception(PURCHASE_ORDER_NOT_ALLOW_BIND);
|
||||
}
|
||||
if (orderDO.getRelatedOrderId()!=null){
|
||||
//将已绑定的订单置空
|
||||
PurchaseOrderDO relatedOrder = purchaseOrderMapper.selectById(orderDO.getRelatedOrderId());
|
||||
relatedOrder.setRelatedOrderId(null);
|
||||
purchaseOrderMapper.updateById(relatedOrder);
|
||||
log.info("已绑定的订单已解绑,订单ID:{}", relatedOrder.getId());
|
||||
}
|
||||
orderDO.setRelatedOrderId(reqVO.getBoundId());
|
||||
purchaseOrderMapper.updateById(orderDO);
|
||||
log.info("订单ID:{} 已绑定订单ID:{}", reqVO.getId(), reqVO.getBoundId());
|
||||
//修改已绑定的的订单
|
||||
boundOrder.setRelatedOrderId(reqVO.getId());
|
||||
purchaseOrderMapper.updateById(boundOrder);
|
||||
log.info("绑定订单操作完成,订单ID:{}", reqVO.getId());
|
||||
}
|
||||
|
||||
|
||||
public WarehouseFactoryRespVO getBoundFactoryAndWarehouse(String factoryCode, String warehouseCode) {
|
||||
// 1. 查询主库信息,空值直接抛异常(精准异常信息)
|
||||
|
||||
Reference in New Issue
Block a user