计划管理相关功能实现

This commit is contained in:
潘荣晟
2026-01-19 17:31:52 +08:00
parent bee606926a
commit 6602fcd6e3
36 changed files with 1559 additions and 7 deletions

View File

@@ -1,6 +1,8 @@
package com.zt.plat.module.contractorder.api;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
import com.zt.plat.module.contractorder.api.dto.order.OrderDTO;
import com.zt.plat.module.contractorder.api.dto.order.SalesOrdDtlDTO;
import com.zt.plat.module.contractorder.api.dto.order.UpdateOrderLstQtyDTO;
@@ -44,4 +46,8 @@ public interface OrderApi {
@GetMapping(PREFIX + "/get-salas-order-details-by-id")
@Operation(summary = "通过销售订单明细id获取销售订单详情", description = "通过销售订单明细id获取销售订单详情")
CommonResult<SalesOrdDtlDTO> getSalesOrderDetailsByOrderId(@RequestParam("id") Long id);
@PostMapping(PREFIX + "/query-order-plan-data")
@Operation(summary = "根据计划和订单的参数查询相关的订单", description = "根据计划和订单的参数查询相关的订单")
CommonResult<PageResult<OrderDTO>> queryOrderPlanData(@RequestBody @Valid OrderAndPlanDataReqDTO reqVO);
}

View File

@@ -0,0 +1,41 @@
package com.zt.plat.module.contractorder.api.dto.order;
import com.zt.plat.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
@Data
@Schema(description = "订单和计划数据请求DTO")
@Validated
public class OrderAndPlanDataReqDTO extends PageParam {
//合同编号
@Schema(description = "合同编号")
private String contractSystemNumber;
//纸质合同编号
@Schema(description = "纸质合同编号")
private String paperContractNumber;
//订单号
@Schema(description = "订单号")
private String orderNumber;
//订单分类
@Schema(description = "订单分类")
//@NotEmpty(message = "订单分类不能为空")
private String orderType;
//物料编码
@Schema(description = "物料编码")
private String materialNumber;
//物料名称
@Schema(description = "物料名称")
private String materialName;
//客商编码
@Schema(description = "客商编码")
private String customerNumber;
//客商名称
@Schema(description = "客商名称")
private String customerName;
//计划编号
@Schema(description = "计划编号")
@NotEmpty(message = "计划Id不能为空")
private String planId;
}

View File

@@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.api;
import cn.hutool.extra.spring.SpringUtil;
import com.zt.plat.framework.common.exception.ErrorCode;
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.module.contractorder.api.dto.order.*;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
@@ -183,6 +184,13 @@ public class OrderApiImpl implements OrderApi {
return success(BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class));
}
@Override
public CommonResult<PageResult<OrderDTO>> queryOrderPlanData(OrderAndPlanDataReqDTO reqVO) {
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.queryOrderAndPlanData(reqVO);
List<OrderDTO> bean = BeanUtils.toBean(pageResult.getList(), OrderDTO.class);
return success(new PageResult<>(bean, pageResult.getTotal()));
}
private List<SalesOrderDO> getOrderByIds(List<Long> ids) {
return SpringUtil.getBean(SalesOrderMapper.class).selectByIds(ids); // 采购订单与销售订单的
}

View File

@@ -6,6 +6,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderWithDetailsVO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
@@ -71,4 +72,6 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
List<PurchaseOrderWithDetailsVO> selectOrderByIds(@Param("ids") List<Long> id);
PurchaseOrderDO selectByOrderId(@Param("orderId") Long orderId);
List<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO);
}

View File

@@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.service.purchaseorder;
import java.util.*;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
@@ -145,4 +146,12 @@ public interface PurchaseOrderService {
* @return 订单详情
*/
List<PurchaseOrderDO> getOrdersByIds(List<String> ids);
/**
* 查询订单和计划数据
*
* @param reqDTO 查询条件
* @return 订单和计划数据
*/
PageResult<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO);
}

View File

@@ -13,6 +13,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
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.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
@@ -698,6 +699,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
return purchaseOrderMapper.selectByIds(ids);
}
@Override
@Transactional(rollbackFor=Exception.class)
public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
@@ -788,4 +791,24 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
int number = (int) (Math.random() * 900000 + 100000);
return String.valueOf(number);
}
@Override
public PageResult<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO) {
// 1. 查询所有符合条件的数据
List<PurchaseOrderDO> allData = purchaseOrderMapper.queryOrderAndPlanData(reqDTO);
// 2. 获取分页参数
Integer pageSize = reqDTO.getPageSize();
Integer pageNum = reqDTO.getPageNo();
// 3. 计算分页截取的起始/结束索引
int startIndex = (pageNum - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, allData.size());
// 4. 截取当前页数据(索引越界时返回空列表)
List<PurchaseOrderDO> pageData = startIndex >= allData.size()
? new ArrayList<>()
: allData.subList(startIndex, endIndex);
return new PageResult<>(pageData, (long) allData.size());
}
}