1、修改bug

This commit is contained in:
潘荣晟
2025-10-27 11:27:59 +08:00
parent deb2cd12a8
commit 547453f350
26 changed files with 257 additions and 92 deletions

View File

@@ -76,4 +76,26 @@ public class ContractApiImpl implements ContractApi {
reqVO);
return success(true);
}
@Override
public CommonResult<List<PurchaseOrderWithDetailsDTO>> getOrderByOrderIds(List<Long> ids) {
if (ids==null||ids.isEmpty()){
throw new RuntimeException("订单id为空");
}
List<PurchaseOrderWithDetailsDTO> purchaseOrderWithDetailsDTOS = new ArrayList<>();
List<PurchaseOrderDetailsRespVO> purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByIds(ids);
purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> {
if (purchaseOrderWithDetailsVO!= null) {
PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO,
PurchaseOrderWithDetailsDTO.class);
if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) {
purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>());
} else {
purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class));
}
purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO);
}
});
return success(purchaseOrderWithDetailsDTOS);
}
}

View File

@@ -163,7 +163,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
//根据订单id修改订单状态
@PutMapping("/update-order-status")
@Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'采购订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改")
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req) {
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) {
purchaseOrderService.updateOrderStatusByIdOrOrderNo(req);
return success(true);
}

View File

@@ -0,0 +1,23 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - 订单状态 Request VO")
@Data
@ExcelIgnoreUnannotated
public class OrderStsReqVO {
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419")
private List<Long> ids;
@Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "订单状态不能为空")
private String sts;
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private List<String> orderNos;
}

View File

@@ -1,23 +0,0 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - 采购订单状态 Request VO")
@Data
@ExcelIgnoreUnannotated
public class PurchaseOrderStsReqVO {
@Schema(description = "采购订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419")
private List<Long> ids;
@Schema(description = "采购订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "采购订单状态不能为空")
private String sts;
@Schema(description = "采购订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private List<String> orderNos;
}

View File

@@ -56,7 +56,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@PutMapping("/update")
@Operation(summary = "更新采购订单")
@Operation(summary = "更新销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:update')")
public CommonResult<Boolean> updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) {
salesOrderService.updateSalesOrder(updateReqVO);
@@ -64,7 +64,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@DeleteMapping("/delete")
@Operation(summary = "删除采购订单")
@Operation(summary = "删除销售订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
public CommonResult<Boolean> deleteSalesOrder(@RequestParam("id") Long id) {
@@ -74,7 +74,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除采购订单")
@Operation(summary = "批量删除销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
public CommonResult<Boolean> deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) {
salesOrderService.deleteSalesOrderListByIds(req.getIds());
@@ -82,8 +82,8 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/get")
@Operation(summary = "获得采购订单")
@Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型采购或者是消费", required = true, example = "1024")
@Operation(summary = "获得销售订单")
@Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型销售或者是消费", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')")
public CommonResult<SalesOrderRespVO> getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) {
SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp);
@@ -96,7 +96,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/page")
@Operation(summary = "获得采购订单分页")
@Operation(summary = "获得销售订单分页")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')")
public CommonResult<PageResult<SalesOrderRespVO>> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) {
PageResult<SalesOrderDO> pageResult = salesOrderService.getSalesOrderPage(pageReqVO);
@@ -109,7 +109,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/export-excel")
@Operation(summary = "导出采购订单 Excel")
@Operation(summary = "导出销售订单 Excel")
@PreAuthorize("@ss.hasPermission('base:sales-order:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO,
@@ -117,7 +117,7 @@ public class SalesOrderController implements BusinessControllerMarker {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<SalesOrderDO> list = salesOrderService.getSalesOrderPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class,
ExcelUtils.write(response, "销售订单.xls", "数据", PurchaseOrderRespVO.class,
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
}
@@ -162,4 +162,11 @@ public class SalesOrderController implements BusinessControllerMarker {
return success(salesOrderService.getBindOrderByOrder(reqVO));
}
@PutMapping("/update-order-status")
@Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'销售订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改")
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) {
salesOrderService.updateOrderStatusByIdOrOrderNo(req);
return success(true);
}
}

View File

@@ -96,7 +96,7 @@ public interface PurchaseOrderService {
* @param reqVO 订单状态
*
*/
void updateOrderStatusByIdOrOrderNo(PurchaseOrderStsReqVO reqVO);
void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO);
/**
* 获取物料
*
@@ -124,4 +124,6 @@ public interface PurchaseOrderService {
* @return 结果
*/
Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO);
List<PurchaseOrderDetailsRespVO> getOrderByIds(List<Long> ids);
}

View File

@@ -425,7 +425,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
@Override
public void updateOrderStatusByIdOrOrderNo(PurchaseOrderStsReqVO reqVO) {
public void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO) {
// 校验存在
if (reqVO.getIds() != null) {
validatePurchaseOrderExists(reqVO.getIds());
@@ -494,6 +494,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
return systemRelativityMapper.insert(saveDO) > 0;
}
private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) {
//head
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());
@@ -607,16 +609,17 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
String contractNumber = purchaseOrderDO.getContractNumber();// 合同号
ContractRespVO contractRespVO = contractService.getBySystemContractNumber(contractNumber);
ContractRespVO upRelation = null;
if ("up".equals(reqVO.getOrderType())) {
log.info("获取上游订单");
//上游
upRelation = contractService.getUpRelation(Long.valueOf(contractNumber));
upRelation = contractService.getUpRelation(contractRespVO.getId());
} else {
//下游
log.info("获取下游订单");
upRelation = contractService.getDownRelation(Long.valueOf(contractNumber));
upRelation = contractService.getDownRelation(contractRespVO.getId());
}
List<DownOrUpOrderRespVO> orderList = new ArrayList<>();
if (upRelation != null) {
@@ -662,4 +665,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
return orderList;
}
@Override
public List<PurchaseOrderDetailsRespVO> getOrderByIds(List<Long> ids) {
List<PurchaseOrderWithDetailsVO> purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByIds(ids);
List<PurchaseOrderDetailsRespVO> purchaseOrderDetailsRespVOS = new ArrayList<>();
purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> {
PurchaseOrderDetailsRespVO purchaseOrderDetailsRespVO = BeanUtils.toBean(purchaseOrderWithDetailsVO.getPurchaseOrder(), PurchaseOrderDetailsRespVO.class);
purchaseOrderDetailsRespVO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDetailsRespVO.class));
purchaseOrderDetailsRespVOS.add(purchaseOrderDetailsRespVO);
});
return purchaseOrderDetailsRespVOS;
}
}

