订单管理相关
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.zt.plat.module.contractorder.enums.salesorder;
|
||||
|
||||
import com.zt.plat.framework.common.exception.ErrorCode;
|
||||
|
||||
/**
|
||||
* contract-order 错误码枚举类
|
||||
*
|
||||
* contract-order 系统,使用 1-xxx-xxx-xxx 段
|
||||
*
|
||||
* @author ZT
|
||||
*/
|
||||
public interface ErrorCodeConstants {
|
||||
|
||||
// ========== 合同模块 1-027-000-000 ==========
|
||||
ErrorCode SALES_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_00_600, "消费订单不存在");
|
||||
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.controller.admin.purchaseorder;
|
||||
import com.zt.plat.module.contractorder.api.ContractApiImpl;
|
||||
import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO;
|
||||
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;
|
||||
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -19,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
||||
import jakarta.validation.constraints.*;
|
||||
import jakarta.validation.*;
|
||||
import jakarta.servlet.http.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -27,11 +29,13 @@ import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||
|
||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
@@ -75,7 +79,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除采购订单")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
|
||||
public CommonResult<Boolean> deletePurchaseOrderList(@RequestBody BatchDeleteReqVO req) {
|
||||
purchaseOrderService.deletePurchaseOrderListByIds(req.getIds());
|
||||
return success(true);
|
||||
@@ -83,12 +87,12 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得采购订单")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型采购或者是消费", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:query')")
|
||||
public CommonResult<PurchaseOrderRespVO> getPurchaseOrder(@RequestParam("id") Long id) {
|
||||
PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id);
|
||||
public CommonResult<PurchaseOrderRespVO> getPurchaseOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) {
|
||||
PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id, splyBsnTp);
|
||||
PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
if (purchaseOrderRespVO == null){
|
||||
if (purchaseOrderRespVO == null) {
|
||||
return success(null);
|
||||
}
|
||||
purchaseOrderService.setOrderDetails(purchaseOrderRespVO);
|
||||
@@ -100,7 +104,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:query')")
|
||||
public CommonResult<PageResult<PurchaseOrderRespVO>> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) {
|
||||
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO);
|
||||
PageResult<PurchaseOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class);
|
||||
PageResult<PurchaseOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class);
|
||||
purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO));
|
||||
return success(purchaseOrderRespVOPageResult);
|
||||
}
|
||||
@@ -110,12 +114,12 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportPurchaseOrderExcel(@Valid PurchaseOrderPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<PurchaseOrderDO> list = purchaseOrderService.getPurchaseOrderPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class,
|
||||
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
|
||||
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
|
||||
}
|
||||
|
||||
//提交订单审核
|
||||
@@ -131,7 +135,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@Operation(summary = "批量提交订单审核")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
|
||||
public CommonResult<Boolean> submitOrder(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List<String> ids) {
|
||||
System.out.println("ids:"+ids);
|
||||
System.out.println("ids:" + ids);
|
||||
ids.forEach(id -> purchaseOrderService.submitOrder(Long.valueOf(id)));
|
||||
return success(true);
|
||||
}
|
||||
@@ -141,25 +145,27 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@Operation(summary = "推送ERP订单", description = "061')")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
|
||||
public CommonResult<?> submitErp061(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List<Long> ids) {
|
||||
return success( purchaseOrderService.submitErp061(ids));
|
||||
return success(purchaseOrderService.submitErp061(ids));
|
||||
}
|
||||
|
||||
@PostMapping("/submit-erp062")
|
||||
@Operation(summary = "推送ERP订单", description = "062当每次调更新接口后都需要调此接口")
|
||||
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
|
||||
public CommonResult<?> submitErp062(@RequestParam @Validated @NotNull(message = "采购订单id不能为空") Long id) {
|
||||
return success( purchaseOrderService.submitErp062(id));
|
||||
return success(purchaseOrderService.submitErp062(id));
|
||||
}
|
||||
|
||||
//通过订单号查询订单信息
|
||||
@PostMapping("/get-order-by-order-no")
|
||||
@Operation(summary = "通过订单号查询订单信息", description = "通过订单号查询订单信息")
|
||||
public CommonResult<List<PurchaseOrderDetailsRespVO>> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List<String> orderNos){
|
||||
public CommonResult<List<PurchaseOrderDetailsRespVO>> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List<String> orderNos) {
|
||||
return success(purchaseOrderService.getOrderByOrderNo(orderNos));
|
||||
}
|
||||
|
||||
//根据订单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 PurchaseOrderStsReqVO req) {
|
||||
purchaseOrderService.updateOrderStatusByIdOrOrderNo(req);
|
||||
return success(true);
|
||||
}
|
||||
@@ -168,26 +174,34 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
||||
@GetMapping("/material")
|
||||
@Operation(summary = "查询物料接口")
|
||||
public CommonResult<MaterialRespVO> getMaterialList(@RequestParam
|
||||
@Schema(description = "采购订单号")
|
||||
@Validated
|
||||
@NotEmpty(message = "采购订单号不能为空")
|
||||
String orderNo){
|
||||
@Schema(description = "采购订单号")
|
||||
@Validated
|
||||
@NotEmpty(message = "采购订单号不能为空")
|
||||
String orderNo) {
|
||||
return purchaseOrderService.getMaterial(orderNo);
|
||||
}
|
||||
|
||||
//关联订单
|
||||
@PostMapping("/link-order")
|
||||
@Operation(summary = "关联订单")
|
||||
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req){
|
||||
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req) {
|
||||
return success(purchaseOrderService.linkOrder(req));
|
||||
}
|
||||
|
||||
@PostMapping("/order-pass-reject")
|
||||
@Operation(summary = "订单审核")
|
||||
public CommonResult<Boolean> orderPassReject(@RequestBody PurchaseorderReqVO reqVO){
|
||||
public CommonResult<Boolean> orderPassReject(@RequestBody PurchaseorderReqVO reqVO) {
|
||||
return success(purchaseOrderService.orderPassReject(reqVO));
|
||||
}
|
||||
|
||||
|
||||
//根据订单id和方式获取上或下游订单
|
||||
@PostMapping("/order-by-order-id-and-type")
|
||||
@Operation(summary = "根据订单id和方式获取上或下游订单")
|
||||
public CommonResult<Map<String, Object>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("unBindOrder", purchaseOrderService.getOrderByOrderIdAndType(reqVO));
|
||||
map.put("bindOrder", purchaseOrderService.getBindOrderByOrder(reqVO));
|
||||
return success(map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
|
||||
|
||||
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 = "上下级订单 请求 VO")
|
||||
@Validated
|
||||
public class DownOrUpOrderReqVO {
|
||||
@Schema(description = "订单id")
|
||||
private Long orderId;
|
||||
@Schema(description = "订单类型")
|
||||
@NotEmpty(message = "订单类型不能为空(上游 up ,下游 down)")
|
||||
private String orderType;
|
||||
@Schema(description = "订单号")
|
||||
private String orderNo;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "上下游订单 响应 VO")
|
||||
public class DownOrUpOrderRespVO {
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
@Schema(description = "订单编号")
|
||||
private String orderNo;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@Schema(description = "订单ID")
|
||||
private String orderId;
|
||||
/**
|
||||
* 订单类型
|
||||
*/
|
||||
@Schema(description = "订单类型")
|
||||
private String orderType;
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@Schema(description = "合同名称")
|
||||
private String contractName;
|
||||
/**
|
||||
* 合同id
|
||||
*/
|
||||
@Schema(description = "合同id")
|
||||
private String contractId;
|
||||
/**
|
||||
* 合同号
|
||||
*/
|
||||
@Schema(description = "合同号")
|
||||
private String contractNumber;
|
||||
|
||||
|
||||
}
|
||||
@@ -156,4 +156,6 @@ public class PrchOrdDtlPageReqVO extends PageParam {
|
||||
@Schema(description = "金属元素编码")
|
||||
private String elemCdg;
|
||||
|
||||
@Schema(description = "订单类型")
|
||||
private String splyBsnTp;
|
||||
}
|
||||
|
||||
@@ -163,5 +163,7 @@ public class PrchOrdDtlSaveReqVO {
|
||||
|
||||
@Schema(description = "金属元素编码")
|
||||
private String elemCdg;
|
||||
@Schema(description = "税点")
|
||||
private String taxRte;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder;
|
||||
|
||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
||||
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.pojo.vo.BatchDeleteReqVO;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
import com.zt.plat.module.contractorder.api.ContractApiImpl;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
|
||||
import com.zt.plat.module.contractorder.service.salesorder.SalesOrderService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
|
||||
|
||||
@Tag(name = "管理后台 - 销售订单")
|
||||
@RestController
|
||||
@RequestMapping("/base/sales-order")
|
||||
@Validated
|
||||
public class SalesOrderController implements BusinessControllerMarker {
|
||||
|
||||
|
||||
@Resource
|
||||
private SalesOrderService salesOrderService;
|
||||
@Resource
|
||||
private ContractApiImpl contractApi;
|
||||
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建采购订单")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:create')")
|
||||
public CommonResult<SalesOrderRespVO> createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) {
|
||||
return success(salesOrderService.createSalesOrder(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新采购订单")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:update')")
|
||||
public CommonResult<Boolean> updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) {
|
||||
salesOrderService.updateSalesOrder(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除采购订单")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
|
||||
public CommonResult<Boolean> deleteSalesOrder(@RequestParam("id") Long id) {
|
||||
salesOrderService.deleteSalesOrder(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除采购订单")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
|
||||
public CommonResult<Boolean> deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) {
|
||||
salesOrderService.deleteSalesOrderListByIds(req.getIds());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@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);
|
||||
SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class);
|
||||
if (salesOrderRespVO == null){
|
||||
return success(null);
|
||||
}
|
||||
//
|
||||
return success(salesOrderRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得采购订单分页")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:query')")
|
||||
public CommonResult<PageResult<SalesOrderRespVO>> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) {
|
||||
PageResult<SalesOrderDO> pageResult = salesOrderService.getSalesOrderPage(pageReqVO);
|
||||
PageResult<SalesOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class);
|
||||
// purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> salesOrderService.setOrderDetails(purchaseOrderRespVO));
|
||||
return success(purchaseOrderRespVOPageResult);
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出采购订单 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<SalesOrderDO> list = salesOrderService.getSalesOrderPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class,
|
||||
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder;
|
||||
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO;
|
||||
import com.zt.plat.module.contractorder.service.salesorder.SalesOrderDetailService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import jakarta.validation.constraints.*;
|
||||
import jakarta.validation.*;
|
||||
import jakarta.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
|
||||
@Tag(name = "管理后台 - 销售订单明细")
|
||||
@RestController
|
||||
@RequestMapping("/base/sales-order-detail")
|
||||
@Validated
|
||||
public class SalesOrderDetailController implements BusinessControllerMarker {
|
||||
|
||||
|
||||
@Resource
|
||||
private SalesOrderDetailService salesOrderDetailService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建销售订单明细")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')")
|
||||
public CommonResult<SalesOrderDetailRespVO> createSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO createReqVO) {
|
||||
return success(salesOrderDetailService.createSalesOrderDetail(createReqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/create-batch")
|
||||
@Operation(summary = "批量创建销售订单明细")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')")
|
||||
public CommonResult<List<SalesOrderDetailRespVO>> createSalesOrderDetail(@Valid @NotEmpty(message = "需要保存的数据为空") @RequestBody List<SalesOrderDetailSaveReqVO> createReqVOS) {
|
||||
return success(salesOrderDetailService.createSalesOrderDetail(createReqVOS));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新销售订单明细")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:update')")
|
||||
public CommonResult<Boolean> updateSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO updateReqVO) {
|
||||
salesOrderDetailService.updateSalesOrderDetail(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除销售订单明细")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')")
|
||||
public CommonResult<Boolean> deleteSalesOrderDetail(@RequestParam("id") Long id) {
|
||||
salesOrderDetailService.deleteSalesOrderDetail(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除销售订单明细")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')")
|
||||
public CommonResult<Boolean> deleteSalesOrderDetailList(@RequestBody BatchDeleteReqVO req) {
|
||||
salesOrderDetailService.deleteSalesOrderDetailListByIds(req.getIds());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得销售订单明细")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')")
|
||||
public CommonResult<SalesOrderDetailRespVO> getSalesOrderDetail(@RequestParam("id") Long id) {
|
||||
SalesOrderDetailDO salesOrderDetail = salesOrderDetailService.getSalesOrderDetail(id);
|
||||
return success(BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得销售订单明细分页")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')")
|
||||
public CommonResult<PageResult<SalesOrderDetailRespVO>> getSalesOrderDetailPage(@Valid SalesOrderDetailPageReqVO pageReqVO) {
|
||||
PageResult<SalesOrderDetailDO> pageResult = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, SalesOrderDetailRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出销售订单明细 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('base:sales-order-detail:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportSalesOrderDetailExcel(@Valid SalesOrderDetailPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<SalesOrderDetailDO> list = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "销售订单明细.xls", "数据", SalesOrderDetailRespVO.class,
|
||||
BeanUtils.toBean(list, SalesOrderDetailRespVO.class));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SaleOrderDetailsRespVO {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* ERP订单号
|
||||
*/
|
||||
private String orderSAPNumber;
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
private String systemOrderNumber;
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String cpName;
|
||||
/**
|
||||
* 公司编码;推送ERP(必须)
|
||||
*/
|
||||
private String companyNumber;
|
||||
/**
|
||||
* 客商编码;推送ERP(必须)
|
||||
*/
|
||||
private String supplierNumber;
|
||||
/**
|
||||
* 客商名称
|
||||
*/
|
||||
private String supplierName;
|
||||
/**
|
||||
* 订单类型(字典:PRCH_ORD_TP);推送ERP(必须)
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
* 凭证日期;推送ERP(必须)
|
||||
*/
|
||||
private LocalDateTime voucherDate;
|
||||
/**
|
||||
* 采购组织编码;推送ERP(必须)
|
||||
*/
|
||||
private String purchaseOrganizationCustomsDeclaration;
|
||||
/**
|
||||
* 收货工厂名称
|
||||
*/
|
||||
private String receiveFactoryName;
|
||||
/**
|
||||
* 收货工厂编码;推送ERP(必须)
|
||||
*/
|
||||
private String receiveFactoryNumber;
|
||||
/**
|
||||
* 收货库位名称
|
||||
*/
|
||||
private String receiveWarehouseName;
|
||||
/**
|
||||
* 收货库位编码;推送ERP
|
||||
*/
|
||||
private String receiveWarehouseNumber;
|
||||
/**
|
||||
* 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)
|
||||
*/
|
||||
private String purchaseGroup;
|
||||
/**
|
||||
* 货币码(字典:CUR);推送ERP(必须)
|
||||
*/
|
||||
private String currencyNumber;
|
||||
/**
|
||||
* 汇率;推送ERP
|
||||
*/
|
||||
private BigDecimal exchangeRate;
|
||||
/**
|
||||
* 合同纸质合同号;推送ERP(必须)
|
||||
*/
|
||||
private String paperContractNumber;
|
||||
/**
|
||||
* 小协议号;推送ERP
|
||||
*/
|
||||
private String agreementNumber;
|
||||
/**
|
||||
* 备注;推送ERP
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 代理方编码;推送ERP
|
||||
*/
|
||||
private String agentNumber;
|
||||
/**
|
||||
* 代理方名称
|
||||
*/
|
||||
private String agentName;
|
||||
/**
|
||||
* 订单编码
|
||||
*/
|
||||
private String orderNumber;
|
||||
/**
|
||||
* 系统合同编号
|
||||
*/
|
||||
private String contractNumber;
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
private String materialNumber;
|
||||
/**
|
||||
* 物料名称
|
||||
*/
|
||||
private String materialName;
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
/**
|
||||
* 小户头号
|
||||
*/
|
||||
private String tenantNumber;
|
||||
/**
|
||||
* ERP公司编号
|
||||
*/
|
||||
private String erpPurchaseCompanyNumber;
|
||||
/**
|
||||
* ERP公司名称
|
||||
*/
|
||||
private String erpPurchaseCompanyName;
|
||||
/**
|
||||
* ERP客商公司编码
|
||||
*/
|
||||
private String erpSalesCompanyNumber;
|
||||
/**
|
||||
* ERP客商公司名称
|
||||
*/
|
||||
private String erpSalesCompanyName;
|
||||
/**
|
||||
* 采购组织名称
|
||||
*/
|
||||
private String purchaseOrganizationName;
|
||||
/**
|
||||
* ERP状态(字典: ERP_REQ_STS)
|
||||
*/
|
||||
private String erpStatus;
|
||||
/**
|
||||
* 请求ERP失败原因
|
||||
*/
|
||||
private String cause;
|
||||
/**
|
||||
* 订单状态(字典:PRCH_ORD_STS)
|
||||
*/
|
||||
|
||||
private String status;
|
||||
/**
|
||||
* 采购组名称
|
||||
*/
|
||||
private String purchaseGroupName;
|
||||
|
||||
/**
|
||||
* 流程实例编号
|
||||
*/
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 流程当前任务节点id
|
||||
*/
|
||||
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 是否需要审批
|
||||
*/
|
||||
private int isPush;
|
||||
|
||||
/**
|
||||
* 物料类型
|
||||
*/
|
||||
private String mtrlTp;
|
||||
|
||||
/**
|
||||
* 消费订单行项目
|
||||
*/
|
||||
private List<SalesOrderDetailRespVO> orderDetails;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 销售订单明细分页 Request VO")
|
||||
@Data
|
||||
public class SalesOrderDetailPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "订单主键", example = "9072")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "行项目;推送ERP(必须)")
|
||||
private Long lineNumber;
|
||||
|
||||
@Schema(description = "物料名称", example = "芋艿")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "物料编码;推送ERP(必须)")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "工厂名称", example = "芋艿")
|
||||
private String factoryName;
|
||||
|
||||
@Schema(description = "工厂编码;推送ERP(必须)")
|
||||
private String factoryNumber;
|
||||
|
||||
@Schema(description = "库位名称", example = "赵六")
|
||||
private String warehouseName;
|
||||
|
||||
@Schema(description = "库位编码;推送ERP(必须)")
|
||||
private String warehouseNumber;
|
||||
|
||||
@Schema(description = "计量单位;推送ERP(必须)")
|
||||
private String unit;
|
||||
|
||||
@Schema(description = "开票类型;推送ERP(必须)", example = "2")
|
||||
private String invoiceType;
|
||||
|
||||
@Schema(description = "暂估数量;推送ERP(必须)")
|
||||
private BigDecimal quantity;
|
||||
|
||||
@Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)")
|
||||
private String taxAcctasscat;
|
||||
|
||||
@Schema(description = "项目类别;推送ERP")
|
||||
private String projectCategory;
|
||||
|
||||
@Schema(description = "装运地点;推送ERP")
|
||||
private String shippingPlace;
|
||||
|
||||
@Schema(description = "物料科目分配组;推送ERP(必须)")
|
||||
private String metalAcctasscatGroup;
|
||||
|
||||
@Schema(description = "小协议号")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "总价")
|
||||
private BigDecimal gross;
|
||||
|
||||
@Schema(description = "金属元素缩写")
|
||||
private String elementAbbreviation;
|
||||
|
||||
@Schema(description = "金属元素名称", example = "张三")
|
||||
private String elementName;
|
||||
|
||||
@Schema(description = "金属元素编码")
|
||||
private String elementNumber;
|
||||
|
||||
@Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用")
|
||||
private String isEnable;
|
||||
|
||||
@Schema(description = "价格条件详情;推送ERP(必须):JSON")
|
||||
private String priceConditionDetail;
|
||||
|
||||
@Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)")
|
||||
private String originDetail;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 销售订单明细 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SalesOrderDetailRespVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517")
|
||||
@ExcelProperty("主键")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072")
|
||||
@ExcelProperty("订单主键")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("行项目;推送ERP(必须)")
|
||||
private Long lineNumber;
|
||||
|
||||
@Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("物料名称")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("物料编码;推送ERP(必须)")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("工厂名称")
|
||||
private String factoryName;
|
||||
|
||||
@Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("工厂编码;推送ERP(必须)")
|
||||
private String factoryNumber;
|
||||
|
||||
@Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||
@ExcelProperty("库位名称")
|
||||
private String warehouseName;
|
||||
|
||||
@Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("库位编码;推送ERP(必须)")
|
||||
private String warehouseNumber;
|
||||
|
||||
@Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("计量单位;推送ERP(必须)")
|
||||
private String unit;
|
||||
|
||||
@Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("开票类型;推送ERP(必须)")
|
||||
private String invoiceType;
|
||||
|
||||
@Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("暂估数量;推送ERP(必须)")
|
||||
private BigDecimal quantity;
|
||||
|
||||
@Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("稅分类(字典:SALE_TAX);推送ERP(必须)")
|
||||
private String taxAcctasscat;
|
||||
|
||||
@Schema(description = "项目类别;推送ERP")
|
||||
@ExcelProperty("项目类别;推送ERP")
|
||||
private String projectCategory;
|
||||
|
||||
@Schema(description = "装运地点;推送ERP")
|
||||
@ExcelProperty("装运地点;推送ERP")
|
||||
private String shippingPlace;
|
||||
|
||||
@Schema(description = "物料科目分配组;推送ERP(必须)")
|
||||
@ExcelProperty("物料科目分配组;推送ERP(必须)")
|
||||
private String metalAcctasscatGroup;
|
||||
|
||||
@Schema(description = "小协议号")
|
||||
@ExcelProperty("小协议号")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "总价")
|
||||
@ExcelProperty("总价")
|
||||
private BigDecimal gross;
|
||||
|
||||
@Schema(description = "金属元素缩写")
|
||||
@ExcelProperty("金属元素缩写")
|
||||
private String elementAbbreviation;
|
||||
|
||||
@Schema(description = "金属元素名称", example = "张三")
|
||||
@ExcelProperty("金属元素名称")
|
||||
private String elementName;
|
||||
|
||||
@Schema(description = "金属元素编码")
|
||||
@ExcelProperty("金属元素编码")
|
||||
private String elementNumber;
|
||||
|
||||
@Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否启用;处理明细中多个相同物料,只能允许一种物料启用")
|
||||
private String isEnable;
|
||||
|
||||
@Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("价格条件详情;推送ERP(必须):JSON")
|
||||
private String priceConditionDetail;
|
||||
|
||||
@Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)")
|
||||
@ExcelProperty("来料加工原料详情;推送ERP:订单类型(JSON)")
|
||||
private String originDetail;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String taxRte;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Schema(description = "管理后台 - 销售订单明细新增/修改 Request VO")
|
||||
@Data
|
||||
public class SalesOrderDetailSaveReqVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072")
|
||||
@NotNull(message = "订单主键不能为空")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "行项目;推送ERP(必须)不能为空")
|
||||
private Long lineNumber;
|
||||
|
||||
@Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "物料名称不能为空")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "物料编码;推送ERP(必须)不能为空")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "工厂名称不能为空")
|
||||
private String factoryName;
|
||||
|
||||
@Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "工厂编码;推送ERP(必须)不能为空")
|
||||
private String factoryNumber;
|
||||
|
||||
@Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||
@NotEmpty(message = "库位名称不能为空")
|
||||
private String warehouseName;
|
||||
|
||||
@Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "库位编码;推送ERP(必须)不能为空")
|
||||
private String warehouseNumber;
|
||||
|
||||
@Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "计量单位;推送ERP(必须)不能为空")
|
||||
private String unit;
|
||||
|
||||
@Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotEmpty(message = "开票类型;推送ERP(必须)不能为空")
|
||||
private String invoiceType;
|
||||
|
||||
@Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "暂估数量;推送ERP(必须)不能为空")
|
||||
private BigDecimal quantity;
|
||||
|
||||
@Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "稅分类(字典:SALE_TAX);推送ERP(必须)不能为空")
|
||||
private String taxAcctasscat;
|
||||
|
||||
@Schema(description = "项目类别;推送ERP")
|
||||
private String projectCategory;
|
||||
|
||||
@Schema(description = "装运地点;推送ERP")
|
||||
private String shippingPlace;
|
||||
|
||||
@Schema(description = "物料科目分配组;推送ERP(必须)")
|
||||
private String metalAcctasscatGroup;
|
||||
|
||||
@Schema(description = "小协议号")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "总价")
|
||||
private BigDecimal gross;
|
||||
|
||||
@Schema(description = "金属元素缩写")
|
||||
private String elementAbbreviation;
|
||||
|
||||
@Schema(description = "金属元素名称", example = "张三")
|
||||
private String elementName;
|
||||
|
||||
@Schema(description = "金属元素编码")
|
||||
private String elementNumber;
|
||||
|
||||
@Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "是否启用;处理明细中多个相同物料,只能允许一种物料启用不能为空")
|
||||
private String isEnable;
|
||||
|
||||
@Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "价格条件详情;推送ERP(必须):JSON不能为空")
|
||||
private String priceConditionDetail;
|
||||
|
||||
@Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)")
|
||||
private String originDetail;
|
||||
|
||||
@Schema(description = "税率")
|
||||
private String taxRte;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 采购订单分页 Request VO")
|
||||
@Data
|
||||
public class SalesOrderPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "ERP订单号")
|
||||
private String orderSAPNumber;
|
||||
|
||||
@Schema(description = "订单号")
|
||||
private String systemOrderNumber;
|
||||
|
||||
@Schema(description = "公司编码;推送ERP(必须)")
|
||||
private String companyNumber;
|
||||
|
||||
@Schema(description = "客商编码;推送ERP(必须)")
|
||||
private String supplierNumber;
|
||||
|
||||
@Schema(description = "客商名称", example = "芋艿")
|
||||
private String supplierName;
|
||||
|
||||
@Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", example = "2")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "凭证日期;推送ERP(必须)")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] voucherDate;
|
||||
|
||||
@Schema(description = "采购组织编码;推送ERP(必须)")
|
||||
private String purchaseOrganizationCustomsDeclaration;
|
||||
|
||||
@Schema(description = "收货工厂名称", example = "芋艿")
|
||||
private String receiveFactoryName;
|
||||
|
||||
@Schema(description = "收货工厂编码;推送ERP(必须)")
|
||||
private String receiveFactoryNumber;
|
||||
|
||||
@Schema(description = "收货库位名称", example = "王五")
|
||||
private String receiveWarehouseName;
|
||||
|
||||
@Schema(description = "收货库位编码;推送ERP")
|
||||
private String receiveWarehouseNumber;
|
||||
|
||||
@Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)")
|
||||
private String purchaseGroup;
|
||||
|
||||
@Schema(description = "计量单位")
|
||||
private String unt;
|
||||
|
||||
@Schema(description = "货币码(字典:CUR);推送ERP(必须)")
|
||||
private String currencyNumber;
|
||||
|
||||
@Schema(description = "汇率;推送ERP")
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
@Schema(description = "合同纸质合同号;推送ERP(必须)")
|
||||
private String paperContractNumber;
|
||||
|
||||
@Schema(description = "小协议号;推送ERP")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "备注;推送ERP")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "代理方编码;推送ERP")
|
||||
private String agentNumber;
|
||||
|
||||
@Schema(description = "代理方名称", example = "张三")
|
||||
private String agentName;
|
||||
|
||||
@Schema(description = "订单编码")
|
||||
private String orderNumber;
|
||||
|
||||
@Schema(description = "系统合同编号")
|
||||
private String contractNumber;
|
||||
|
||||
@Schema(description = "物料编码")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "物料名称", example = "王五")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "合同名称", example = "赵六")
|
||||
private String contractName;
|
||||
|
||||
@Schema(description = "小户头号")
|
||||
private String tenantNumber;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "ERP公司编号")
|
||||
private String erpPurchaseCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP公司名称", example = "王五")
|
||||
private String erpPurchaseCompanyName;
|
||||
|
||||
@Schema(description = "ERP客商公司编码")
|
||||
private String erpSalesCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP客商公司名称", example = "芋艿")
|
||||
private String erpSalesCompanyName;
|
||||
|
||||
@Schema(description = "采购组织名称", example = "赵六")
|
||||
private String purchaseOrganizationName;
|
||||
|
||||
@Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2")
|
||||
private String erpStatus;
|
||||
|
||||
@Schema(description = "请求ERP失败原因")
|
||||
private String cause;
|
||||
|
||||
@Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "采购组名称", example = "张三")
|
||||
private String purchaseGroupName;
|
||||
|
||||
@Schema(description = "物料类型(字典:MTRL_TP)", example = "2")
|
||||
private String mtrlTp;
|
||||
|
||||
@Schema(description = "订单分类")
|
||||
private String splyBsnTp;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "管理后台 - 订单审核请求对象 Request VO")
|
||||
@Data
|
||||
public class SalesOrderReqVO {
|
||||
|
||||
@Schema(description = "合同主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "合同主键ID不能为空")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotBlank(message = "审核意见不能为空")
|
||||
private String reviewOpinion;
|
||||
|
||||
@Schema(description = "状态:待推送 WAIT_PUSH,已驳回 REJECTED", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotBlank(message = "审核状态不能为空")
|
||||
private String status;
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 采购订单 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SalesOrderRespVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074")
|
||||
@ExcelProperty("主键")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "ERP订单号")
|
||||
@ExcelProperty("ERP订单号")
|
||||
private String orderSAPNumber;
|
||||
|
||||
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("订单号")
|
||||
private String systemOrderNumber;
|
||||
|
||||
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("公司编码;推送ERP(必须)")
|
||||
private String companyNumber;
|
||||
|
||||
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("客商编码;推送ERP(必须)")
|
||||
private String supplierNumber;
|
||||
|
||||
@Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("客商名称")
|
||||
private String supplierName;
|
||||
|
||||
@Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("订单类型(字典:PRCH_ORD_TP);推送ERP(必须)")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("凭证日期;推送ERP(必须)")
|
||||
private LocalDateTime voucherDate;
|
||||
|
||||
@Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("采购组织编码;推送ERP(必须)")
|
||||
private String purchaseOrganizationCustomsDeclaration;
|
||||
|
||||
@Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("收货工厂名称")
|
||||
private String receiveFactoryName;
|
||||
|
||||
@Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("收货工厂编码;推送ERP(必须)")
|
||||
private String receiveFactoryNumber;
|
||||
|
||||
@Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("收货库位名称")
|
||||
private String receiveWarehouseName;
|
||||
|
||||
@Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("收货库位编码;推送ERP")
|
||||
private String receiveWarehouseNumber;
|
||||
|
||||
@Schema(description = "计量单位")
|
||||
private String unt;
|
||||
|
||||
@Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)")
|
||||
private String purchaseGroup;
|
||||
|
||||
@Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("货币码(字典:CUR);推送ERP(必须)")
|
||||
private String currencyNumber;
|
||||
|
||||
@Schema(description = "汇率;推送ERP")
|
||||
@ExcelProperty("汇率;推送ERP")
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
@Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("合同纸质合同号;推送ERP(必须)")
|
||||
private String paperContractNumber;
|
||||
|
||||
@Schema(description = "小协议号;推送ERP")
|
||||
@ExcelProperty("小协议号;推送ERP")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "备注;推送ERP")
|
||||
@ExcelProperty("备注;推送ERP")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "代理方编码;推送ERP")
|
||||
@ExcelProperty("代理方编码;推送ERP")
|
||||
private String agentNumber;
|
||||
|
||||
@Schema(description = "代理方名称", example = "张三")
|
||||
@ExcelProperty("代理方名称")
|
||||
private String agentName;
|
||||
|
||||
@Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("订单编码")
|
||||
private String orderNumber;
|
||||
|
||||
@Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("系统合同编号")
|
||||
private String contractNumber;
|
||||
|
||||
@Schema(description = "物料编码")
|
||||
@ExcelProperty("物料编码")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "物料名称", example = "王五")
|
||||
@ExcelProperty("物料名称")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "合同名称", example = "赵六")
|
||||
@ExcelProperty("合同名称")
|
||||
private String contractName;
|
||||
|
||||
@Schema(description = "小户头号")
|
||||
@ExcelProperty("小户头号")
|
||||
private String tenantNumber;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("ERP公司编号")
|
||||
private String erpPurchaseCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("ERP公司名称")
|
||||
private String erpPurchaseCompanyName;
|
||||
|
||||
@Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("ERP客商公司编码")
|
||||
private String erpSalesCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("ERP客商公司名称")
|
||||
private String erpSalesCompanyName;
|
||||
|
||||
@Schema(description = "采购组织名称", example = "赵六")
|
||||
@ExcelProperty("采购组织名称")
|
||||
private String purchaseOrganizationName;
|
||||
|
||||
@Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2")
|
||||
@ExcelProperty("ERP状态(字典: ERP_REQ_STS)")
|
||||
private String erpStatus;
|
||||
|
||||
@Schema(description = "请求ERP失败原因")
|
||||
@ExcelProperty("请求ERP失败原因")
|
||||
private String cause;
|
||||
|
||||
@Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2")
|
||||
@ExcelProperty("订单状态(字典:PRCH_ORD_STS)")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "采购组名称", example = "张三")
|
||||
@ExcelProperty("采购组名称")
|
||||
private String purchaseGroupName;
|
||||
|
||||
@Schema(description = "订单明细")
|
||||
@ExcelProperty("订单明细")
|
||||
private List<PrchOrdDtlRespVO> prchOrdDtlRespVOS;
|
||||
|
||||
@Schema(description = "物料类型(字典:MTRL_TP)", example = "2")
|
||||
@ExcelProperty("物料类型(字典:MTRL_TP)")
|
||||
private String mtrlTp;
|
||||
|
||||
@Schema(description = "订单分类", example = "2")
|
||||
@ExcelProperty("订单分类")
|
||||
private String splyBsnTp;
|
||||
|
||||
@Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("公司名称")
|
||||
private String cpName;
|
||||
|
||||
@Schema(description = "是否提交审核,value为0或1")
|
||||
@ExcelProperty("是否提交审核")
|
||||
private int isPush;
|
||||
|
||||
@Schema(description = "流程实例编号")
|
||||
@ExcelProperty("流程实例编号")
|
||||
private String processInstanceId;
|
||||
|
||||
@Schema(description = "流程当前任务节点id")
|
||||
@ExcelProperty("流程当前任务节点id")
|
||||
private String taskId;
|
||||
|
||||
@Schema(description = " 审批意见")
|
||||
@ExcelProperty(" 审批意见")
|
||||
private String reviewOpinion;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 采购订单新增/修改 Request VO")
|
||||
@Data
|
||||
public class SalesOrderSaveReqVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "公司名称不能为空")
|
||||
private String cpName;
|
||||
|
||||
@Schema(description = "ERP订单号")
|
||||
private String orderSAPNumber;
|
||||
|
||||
// @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @NotEmpty(message = "订单号不能为空")
|
||||
// private String systemOrderNumber;
|
||||
|
||||
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "公司编码;推送ERP(必须)不能为空")
|
||||
private String companyNumber;
|
||||
|
||||
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "客商编码;推送ERP(必须)不能为空")
|
||||
private String supplierNumber;
|
||||
|
||||
@Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "客商名称不能为空")
|
||||
private String supplierName;
|
||||
|
||||
@Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotEmpty(message = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)不能为空")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "凭证日期;推送ERP(必须)不能为空")
|
||||
private LocalDateTime voucherDate;
|
||||
|
||||
@Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "采购组织编码;推送ERP(必须)不能为空")
|
||||
private String purchaseOrganizationCustomsDeclaration;
|
||||
|
||||
@Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "收货工厂名称不能为空")
|
||||
private String receiveFactoryName;
|
||||
|
||||
@Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "收货工厂编码;推送ERP(必须)不能为空")
|
||||
private String receiveFactoryNumber;
|
||||
|
||||
@Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@NotEmpty(message = "收货库位名称不能为空")
|
||||
private String receiveWarehouseName;
|
||||
|
||||
@Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "收货库位编码;推送ERP不能为空")
|
||||
private String receiveWarehouseNumber;
|
||||
|
||||
@Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)不能为空")
|
||||
private String purchaseGroup;
|
||||
|
||||
@Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "货币码(字典:CUR);推送ERP(必须)不能为空")
|
||||
private String currencyNumber;
|
||||
|
||||
@Schema(description = "汇率;推送ERP")
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
@Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "合同纸质合同号;推送ERP(必须)不能为空")
|
||||
private String paperContractNumber;
|
||||
|
||||
@Schema(description = "小协议号;推送ERP")
|
||||
private String agreementNumber;
|
||||
|
||||
@Schema(description = "备注;推送ERP")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "代理方编码;推送ERP")
|
||||
private String agentNumber;
|
||||
|
||||
@Schema(description = "代理方名称", example = "张三")
|
||||
private String agentName;
|
||||
//
|
||||
// @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @NotEmpty(message = "订单编码不能为空")
|
||||
// private String orderNumber;
|
||||
|
||||
|
||||
@Schema(description = "计量单位")
|
||||
@NotEmpty(message = "计量单位(unt)不能为空")
|
||||
private String unt;
|
||||
|
||||
@Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "系统合同编号不能为空")
|
||||
private String contractNumber;
|
||||
|
||||
@Schema(description = "物料编码")
|
||||
private String materialNumber;
|
||||
|
||||
@Schema(description = "物料名称", example = "王五")
|
||||
private String materialName;
|
||||
|
||||
@Schema(description = "合同名称", example = "赵六")
|
||||
private String contractName;
|
||||
|
||||
@Schema(description = "小户头号")
|
||||
private String tenantNumber;
|
||||
|
||||
@Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "ERP公司编号不能为空")
|
||||
private String erpPurchaseCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@NotEmpty(message = "ERP公司名称不能为空")
|
||||
private String erpPurchaseCompanyName;
|
||||
|
||||
@Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "ERP客商公司编码不能为空")
|
||||
private String erpSalesCompanyNumber;
|
||||
|
||||
@Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "ERP客商公司名称不能为空")
|
||||
private String erpSalesCompanyName;
|
||||
|
||||
@Schema(description = "采购组织名称", example = "赵六")
|
||||
private String purchaseOrganizationName;
|
||||
|
||||
@Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2")
|
||||
private String erpStatus;
|
||||
|
||||
@Schema(description = "请求ERP失败原因")
|
||||
private String cause;
|
||||
|
||||
@Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "采购组名称", example = "张三")
|
||||
private String purchaseGroupName;
|
||||
|
||||
@Schema(description = "订单明细")
|
||||
@ExcelProperty("订单明细")
|
||||
private List<SalesOrderDetailSaveReqVO> salesOrderDetailSaveReqVOS;
|
||||
|
||||
|
||||
@Schema(description = "流程实例编号")
|
||||
@ExcelProperty("流程实例编号")
|
||||
private String processInstanceId;
|
||||
|
||||
@Schema(description = "流程当前任务节点id")
|
||||
@ExcelProperty("流程当前任务节点id")
|
||||
private String taskId;
|
||||
|
||||
@Schema(description = " 审批意见")
|
||||
@ExcelProperty(" 审批意见")
|
||||
private String reviewOpinion;
|
||||
|
||||
@Schema(description = "是否提交审核,value为0或1")
|
||||
@ExcelProperty("是否提交审核")
|
||||
private int isPush;
|
||||
@Schema(description = "物料类别(字典:MTRL_TP)", example = "1")
|
||||
@ExcelProperty("物料类别")
|
||||
private String mtrlTp;
|
||||
|
||||
@Schema(description = "订单分类", example = "2")
|
||||
@ExcelProperty("订单分类")
|
||||
private String splyBsnTp;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.salesorder.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 SalesOrderStsReqVO {
|
||||
@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;
|
||||
}
|
||||
@@ -270,5 +270,10 @@ public class PrchOrdDtlDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableField("ELEM_CDG")
|
||||
private String elemCdg;
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
@TableField("TAX_RTE")
|
||||
private String taxRte;
|
||||
|
||||
}
|
||||
|
||||
@@ -257,4 +257,25 @@ public class PurchaseOrderDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableField("SPLY_BSN_TP")
|
||||
private String splyBsnTp;
|
||||
/**
|
||||
* 产品组编码
|
||||
*/
|
||||
@TableField("PDT_GRP_CDG")
|
||||
private String pdtGrpCdg;
|
||||
/**
|
||||
* 产品组名称
|
||||
*/
|
||||
@TableField("PDT_GRP_NAME")
|
||||
private String pdtGrpName;
|
||||
/**
|
||||
* 分销聚道编码
|
||||
*/
|
||||
@TableField("SALE_ACS_CDG")
|
||||
private String saleAcsCdg;
|
||||
/**
|
||||
* 分销聚道名称
|
||||
*/
|
||||
@TableField("SALE_ACS_NAME")
|
||||
private String saleAcsName;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,268 @@
|
||||
package com.zt.plat.module.contractorder.dal.dataobject.salesorder;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 采购订单 DO
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@TableName("bse_prch_ord")
|
||||
@KeySequence("bse_prch_ord_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
/**
|
||||
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
||||
*/
|
||||
public class SalesOrderDO extends BusinessBaseDO {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
/**
|
||||
* ERP订单号
|
||||
*/
|
||||
@TableField("ORD_SAP_NUM")
|
||||
private String orderSAPNumber;
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
@TableField("SYS_ORD_NUM")
|
||||
private String systemOrderNumber;
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
@TableField("CPN_NAME")
|
||||
private String cpName;
|
||||
/**
|
||||
* 公司编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("CPN_NUM")
|
||||
private String companyNumber;
|
||||
/**
|
||||
* 客商编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("SPLR_NUM")
|
||||
private String supplierNumber;
|
||||
/**
|
||||
* 客商名称
|
||||
*/
|
||||
@TableField("SPLR_NAME")
|
||||
private String supplierName;
|
||||
/**
|
||||
* 订单类型(字典:PRCH_ORD_TP);推送ERP(必须)
|
||||
*/
|
||||
@TableField("TP")
|
||||
private String type;
|
||||
/**
|
||||
* 凭证日期;推送ERP(必须)
|
||||
*/
|
||||
@TableField("VCHR_DT")
|
||||
private LocalDateTime voucherDate;
|
||||
/**
|
||||
* 采购组织编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("PRCH_ORGZ_CD")
|
||||
private String purchaseOrganizationCustomsDeclaration;
|
||||
/**
|
||||
* 收货工厂名称
|
||||
*/
|
||||
@TableField("RCV_FACT_NAME")
|
||||
private String receiveFactoryName;
|
||||
/**
|
||||
* 收货工厂编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("RCV_FACT_NUM")
|
||||
private String receiveFactoryNumber;
|
||||
/**
|
||||
* 收货库位名称
|
||||
*/
|
||||
@TableField("RCV_WRH_NAME")
|
||||
private String receiveWarehouseName;
|
||||
/**
|
||||
* 收货库位编码;推送ERP
|
||||
*/
|
||||
@TableField("RCV_WRH_NUM")
|
||||
private String receiveWarehouseNumber;
|
||||
/**
|
||||
* 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)
|
||||
*/
|
||||
@TableField("PRCH_GRP")
|
||||
private String purchaseGroup;
|
||||
/**
|
||||
* 货币码(字典:CUR);推送ERP(必须)
|
||||
*/
|
||||
@TableField("CUR_NUM")
|
||||
private String currencyNumber;
|
||||
/**
|
||||
* 汇率;推送ERP
|
||||
*/
|
||||
@TableField("EXCH_RTE")
|
||||
private BigDecimal exchangeRate;
|
||||
/**
|
||||
* 合同纸质合同号;推送ERP(必须)
|
||||
*/
|
||||
@TableField("PPR_CTRT_NUM")
|
||||
private String paperContractNumber;
|
||||
/**
|
||||
* 小协议号;推送ERP
|
||||
*/
|
||||
@TableField("AGR_NUM")
|
||||
private String agreementNumber;
|
||||
/**
|
||||
* 备注;推送ERP
|
||||
*/
|
||||
@TableField("RMK")
|
||||
private String remark;
|
||||
/**
|
||||
* 代理方编码;推送ERP
|
||||
*/
|
||||
@TableField("AGT_NUM")
|
||||
private String agentNumber;
|
||||
/**
|
||||
* 代理方名称
|
||||
*/
|
||||
@TableField("AGT_NAME")
|
||||
private String agentName;
|
||||
/**
|
||||
* 订单编码
|
||||
*/
|
||||
// @TableField("ORD_NUM")
|
||||
// private String orderNumber;
|
||||
/**
|
||||
* 系统合同编号
|
||||
*/
|
||||
@TableField("CTRT_NUM")
|
||||
private String contractNumber;
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
@TableField("MTRL_NUM")
|
||||
private String materialNumber;
|
||||
/**
|
||||
* 物料名称
|
||||
*/
|
||||
@TableField("MTRL_NAME")
|
||||
private String materialName;
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@TableField("CTRT_NAME")
|
||||
private String contractName;
|
||||
/**
|
||||
* 小户头号
|
||||
*/
|
||||
@TableField("TNT_NUM")
|
||||
private String tenantNumber;
|
||||
/**
|
||||
* ERP公司编号
|
||||
*/
|
||||
@TableField("ERP_PRCH_CPN_NUM")
|
||||
private String erpPurchaseCompanyNumber;
|
||||
/**
|
||||
* ERP公司名称
|
||||
*/
|
||||
@TableField("ERP_PRCH_CPN_NAME")
|
||||
private String erpPurchaseCompanyName;
|
||||
/**
|
||||
* ERP客商公司编码
|
||||
*/
|
||||
@TableField("ERP_SALE_CPN_NUM")
|
||||
private String erpSalesCompanyNumber;
|
||||
/**
|
||||
* ERP客商公司名称
|
||||
*/
|
||||
@TableField("ERP_SALE_CPN_NAME")
|
||||
private String erpSalesCompanyName;
|
||||
/**
|
||||
* 采购组织名称
|
||||
*/
|
||||
@TableField("PRCH_ORGZ_NAME")
|
||||
private String purchaseOrganizationName;
|
||||
/**
|
||||
* ERP状态(字典: ERP_REQ_STS)
|
||||
*/
|
||||
@TableField("ERP_STS")
|
||||
private String erpStatus;
|
||||
/**
|
||||
* 请求ERP失败原因
|
||||
*/
|
||||
@TableField("CAUS")
|
||||
private String cause;
|
||||
/**
|
||||
* 订单状态(字典:PRCH_ORD_STS)
|
||||
*/
|
||||
@TableField("STS")
|
||||
private String status;
|
||||
/**
|
||||
* 采购组名称
|
||||
*/
|
||||
@TableField("PRCH_GRP_NAME")
|
||||
private String purchaseGroupName;
|
||||
|
||||
/**
|
||||
* 流程实例编号
|
||||
*/
|
||||
@TableField("PRCS_INSC_ID")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 流程当前任务节点id
|
||||
*/
|
||||
@TableField("TSK_NDE_ID")
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
@TableField("RVW_ONN")
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 是否需要审批
|
||||
*/
|
||||
@TableField("IS_PUSH")
|
||||
private int isPush;
|
||||
|
||||
/**
|
||||
* 计量单位
|
||||
*/
|
||||
@TableField("UNT")
|
||||
private String unt;
|
||||
|
||||
/**
|
||||
* 物料字典
|
||||
*
|
||||
*/
|
||||
@TableField("MTRL_TP")
|
||||
private String mtrlTp;
|
||||
|
||||
/**
|
||||
* 订单分类
|
||||
*
|
||||
*/
|
||||
@TableField("SPLY_BSN_TP")
|
||||
private String splyBsnTp;
|
||||
|
||||
@TableField("PDT_GRP_CDG")
|
||||
private String pdtGrpCdg;
|
||||
@TableField("PDT_GRP_NAME")
|
||||
private String pdtGrpName;
|
||||
@TableField("SALE_ACS_CDG")
|
||||
private String saleAcsCdg;
|
||||
@TableField("SALE_ACS_NAME")
|
||||
private String saleAcsName;
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.zt.plat.module.contractorder.dal.dataobject.salesorder;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||
/**
|
||||
* 销售订单明细 DO
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@TableName("bse_sale_ord_dtl")
|
||||
@KeySequence("bse_sale_ord_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
/**
|
||||
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
||||
*/
|
||||
public class SalesOrderDetailDO extends BusinessBaseDO {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
/**
|
||||
* 订单主键
|
||||
*/
|
||||
@TableField("ORD_ID")
|
||||
private Long orderId;
|
||||
/**
|
||||
* 行项目;推送ERP(必须)
|
||||
*/
|
||||
@TableField("LINE_NUM")
|
||||
private Long lineNumber;
|
||||
/**
|
||||
* 物料名称
|
||||
*/
|
||||
@TableField("MTRL_NAME")
|
||||
private String materialName;
|
||||
/**
|
||||
* 物料编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("MTRL_NUM")
|
||||
private String materialNumber;
|
||||
/**
|
||||
* 工厂名称
|
||||
*/
|
||||
@TableField("FACT_NAME")
|
||||
private String factoryName;
|
||||
/**
|
||||
* 工厂编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("FACT_NUM")
|
||||
private String factoryNumber;
|
||||
/**
|
||||
* 库位名称
|
||||
*/
|
||||
@TableField("WRH_NAME")
|
||||
private String warehouseName;
|
||||
/**
|
||||
* 库位编码;推送ERP(必须)
|
||||
*/
|
||||
@TableField("WRH_NUM")
|
||||
private String warehouseNumber;
|
||||
/**
|
||||
* 计量单位;推送ERP(必须)
|
||||
*/
|
||||
@TableField("UNT")
|
||||
private String unit;
|
||||
/**
|
||||
* 开票类型;推送ERP(必须)
|
||||
*/
|
||||
@TableField("INV_TP")
|
||||
private String invoiceType;
|
||||
/**
|
||||
* 暂估数量;推送ERP(必须)
|
||||
*/
|
||||
@TableField("QTY")
|
||||
private BigDecimal quantity;
|
||||
/**
|
||||
* 稅分类(字典:SALE_TAX);推送ERP(必须)
|
||||
*/
|
||||
@TableField("TAX_ACTS")
|
||||
private String taxAcctasscat;
|
||||
/**
|
||||
* 项目类别;推送ERP
|
||||
*/
|
||||
@TableField("PRJ_CTGR")
|
||||
private String projectCategory;
|
||||
/**
|
||||
* 装运地点;推送ERP
|
||||
*/
|
||||
@TableField("SHPP_PLCE")
|
||||
private String shippingPlace;
|
||||
/**
|
||||
* 物料科目分配组;推送ERP(必须)
|
||||
*/
|
||||
@TableField("MTL_ACTS_GRP")
|
||||
private String metalAcctasscatGroup;
|
||||
/**
|
||||
* 小协议号
|
||||
*/
|
||||
@TableField("AGR_NUM")
|
||||
private String agreementNumber;
|
||||
/**
|
||||
* 总价
|
||||
*/
|
||||
@TableField("GRS")
|
||||
private BigDecimal gross;
|
||||
/**
|
||||
* 金属元素缩写
|
||||
*/
|
||||
@TableField("ELEM_ABBR")
|
||||
private String elementAbbreviation;
|
||||
/**
|
||||
* 金属元素名称
|
||||
*/
|
||||
@TableField("ELEM_NAME")
|
||||
private String elementName;
|
||||
/**
|
||||
* 金属元素编码
|
||||
*/
|
||||
@TableField("ELEM_NUM")
|
||||
private String elementNumber;
|
||||
/**
|
||||
* 是否启用;处理明细中多个相同物料,只能允许一种物料启用
|
||||
*/
|
||||
@TableField("IS_ENB")
|
||||
private String isEnable;
|
||||
/**
|
||||
* 价格条件详情;推送ERP(必须):JSON
|
||||
*/
|
||||
@TableField("PRC_CND_DTL")
|
||||
private String priceConditionDetail;
|
||||
/**
|
||||
* 来料加工原料详情;推送ERP:订单类型(JSON)
|
||||
*/
|
||||
@TableField("ORGN_DTL")
|
||||
private String originDetail;
|
||||
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
@TableField("TAX_RTE")
|
||||
private String taxRte;
|
||||
|
||||
}
|
||||
@@ -24,7 +24,7 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
|
||||
default PageResult<PurchaseOrderDO> selectPage(PurchaseOrderPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseOrderDO>()
|
||||
.eqIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getCompanyNumber, reqVO.getCompanyNumber())
|
||||
.eqIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||
.likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.zt.plat.module.contractorder.dal.mysql.salesorder;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
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.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单明细 Mapper
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@Mapper
|
||||
public interface SalesOrderDetailMapper extends BaseMapperX<SalesOrderDetailDO> {
|
||||
|
||||
default PageResult<SalesOrderDetailDO> selectPage(SalesOrderDetailPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<SalesOrderDetailDO>()
|
||||
.eqIfPresent(SalesOrderDetailDO::getOrderId, reqVO.getOrderId())
|
||||
.eqIfPresent(SalesOrderDetailDO::getLineNumber, reqVO.getLineNumber())
|
||||
.likeIfPresent(SalesOrderDetailDO::getMaterialName, reqVO.getMaterialName())
|
||||
.eqIfPresent(SalesOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber())
|
||||
.likeIfPresent(SalesOrderDetailDO::getFactoryName, reqVO.getFactoryName())
|
||||
.eqIfPresent(SalesOrderDetailDO::getFactoryNumber, reqVO.getFactoryNumber())
|
||||
.likeIfPresent(SalesOrderDetailDO::getWarehouseName, reqVO.getWarehouseName())
|
||||
.eqIfPresent(SalesOrderDetailDO::getWarehouseNumber, reqVO.getWarehouseNumber())
|
||||
.eqIfPresent(SalesOrderDetailDO::getUnit, reqVO.getUnit())
|
||||
.eqIfPresent(SalesOrderDetailDO::getInvoiceType, reqVO.getInvoiceType())
|
||||
.eqIfPresent(SalesOrderDetailDO::getQuantity, reqVO.getQuantity())
|
||||
.eqIfPresent(SalesOrderDetailDO::getTaxAcctasscat, reqVO.getTaxAcctasscat())
|
||||
.eqIfPresent(SalesOrderDetailDO::getProjectCategory, reqVO.getProjectCategory())
|
||||
.eqIfPresent(SalesOrderDetailDO::getShippingPlace, reqVO.getShippingPlace())
|
||||
.eqIfPresent(SalesOrderDetailDO::getMetalAcctasscatGroup, reqVO.getMetalAcctasscatGroup())
|
||||
.eqIfPresent(SalesOrderDetailDO::getAgreementNumber, reqVO.getAgreementNumber())
|
||||
.eqIfPresent(SalesOrderDetailDO::getGross, reqVO.getGross())
|
||||
.eqIfPresent(SalesOrderDetailDO::getElementAbbreviation, reqVO.getElementAbbreviation())
|
||||
.likeIfPresent(SalesOrderDetailDO::getElementName, reqVO.getElementName())
|
||||
.eqIfPresent(SalesOrderDetailDO::getElementNumber, reqVO.getElementNumber())
|
||||
.eqIfPresent(SalesOrderDetailDO::getIsEnable, reqVO.getIsEnable())
|
||||
.eqIfPresent(SalesOrderDetailDO::getPriceConditionDetail, reqVO.getPriceConditionDetail())
|
||||
.eqIfPresent(SalesOrderDetailDO::getOriginDetail, reqVO.getOriginDetail())
|
||||
.betweenIfPresent(SalesOrderDetailDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(SalesOrderDetailDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.zt.plat.module.contractorder.dal.mysql.salesorder;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单 Mapper
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@Mapper
|
||||
public interface SalesOrderMapper extends BaseMapperX<SalesOrderDO> {
|
||||
|
||||
default PageResult<SalesOrderDO> selectPage(SalesOrderPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<SalesOrderDO>()
|
||||
.eqIfPresent(SalesOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||
.eqIfPresent(SalesOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||
.eqIfPresent(SalesOrderDO::getCompanyNumber, reqVO.getCompanyNumber())
|
||||
.eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||
.likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||
.eqIfPresent(SalesOrderDO::getType, reqVO.getType())
|
||||
.betweenIfPresent(SalesOrderDO::getVoucherDate, reqVO.getVoucherDate())
|
||||
.eqIfPresent(SalesOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration())
|
||||
.likeIfPresent(SalesOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
|
||||
.eqIfPresent(SalesOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
|
||||
.likeIfPresent(SalesOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
|
||||
.eqIfPresent(SalesOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
|
||||
.eqIfPresent(SalesOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup())
|
||||
.eqIfPresent(SalesOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber())
|
||||
.eqIfPresent(SalesOrderDO::getExchangeRate, reqVO.getExchangeRate())
|
||||
.eqIfPresent(SalesOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber())
|
||||
.eqIfPresent(SalesOrderDO::getAgreementNumber, reqVO.getAgreementNumber())
|
||||
.eqIfPresent(SalesOrderDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(SalesOrderDO::getAgentNumber, reqVO.getAgentNumber())
|
||||
.likeIfPresent(SalesOrderDO::getAgentName, reqVO.getAgentName())
|
||||
// .eqIfPresent(SalesOrderDO::getOrderNumber, reqVO.getOrderNumber())
|
||||
.eqIfPresent(SalesOrderDO::getContractNumber, reqVO.getContractNumber())
|
||||
.eqIfPresent(SalesOrderDO::getMaterialNumber, reqVO.getMaterialNumber())
|
||||
.likeIfPresent(SalesOrderDO::getMaterialName, reqVO.getMaterialName())
|
||||
.likeIfPresent(SalesOrderDO::getContractName, reqVO.getContractName())
|
||||
.eqIfPresent(SalesOrderDO::getTenantNumber, reqVO.getTenantNumber())
|
||||
.betweenIfPresent(SalesOrderDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(SalesOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
|
||||
.likeIfPresent(SalesOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName())
|
||||
.eqIfPresent(SalesOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber())
|
||||
.likeIfPresent(SalesOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName())
|
||||
.likeIfPresent(SalesOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName())
|
||||
.eqIfPresent(SalesOrderDO::getErpStatus, reqVO.getErpStatus())
|
||||
.eqIfPresent(SalesOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp())
|
||||
.eqIfPresent(SalesOrderDO::getCause, reqVO.getCause())
|
||||
.eqIfPresent(SalesOrderDO::getStatus, reqVO.getStatus())
|
||||
.likeIfPresent(SalesOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())
|
||||
.orderByDesc(SalesOrderDO::getId));
|
||||
}
|
||||
}
|
||||
@@ -195,12 +195,6 @@ public interface ContractService {
|
||||
*/
|
||||
Boolean complete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关联订单;该接口仅供订单关联使用
|
||||
*
|
||||
* @param LinkOrderReqVO 订单信息
|
||||
* @return 结果
|
||||
*/
|
||||
Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1556,20 +1556,6 @@ public class ContractServiceImpl implements ContractService {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) {
|
||||
|
||||
SystemRelativityDO saveDO = new SystemRelativityDO();
|
||||
saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode());
|
||||
saveDO.setUpId(LinkOrderReqVO.getUpOrderId());
|
||||
saveDO.setDownId(LinkOrderReqVO.getDownOrderId());
|
||||
//判断订单有没有关联过
|
||||
if (systemRelativityMapper.selectCount(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId()))>0){
|
||||
throw exception(CONTRACT_ORDER_EXISTS);
|
||||
}
|
||||
return systemRelativityMapper.insert(saveDO)>0;
|
||||
}
|
||||
|
||||
private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
|
||||
|
||||
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.*;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
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;
|
||||
import jakarta.validation.*;
|
||||
|
||||
@@ -52,7 +53,7 @@ public interface PurchaseOrderService {
|
||||
* @param id 编号
|
||||
* @return 采购订单
|
||||
*/
|
||||
PurchaseOrderDO getPurchaseOrder(Long id);
|
||||
PurchaseOrderDO getPurchaseOrder(Long id,String splyBsnTp);
|
||||
|
||||
/**
|
||||
* 获得采购订单分页
|
||||
@@ -103,13 +104,7 @@ public interface PurchaseOrderService {
|
||||
*
|
||||
*/
|
||||
CommonResult<MaterialRespVO> getMaterial(String orderNo);
|
||||
/**
|
||||
* 关联订单
|
||||
*
|
||||
* @param reqVO 关联订单
|
||||
*
|
||||
*/
|
||||
boolean linkOrder(LinkOrderReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 订单审核通过和不通过
|
||||
*
|
||||
@@ -117,4 +112,16 @@ public interface PurchaseOrderService {
|
||||
*
|
||||
*/
|
||||
boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO);
|
||||
|
||||
List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO);
|
||||
|
||||
List<String> getBindOrderByOrder(DownOrUpOrderReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 关联订单;该接口仅供订单关联使用
|
||||
*
|
||||
* @param LinkOrderReqVO 订单信息
|
||||
* @return 结果
|
||||
*/
|
||||
Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO);
|
||||
}
|
||||
|
||||
@@ -11,9 +11,13 @@ 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.controller.admin.contract.vo.contract.ContractRespVO;
|
||||
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.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.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.contract.DictEnum;
|
||||
@@ -44,6 +48,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
|
||||
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*;
|
||||
|
||||
|
||||
@@ -80,8 +85,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
@Resource
|
||||
private ContractService contractService;
|
||||
|
||||
@Resource
|
||||
private SystemRelativityMapper systemRelativityMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
|
||||
@@ -95,7 +104,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
purchaseOrder.setSystemOrderNumber(orderNumber);
|
||||
purchaseOrderMapper.insert(purchaseOrder);
|
||||
|
||||
if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()){
|
||||
if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) {
|
||||
return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
}
|
||||
//批量插入订单明细
|
||||
@@ -107,7 +116,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updatePurchaseOrder(PurchaseOrderSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validatePurchaseOrderExists(updateReqVO.getId());
|
||||
@@ -164,8 +173,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PurchaseOrderDO getPurchaseOrder(Long id) {
|
||||
return purchaseOrderMapper.selectById(id);
|
||||
public PurchaseOrderDO getPurchaseOrder(Long id, String splyBsnTp) {
|
||||
return purchaseOrderMapper.selectOne(new LambdaQueryWrapper<PurchaseOrderDO>().eq(PurchaseOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), PurchaseOrderDO::getSplyBsnTp, splyBsnTp));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -474,10 +483,18 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean linkOrder(LinkOrderReqVO reqVO) {
|
||||
return contractService.linkOrder(reqVO);
|
||||
}
|
||||
public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) {
|
||||
|
||||
SystemRelativityDO saveDO = new SystemRelativityDO();
|
||||
saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode());
|
||||
saveDO.setUpId(LinkOrderReqVO.getUpOrderId());
|
||||
saveDO.setDownId(LinkOrderReqVO.getDownOrderId());
|
||||
//判断订单有没有关联过
|
||||
if (systemRelativityMapper.selectCount(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) {
|
||||
throw exception(CONTRACT_ORDER_EXISTS);
|
||||
}
|
||||
return systemRelativityMapper.insert(saveDO) > 0;
|
||||
}
|
||||
|
||||
private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) {
|
||||
//head
|
||||
@@ -543,7 +560,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
if (ObjectUtils.isEmpty(purchaseOrderDO)) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
|
||||
// 获取当前流程正在审批的任务节点
|
||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
|
||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
@@ -585,4 +601,68 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) {
|
||||
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(reqVO.getOrderId());
|
||||
if (purchaseOrderDO == null) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
String contractNumber = purchaseOrderDO.getContractNumber();// 合同号
|
||||
|
||||
ContractRespVO upRelation = null;
|
||||
if ("up".equals(reqVO.getOrderType())) {
|
||||
log.info("获取上游订单");
|
||||
//上游
|
||||
upRelation = contractService.getUpRelation(Long.valueOf(contractNumber));
|
||||
} else {
|
||||
//下游
|
||||
log.info("获取下游订单");
|
||||
upRelation = contractService.getDownRelation(Long.valueOf(contractNumber));
|
||||
}
|
||||
List<DownOrUpOrderRespVO> orderList = new ArrayList<>();
|
||||
if (upRelation != null) {
|
||||
String systemContractNumber = upRelation.getSystemContractNumber();
|
||||
|
||||
List<PurchaseOrderDO> purchaseOrderDOS = purchaseOrderMapper.selectList(new LambdaQueryWrapper<PurchaseOrderDO>().eq(PurchaseOrderDO::getContractNumber, systemContractNumber));
|
||||
purchaseOrderDOS.forEach(p -> {
|
||||
DownOrUpOrderRespVO downOrUpOrderRespVO = new DownOrUpOrderRespVO();
|
||||
downOrUpOrderRespVO.setOrderId(String.valueOf(p.getId()));
|
||||
downOrUpOrderRespVO.setOrderNo(p.getSystemOrderNumber());
|
||||
downOrUpOrderRespVO.setOrderType(reqVO.getOrderType());
|
||||
downOrUpOrderRespVO.setContractId(String.valueOf(p.getId()));
|
||||
downOrUpOrderRespVO.setContractName(p.getContractName());
|
||||
downOrUpOrderRespVO.setContractNumber(p.getContractNumber());
|
||||
orderList.add(downOrUpOrderRespVO);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
return orderList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getBindOrderByOrder(DownOrUpOrderReqVO reqVO) {
|
||||
List<String> orderList = new ArrayList<>();
|
||||
if ("up".equals(reqVO.getOrderType())) {
|
||||
log.info("获取上游订单");
|
||||
//上游
|
||||
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getDownId, reqVO.getOrderId()));
|
||||
if (!systemRelativityDOS.isEmpty()) {
|
||||
systemRelativityDOS.forEach(systemRelativityDO -> {
|
||||
orderList.add(systemRelativityDO.getUpId().toString());
|
||||
});
|
||||
}
|
||||
} else {
|
||||
//下游
|
||||
log.info("获取下游订单");
|
||||
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, reqVO.getOrderId()));
|
||||
if (!systemRelativityDOS.isEmpty()) {
|
||||
systemRelativityDOS.forEach(systemRelativityDO -> {
|
||||
orderList.add(systemRelativityDO.getDownId().toString());
|
||||
});
|
||||
}
|
||||
}
|
||||
return orderList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.zt.plat.module.contractorder.service.salesorder;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO;
|
||||
import jakarta.validation.*;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 销售订单明细 Service 接口
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
public interface SalesOrderDetailService {
|
||||
|
||||
/**
|
||||
* 创建销售订单明细
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
SalesOrderDetailRespVO createSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 批量创建销售订单明细
|
||||
*
|
||||
* @param createReqVOS 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
List<SalesOrderDetailRespVO> createSalesOrderDetail(@Valid List<SalesOrderDetailSaveReqVO> createReqVOS);
|
||||
|
||||
/**
|
||||
* 更新销售订单明细
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除销售订单明细
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteSalesOrderDetail(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除销售订单明细
|
||||
*
|
||||
* @param ids 编号
|
||||
*/
|
||||
void deleteSalesOrderDetailListByIds(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得销售订单明细
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 销售订单明细
|
||||
*/
|
||||
SalesOrderDetailDO getSalesOrderDetail(Long id);
|
||||
|
||||
/**
|
||||
* 获得销售订单明细分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 销售订单明细分页
|
||||
*/
|
||||
PageResult<SalesOrderDetailDO> getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO);
|
||||
|
||||
|
||||
/**
|
||||
* 根据订单主键删除订单明细
|
||||
*
|
||||
* @param orderIds 订单主键
|
||||
*
|
||||
*/
|
||||
void deleteSalesOrderDetailByOrderIds(List<Long> orderIds);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.zt.plat.module.contractorder.service.salesorder;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO;
|
||||
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
|
||||
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
|
||||
import static com.zt.plat.module.contractorder.enums.salesorder.ErrorCodeConstants.SALES_ORDER_DETAIL_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 销售订单明细 Service 实现类
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
|
||||
|
||||
@Resource
|
||||
private SalesOrderDetailMapper salesOrderDetailMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class);
|
||||
salesOrderDetailMapper.insert(salesOrderDetail);
|
||||
// 返回
|
||||
return BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<SalesOrderDetailRespVO> createSalesOrderDetail(List<SalesOrderDetailSaveReqVO> createReqVOS) {
|
||||
List<SalesOrderDetailDO> salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class);
|
||||
salesOrderDetailMapper.insertBatch(salesOrderDetailDOS);
|
||||
return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSalesOrderDetail(SalesOrderDetailSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateSalesOrderDetailExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SalesOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDetailDO.class);
|
||||
salesOrderDetailMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSalesOrderDetail(Long id) {
|
||||
// 校验存在
|
||||
validateSalesOrderDetailExists(id);
|
||||
// 删除
|
||||
salesOrderDetailMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSalesOrderDetailListByIds(List<Long> ids) {
|
||||
// 校验存在
|
||||
validateSalesOrderDetailExists(ids);
|
||||
// 删除
|
||||
salesOrderDetailMapper.deleteByIds(ids);
|
||||
}
|
||||
|
||||
private void validateSalesOrderDetailExists(List<Long> ids) {
|
||||
List<SalesOrderDetailDO> list = salesOrderDetailMapper.selectByIds(ids);
|
||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||
throw exception(SALES_ORDER_DETAIL_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
private void validateSalesOrderDetailExists(Long id) {
|
||||
if (salesOrderDetailMapper.selectById(id) == null) {
|
||||
throw exception(SALES_ORDER_DETAIL_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalesOrderDetailDO getSalesOrderDetail(Long id) {
|
||||
return salesOrderDetailMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SalesOrderDetailDO> getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO) {
|
||||
return salesOrderDetailMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteSalesOrderDetailByOrderIds(List<Long> orderIds) {
|
||||
salesOrderDetailMapper.deleteBatch(SalesOrderDetailDO::getOrderId, orderIds);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.zt.plat.module.contractorder.service.salesorder;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import jakarta.validation.*;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 采购订单 Service 接口
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
public interface SalesOrderService {
|
||||
|
||||
/**
|
||||
* 创建采购订单
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
SalesOrderRespVO createSalesOrder(@Valid SalesOrderSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新采购订单
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSalesOrder(@Valid SalesOrderSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除采购订单
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteSalesOrder(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除采购订单
|
||||
*
|
||||
* @param ids 编号
|
||||
*/
|
||||
void deleteSalesOrderListByIds(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得采购订单
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 采购订单
|
||||
*/
|
||||
SalesOrderDO getSalesOrder(Long id, String splyBsnTp);
|
||||
|
||||
/**
|
||||
* 获得采购订单分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 采购订单分页
|
||||
*/
|
||||
PageResult<SalesOrderDO> getSalesOrderPage(SalesOrderPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.zt.plat.module.contractorder.service.salesorder;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
|
||||
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 static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单 Service 实现类
|
||||
*
|
||||
* @author 后台管理-1
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
|
||||
@Resource
|
||||
private SalesOrderMapper salesOrderMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
SalesOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, SalesOrderDO.class);
|
||||
salesOrderMapper.insert(purchaseOrder);
|
||||
// 返回
|
||||
return BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateSalesOrder(SalesOrderSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SalesOrderDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDO.class);
|
||||
salesOrderMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteSalesOrder(Long id) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(id);
|
||||
// 删除
|
||||
salesOrderMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteSalesOrderListByIds(List<Long> ids) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(ids);
|
||||
// 删除
|
||||
salesOrderMapper.deleteByIds(ids);
|
||||
}
|
||||
|
||||
private void validateSalesOrderExists(List<Long> ids) {
|
||||
List<SalesOrderDO> list = salesOrderMapper.selectByIds(ids);
|
||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
private void validateSalesOrderExists(Long id) {
|
||||
if (salesOrderMapper.selectById(id) == null) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalesOrderDO getSalesOrder(Long id, String splyBsnTp) {
|
||||
return salesOrderMapper.selectOne(new LambdaQueryWrapper<SalesOrderDO>().eq(SalesOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), SalesOrderDO::getSplyBsnTp, splyBsnTp));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SalesOrderDO> getSalesOrderPage(SalesOrderPageReqVO pageReqVO) {
|
||||
return salesOrderMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -166,6 +166,10 @@
|
||||
po.CREATOR,
|
||||
po.UPDATER,
|
||||
po.DELETED,
|
||||
po.pdtGrpCdg,
|
||||
po.pdtGrpName,
|
||||
po.saleAcsCdg,
|
||||
po.saleAcsName,
|
||||
pod.ID as pod_id,
|
||||
pod.ORD_ID,
|
||||
pod.LINE_NUM,
|
||||
@@ -279,6 +283,10 @@
|
||||
<result column="UNT" property="unt"/>
|
||||
<result column="MTRL_TP" property="mtrlTp"/>
|
||||
<result column="SPLY_BSN_TP" property="splyBsnTp"/>
|
||||
<result column="PDT_GRP_CDG" property="pdtGrpCdg"/>
|
||||
<result column="PDT_GRP_NAME" property="pdtGrpName"/>
|
||||
<result column="SALE_ACS_CDG" property="saleAcsCdg"/>
|
||||
<result column="SALE_ACS_NAME" property="saleAcsName"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="PrchOrdDtlResultMap" type="com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO">
|
||||
@@ -328,6 +336,5 @@
|
||||
<result column="ENTT_DTL" property="enttDtl"/>
|
||||
<result column="ELEM_ABBR" property="elemAbbr"/>
|
||||
<result column="ELEM_NAME" property="elemName"/>
|
||||
<result column="ELEM_CDG" property="elemCdg"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user