View File

@@ -114,4 +114,11 @@ public interface SalesOrderService {
*/
List<PurchaseOrderRespVO> getBindOrderByOrder(DownOrUpOrderReqVO reqVO);
/**
* 修改订单状态
*
* @param req 采购订单
*
*/
void updateOrderStatusByIdOrOrderNo(OrderStsReqVO req);
}

View File

@@ -5,19 +5,18 @@ import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
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.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
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.SystemRelativityMapper;
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
@@ -30,21 +29,17 @@ import com.zt.plat.module.erp.service.erp.ErpOrderService;
import com.zt.plat.module.system.api.sequence.SequenceApi;
import com.zt.plat.module.system.api.user.AdminUserApi;
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import java.util.ArrayList;
import java.util.List;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
@@ -387,16 +382,16 @@ public class SalesOrderServiceImpl implements SalesOrderService {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
String contractNumber = salesOrderDO.getContractNumber();// 合同号
ContractRespVO bySystemContractNumber = contractService.getBySystemContractNumber(contractNumber);
ContractRespVO upRelation = null;
if ("up".equals(reqVO.getOrderType())) {
log.info("获取上游订单");
//上游
upRelation = contractService.getUpRelation(Long.valueOf(contractNumber));
upRelation = contractService.getUpRelation(bySystemContractNumber.getId());
} else {
//下游
log.info("获取下游订单");
upRelation = contractService.getDownRelation(Long.valueOf(contractNumber));
upRelation = contractService.getDownRelation(bySystemContractNumber.getId());
}
List<DownOrUpOrderRespVO> orderList = new ArrayList<>();
if (upRelation != null) {
@@ -442,4 +437,27 @@ public class SalesOrderServiceImpl implements SalesOrderService {
}
return orderList;
}
@Override
public void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO) {
// 校验存在
if (reqVO.getIds() != null) {
validateSalesOrderExists(reqVO.getIds());
}
if (reqVO.getOrderNos() != null) {
validateSalesOrderNosExists(reqVO.getOrderNos());
}
OrderStatusEnum byCode = OrderStatusEnum.getByCode(reqVO.getSts());
if (byCode == null) {
throw exception(PURCHASE_ORDER_STATUS_ERROR);
}
salesOrderMapper.update(new LambdaUpdateWrapper<SalesOrderDO>().in(reqVO.getOrderNos() != null, SalesOrderDO::getSystemOrderNumber, reqVO.getOrderNos()).in(reqVO.getIds() != null, SalesOrderDO::getId, reqVO.getIds()).set(SalesOrderDO::getStatus, reqVO.getSts()));
}
private void validateSalesOrderNosExists(List<String> orderNos) {
List<SalesOrderDO> list = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrderDO>().in(SalesOrderDO::getSystemOrderNumber, orderNos));
if (CollUtil.isEmpty(list) || list.size() != orderNos.size()) {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
}
}