diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/entrustorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/entrustorder/ErrorCodeConstants.java new file mode 100644 index 00000000..48756a17 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/entrustorder/ErrorCodeConstants.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.contractorder.enums.entrustorder; + +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 ENTRUST_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_027_000_888, "委托加工订单明细不存在"); + ErrorCode ENTRUST_ORDER_NOT_EXISTS = new ErrorCode(1_027_000_889, "委托加工订单不存在"); +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 3c905dd8..71852a17 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -680,7 +680,7 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult getSalesOrderDetailById(Long id) { - SalesOrderDetailDO salesOrderDetailDO = SpringUtil.getBean(SalesOrderDetailMapper.class).selectOne(SalesOrderDetailDO::getId, id); + SalesOrderDetailDO salesOrderDetailDO = SpringUtil.getBean(SalesOrderDetailMapper.class).selectOne(SalesOrderDetailDO::getId, id,SalesOrderDetailDO::getIsEnable,1); SalesOrdDtlDTO salesOrdDtlDTO = BeanUtils.toBean(salesOrderDetailDO, SalesOrdDtlDTO.class); salesOrdDtlDTO.setUnit(salesOrderDetailDO.getUnt()); return success(salesOrdDtlDTO); @@ -688,19 +688,20 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult> getSalesOrderDetailByIds(List ids) { - List salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectList(SalesOrderDetailDO::getId, ids); + List salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectList(SalesOrderDetailDO::getId, ids,SalesOrderDetailDO::getIsEnable,1); return success(BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class)); } @Override public CommonResult getPoOrderDetailById(Long id) { - PrchOrdDtlDO prchOrdDtlDO = SpringUtil.getBean(PrchOrdDtlMapper.class).selectById(id); + PrchOrdDtlDO prchOrdDtlDO = SpringUtil.getBean(PrchOrdDtlMapper.class).selectOne(PrchOrdDtlDO::getId,id,PrchOrdDtlDO::getIsEnb,1); + return success(BeanUtils.toBean(prchOrdDtlDO, PrchOrdDtlDTO.class)); } @Override public CommonResult> getPoOrderDetailByIds(List ids) { - List prchOrdDtlDOS = SpringUtil.getBean(PrchOrdDtlMapper.class).selectList(PrchOrdDtlDO::getId, ids); + List prchOrdDtlDOS = SpringUtil.getBean(PrchOrdDtlMapper.class).selectList(PrchOrdDtlDO::getId, ids,PrchOrdDtlDO::getIsEnb,1); return success(BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlDTO.class)); } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java index 9b4b6c88..b3036b0b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java @@ -174,13 +174,13 @@ public class OrderApiImpl implements OrderApi { @Override public CommonResult> getSalesOrderDetailsByOrderIds(List ids) { - List salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectList(SalesOrderDetailDO::getId, ids); + List salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectList(SalesOrderDetailDO::getId, ids, SalesOrderDetailDO::getIsEnable, 1); return success(BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class)); } @Override public CommonResult getSalesOrderDetailsByOrderId(Long id) { - SalesOrderDetailDO salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectOne(SalesOrderDetailDO::getOrderId, id); + SalesOrderDetailDO salesOrderDetailDOS = SpringUtil.getBean(SalesOrderDetailMapper.class).selectOne(SalesOrderDetailDO::getOrderId, id, SalesOrderDetailDO::getIsEnable, 1); return success(BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class)); } @@ -192,7 +192,7 @@ public class OrderApiImpl implements OrderApi { } private List getOrderByIds(List ids) { - return SpringUtil.getBean(SalesOrderMapper.class).selectByIds(ids); // 采购订单与销售订单的 + return SpringUtil.getBean(SalesOrderMapper.class).selectList(SalesOrderDO::getId,ids); // 采购订单与销售订单的 } private List getPoOrdByIds(List ids) { diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderDetailController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderDetailController.java new file mode 100644 index 00000000..54dd7fe9 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderDetailController.java @@ -0,0 +1,111 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder; + +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO; +import com.zt.plat.module.contractorder.service.entrustorder.EntrustOrderDetailService; +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("/bse/entrust-order-detail") +@Validated +public class EntrustOrderDetailController implements BusinessControllerMarker { + + + @Resource + private EntrustOrderDetailService entrustOrderDetailService; + + @PostMapping("/create") + @Operation(summary = "创建委托加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:create')") + public CommonResult createEntrustOrderDetail(@Valid @RequestBody EntrustOrderDetailSaveReqVO createReqVO) { + return success(entrustOrderDetailService.createEntrustOrderDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新委托加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:update')") + public CommonResult updateEntrustOrderDetail(@Valid @RequestBody EntrustOrderDetailSaveReqVO updateReqVO) { + entrustOrderDetailService.updateEntrustOrderDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除委托加工订单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:delete')") + public CommonResult deleteEntrustOrderDetail(@RequestParam("id") Long id) { + entrustOrderDetailService.deleteEntrustOrderDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除委托加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:delete')") + public CommonResult deleteEntrustOrderDetailList(@RequestBody BatchDeleteReqVO req) { + entrustOrderDetailService.deleteEntrustOrderDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得委托加工订单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:query')") + public CommonResult getEntrustOrderDetail(@RequestParam("id") Long id) { + EntrustOrderDetailDO entrustOrderDetail = entrustOrderDetailService.getEntrustOrderDetail(id); + return success(BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得委托加工订单明细分页") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:query')") + public CommonResult> getEntrustOrderDetailPage(@Valid EntrustOrderDetailPageReqVO pageReqVO) { + PageResult pageResult = entrustOrderDetailService.getEntrustOrderDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, EntrustOrderDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出委托加工订单明细 Excel") + @PreAuthorize("@ss.hasPermission('bse:entrust-order-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportEntrustOrderDetailExcel(@Valid EntrustOrderDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = entrustOrderDetailService.getEntrustOrderDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "委托加工订单明细.xls", "数据", EntrustOrderDetailRespVO.class, + BeanUtils.toBean(list, EntrustOrderDetailRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java new file mode 100644 index 00000000..e72f8fe9 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java @@ -0,0 +1,145 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder; + +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderRespVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +import com.zt.plat.module.contractorder.service.entrustorder.EntrustOrderOrderService; +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.*; +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("/bse/purchase-order") +@Validated +public class EntrustOrderOrderController implements BusinessControllerMarker { + + + @Resource + private EntrustOrderOrderService entrustOrderOrderService; + + @PostMapping("/create") + @Operation(summary = "创建采购订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:create')") + public CommonResult createEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO createReqVO) { + return success(entrustOrderOrderService.createEntrustOrderOrder(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新采购订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") + public CommonResult updateEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO updateReqVO) { + entrustOrderOrderService.updateEntrustOrderOrder(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除采购订单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + public CommonResult deleteEntrustOrderOrder(@RequestParam("id") Long id) { + entrustOrderOrderService.deleteEntrustOrderOrder(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除采购订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + public CommonResult deleteEntrustOrderOrderList(@RequestBody BatchDeleteReqVO req) { + entrustOrderOrderService.deleteEntrustOrderOrderListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得采购订单") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") + public CommonResult getEntrustOrderOrder(@RequestParam("id") Long id) { + EntrustOrderOrderDO EntrustOrderOrder = entrustOrderOrderService.getEntrustOrderOrder(id); + return success(BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得采购订单分页") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") + public CommonResult> getEntrustOrderOrderPage(@Valid EntrustOrderOrderPageReqVO pageReqVO) { + PageResult pageResult = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, EntrustOrderOrderRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出采购订单 Excel") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportEntrustOrderOrderExcel(@Valid EntrustOrderOrderPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "采购订单.xls", "数据", EntrustOrderOrderRespVO.class, + BeanUtils.toBean(list, EntrustOrderOrderRespVO.class)); + } + //关联订单 + //关联订单 + @PostMapping("/link-order") + @Operation(summary = "关联订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')") + public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req) { + return success(entrustOrderOrderService.linkOrder(req)); + } + + @PostMapping("/order-by-order-id-and-type") + @Operation(summary = "根据订单id和方式获取上或下游订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')") + public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { + return success( entrustOrderOrderService.getOrderByOrderIdAndType(reqVO)); + } + + + @PostMapping("/bound-order") + @Operation(summary = "获取已绑定的订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')") + public CommonResult> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) { + return success(entrustOrderOrderService.getBindOrderByOrder(reqVO)); + } + + //关闭订单 + @PostMapping("/close-order") + @Operation(summary = "关闭订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update')") + public CommonResult closeOrder(@RequestParam("id") Long id) { + return success(entrustOrderOrderService.closeOrder(id)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java new file mode 100644 index 00000000..60440f27 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.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 EntrustOrderDetailPageReqVO extends PageParam { + + @Schema(description = "收货工厂名称", example = "赵六") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "物料名称", example = "赵六") + private String materialName; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "24704") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "交货起始日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryCargoEndDate; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + private String shortText; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java new file mode 100644 index 00000000..6596ee75 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java @@ -0,0 +1,76 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.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 EntrustOrderDetailRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "收货工厂名称", example = "赵六") + @ExcelProperty("收货工厂名称") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + @ExcelProperty("收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + @ExcelProperty("收货库位名称") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + @ExcelProperty("收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "物料名称", example = "赵六") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + @ExcelProperty("计量单位") + private String uom; + + @Schema(description = "暂估数量") + @ExcelProperty("暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "24704") + @ExcelProperty("含税单价") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "交货起始日期") + @ExcelProperty("交货起始日期") + private LocalDateTime deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + @ExcelProperty("交货截止日期") + private LocalDateTime deliveryCargoEndDate; + + @Schema(description = "是否启用") + @ExcelProperty("是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + @ExcelProperty("短文本") + private String shortText; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java new file mode 100644 index 00000000..24c12c71 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java @@ -0,0 +1,57 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 委托加工订单明细新增/修改 Request VO") +@Data +public class EntrustOrderDetailSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") + private Long id; + + @Schema(description = "收货工厂名称", example = "赵六") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "物料名称", example = "赵六") + private String materialName; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "24704") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "交货起始日期") + private LocalDateTime deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + private LocalDateTime deliveryCargoEndDate; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + private String shortText; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java new file mode 100644 index 00000000..b4a4b669 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java @@ -0,0 +1,126 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo; + +import lombok.*; +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 EntrustOrderOrderPageReqVO 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 = "货币码(字典: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; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java new file mode 100644 index 00000000..e59bb0ca --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java @@ -0,0 +1,163 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 采购订单 Response VO") +@Data +@ExcelIgnoreUnannotated +public class EntrustOrderOrderRespVO { + + @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 = "采购组编码(字典: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; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java new file mode 100644 index 00000000..99228324 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java @@ -0,0 +1,143 @@ +package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 采购订单新增/修改 Request VO") +@Data +public class EntrustOrderOrderSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + private Long id; + + @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 = "系统合同编号", 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 = "创建时间") + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java new file mode 100644 index 00000000..df381b78 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java @@ -0,0 +1,104 @@ +package com.zt.plat.module.contractorder.dal.dataobject.entrustorder; + +import lombok.*; +import java.util.*; + import java.math.BigDecimal; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + 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_entt_ord_dtl") +@KeySequence("bse_entt_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 EntrustOrderDetailDO extends BusinessBaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 收货工厂名称 + */ + @TableField("RCV_FACT_NAME") + private String receiveFactoryName; + /** + * 收货工厂编码 + */ + @TableField("RCV_FACT_NUM") + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + @TableField("RCV_WRH_NAME") + private String receiveWarehouseName; + /** + * 收货库位编码 + */ + @TableField("RCV_WRH_NUM") + private String receiveWarehouseNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 计量单位 + */ + @TableField("UOM") + private String uom; + /** + * 暂估数量 + */ + @TableField("FRCST_QTY") + private BigDecimal forecastQuantity; + /** + * 含税单价 + */ + @TableField("IN_TAX_UPRC") + private BigDecimal inTaxUnitPrice; + /** + * 交货起始日期 + */ + @TableField("DLVY_CGO_BGN_DT") + private LocalDateTime deliveryCargoBeginDate; + /** + * 交货截止日期 + */ + @TableField("DLVY_CGO_END_DT") + private LocalDateTime deliveryCargoEndDate; + /** + * 是否启用 + */ + @TableField("IS_ENB") + private Boolean isEnable; + /** + * 短文本 + */ + @TableField("SHRT_TXT") + private String shortText; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java new file mode 100644 index 00000000..85bc2f2a --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java @@ -0,0 +1,212 @@ +package com.zt.plat.module.contractorder.dal.dataobject.entrustorder; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + 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_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 EntrustOrderOrderDO 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; + /** + * 公司编码;推送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; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java new file mode 100644 index 00000000..b106fd21 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.contractorder.dal.mysql.entrustorder; + +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.entrustorder.vo.EntrustOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 委托加工订单明细 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface EntrustOrderDetailMapper extends BaseMapperX { + + default PageResult selectPage(EntrustOrderDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(EntrustOrderDetailDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(EntrustOrderDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(EntrustOrderDetailDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(EntrustOrderDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .likeIfPresent(EntrustOrderDetailDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(EntrustOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) + .eqIfPresent(EntrustOrderDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(EntrustOrderDetailDO::getForecastQuantity, reqVO.getForecastQuantity()) + .eqIfPresent(EntrustOrderDetailDO::getInTaxUnitPrice, reqVO.getInTaxUnitPrice()) + .betweenIfPresent(EntrustOrderDetailDO::getDeliveryCargoBeginDate, reqVO.getDeliveryCargoBeginDate()) + .betweenIfPresent(EntrustOrderDetailDO::getDeliveryCargoEndDate, reqVO.getDeliveryCargoEndDate()) + .eqIfPresent(EntrustOrderDetailDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(EntrustOrderDetailDO::getShortText, reqVO.getShortText()) + .betweenIfPresent(EntrustOrderDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(EntrustOrderDetailDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java new file mode 100644 index 00000000..2a4b42b1 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java @@ -0,0 +1,65 @@ +package com.zt.plat.module.contractorder.dal.mysql.entrustorder; + +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.entrustorder.vo.EntrustOrderOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface EntrustOrderOrderMapper extends BaseMapperX { + + default PageResult selectPage(EntrustOrderOrderPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(EntrustOrderOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) + .eqIfPresent(EntrustOrderOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .eqIfPresent(EntrustOrderOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) + .eqIfPresent(EntrustOrderOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) + .likeIfPresent(EntrustOrderOrderDO::getSupplierName, reqVO.getSupplierName()) + .eqIfPresent(EntrustOrderOrderDO::getType, reqVO.getType()) + .eqIfPresent(EntrustOrderOrderDO::getVoucherDate, reqVO.getVoucherDate()) + .eqIfPresent(EntrustOrderOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration()) + .likeIfPresent(EntrustOrderOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(EntrustOrderOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(EntrustOrderOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(EntrustOrderOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .eqIfPresent(EntrustOrderOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup()) + .eqIfPresent(EntrustOrderOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber()) + .eqIfPresent(EntrustOrderOrderDO::getExchangeRate, reqVO.getExchangeRate()) + .eqIfPresent(EntrustOrderOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) + .eqIfPresent(EntrustOrderOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(EntrustOrderOrderDO::getRemark, reqVO.getRemark()) + .eqIfPresent(EntrustOrderOrderDO::getAgentNumber, reqVO.getAgentNumber()) + .likeIfPresent(EntrustOrderOrderDO::getAgentName, reqVO.getAgentName()) + .eqIfPresent(EntrustOrderOrderDO::getOrderNumber, reqVO.getOrderNumber()) + .eqIfPresent(EntrustOrderOrderDO::getContractNumber, reqVO.getContractNumber()) + .eqIfPresent(EntrustOrderOrderDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(EntrustOrderOrderDO::getMaterialName, reqVO.getMaterialName()) + .likeIfPresent(EntrustOrderOrderDO::getContractName, reqVO.getContractName()) + .eqIfPresent(EntrustOrderOrderDO::getTenantNumber, reqVO.getTenantNumber()) + .betweenIfPresent(EntrustOrderOrderDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(EntrustOrderOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) + .likeIfPresent(EntrustOrderOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) + .eqIfPresent(EntrustOrderOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) + .likeIfPresent(EntrustOrderOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName()) + .likeIfPresent(EntrustOrderOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName()) + .eqIfPresent(EntrustOrderOrderDO::getErpStatus, reqVO.getErpStatus()) + .eqIfPresent(EntrustOrderOrderDO::getCause, reqVO.getCause()) + .eqIfPresent(EntrustOrderOrderDO::getStatus, reqVO.getStatus()) + .likeIfPresent(EntrustOrderOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName()) + .orderByDesc(EntrustOrderOrderDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java new file mode 100644 index 00000000..68d42686 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java @@ -0,0 +1,66 @@ +package com.zt.plat.module.contractorder.service.entrustorder; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO; +import jakarta.validation.*; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 委托加工订单明细 Service 接口 + * + * @author 后台管理-1 + */ +public interface EntrustOrderDetailService { + + /** + * 创建委托加工订单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + EntrustOrderDetailRespVO createEntrustOrderDetail(@Valid EntrustOrderDetailSaveReqVO createReqVO); + + /** + * 更新委托加工订单明细 + * + * @param updateReqVO 更新信息 + */ + void updateEntrustOrderDetail(@Valid EntrustOrderDetailSaveReqVO updateReqVO); + + /** + * 删除委托加工订单明细 + * + * @param id 编号 + */ + void deleteEntrustOrderDetail(Long id); + + /** + * 批量删除委托加工订单明细 + * + * @param ids 编号 + */ + void deleteEntrustOrderDetailListByIds(List ids); + + /** + * 获得委托加工订单明细 + * + * @param id 编号 + * @return 委托加工订单明细 + */ + EntrustOrderDetailDO getEntrustOrderDetail(Long id); + + /** + * 获得委托加工订单明细分页 + * + * @param pageReqVO 分页查询 + * @return 委托加工订单明细分页 + */ + PageResult getEntrustOrderDetailPage(EntrustOrderDetailPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java new file mode 100644 index 00000000..5a121cbe --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java @@ -0,0 +1,95 @@ +package com.zt.plat.module.contractorder.service.entrustorder; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderDetailDO; +import com.zt.plat.module.contractorder.dal.mysql.entrustorder.EntrustOrderDetailMapper; +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.entrustorder.ErrorCodeConstants.ENTRUST_ORDER_DETAIL_NOT_EXISTS; + + +/** + * 委托加工订单明细 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService { + + @Resource + private EntrustOrderDetailMapper entrustOrderDetailMapper; + + @Override + public EntrustOrderDetailRespVO createEntrustOrderDetail(EntrustOrderDetailSaveReqVO createReqVO) { + // 插入 + EntrustOrderDetailDO entrustOrderDetail = BeanUtils.toBean(createReqVO, EntrustOrderDetailDO.class); + entrustOrderDetailMapper.insert(entrustOrderDetail); + // 返回 + return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); + } + + @Override + public void updateEntrustOrderDetail(EntrustOrderDetailSaveReqVO updateReqVO) { + // 校验存在 + validateEntrustOrderDetailExists(updateReqVO.getId()); + // 更新 + EntrustOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderDetailDO.class); + entrustOrderDetailMapper.updateById(updateObj); + } + + @Override + public void deleteEntrustOrderDetail(Long id) { + // 校验存在 + validateEntrustOrderDetailExists(id); + // 删除 + entrustOrderDetailMapper.deleteById(id); + } + + @Override + public void deleteEntrustOrderDetailListByIds(List ids) { + // 校验存在 + validateEntrustOrderDetailExists(ids); + // 删除 + entrustOrderDetailMapper.deleteByIds(ids); + } + + private void validateEntrustOrderDetailExists(List ids) { + List list = entrustOrderDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(ENTRUST_ORDER_DETAIL_NOT_EXISTS); + } + } + + private void validateEntrustOrderDetailExists(Long id) { + if (entrustOrderDetailMapper.selectById(id) == null) { + throw exception(ENTRUST_ORDER_DETAIL_NOT_EXISTS); + } + } + + @Override + public EntrustOrderDetailDO getEntrustOrderDetail(Long id) { + return entrustOrderDetailMapper.selectById(id); + } + + @Override + public PageResult getEntrustOrderDetailPage(EntrustOrderDetailPageReqVO pageReqVO) { + return entrustOrderDetailMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java new file mode 100644 index 00000000..fb5b5845 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java @@ -0,0 +1,95 @@ +package com.zt.plat.module.contractorder.service.entrustorder; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * 采购订单 Service 接口 + * + * @author 后台管理-1 + */ +public interface EntrustOrderOrderService { + + /** + * 创建采购订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + EntrustOrderOrderRespVO createEntrustOrderOrder(@Valid EntrustOrderOrderSaveReqVO createReqVO); + + /** + * 更新采购订单 + * + * @param updateReqVO 更新信息 + */ + void updateEntrustOrderOrder(@Valid EntrustOrderOrderSaveReqVO updateReqVO); + + /** + * 删除采购订单 + * + * @param id 编号 + */ + void deleteEntrustOrderOrder(Long id); + + /** + * 批量删除采购订单 + * + * @param ids 编号 + */ + void deleteEntrustOrderOrderListByIds(List ids); + + /** + * 获得采购订单 + * + * @param id 编号 + * @return 采购订单 + */ + EntrustOrderOrderDO getEntrustOrderOrder(Long id); + + /** + * 获得采购订单分页 + * + * @param pageReqVO 分页查询 + * @return 采购订单分页 + */ + PageResult getEntrustOrderOrderPage(EntrustOrderOrderPageReqVO pageReqVO); + /** + * 关联订单 + * + * @param req 关联订单请求 + * @return 是否成功 + */ + boolean linkOrder(LinkOrderReqVO req); + /** + * 获取上或下游订单 + * + * @param reqVO 查询条件 + * @return 上或下游订单 + */ + List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO); + /** + * 获取关联订单 + * + * @param reqVO 查询条件 + * @return 关联订单 + */ + List getBindOrderByOrder(DownOrUpOrderReqVO reqVO); + /** + * 关闭订单 + * + * @param id 编号 + * @return 是否成功 + */ + boolean closeOrder(Long id); + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java new file mode 100644 index 00000000..8d7f7b01 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java @@ -0,0 +1,199 @@ +package com.zt.plat.module.contractorder.service.entrustorder; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderRespVO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +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.entrustorder.EntrustOrderOrderMapper; +import com.zt.plat.module.contractorder.enums.contract.DictEnum; +import com.zt.plat.module.contractorder.service.contract.ContractService; +import lombok.extern.slf4j.Slf4j; +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.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; +import static com.zt.plat.module.contractorder.enums.entrustorder.ErrorCodeConstants.ENTRUST_ORDER_NOT_EXISTS; +import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS; + + +/** + * 采购订单 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +@Slf4j +public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderService { + + @Resource + private EntrustOrderOrderMapper entrustOrderOrderMapper; + + @Resource + private SystemRelativityMapper systemRelativityMapper; + + + @Resource + private ContractService contractService; + + @Override + public EntrustOrderOrderRespVO createEntrustOrderOrder(EntrustOrderOrderSaveReqVO createReqVO) { + // 插入 + EntrustOrderOrderDO EntrustOrderOrder = BeanUtils.toBean(createReqVO, EntrustOrderOrderDO.class); + entrustOrderOrderMapper.insert(EntrustOrderOrder); + // 返回 + return BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class); + } + + @Override + public void updateEntrustOrderOrder(EntrustOrderOrderSaveReqVO updateReqVO) { + // 校验存在 + validateEntrustOrderOrderExists(updateReqVO.getId()); + // 更新 + EntrustOrderOrderDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderOrderDO.class); + entrustOrderOrderMapper.updateById(updateObj); + } + + @Override + public void deleteEntrustOrderOrder(Long id) { + // 校验存在 + validateEntrustOrderOrderExists(id); + // 删除 + entrustOrderOrderMapper.deleteById(id); + } + + @Override + public void deleteEntrustOrderOrderListByIds(List ids) { + // 校验存在 + validateEntrustOrderOrderExists(ids); + // 删除 + entrustOrderOrderMapper.deleteByIds(ids); + } + + private void validateEntrustOrderOrderExists(List ids) { + List list = entrustOrderOrderMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(ENTRUST_ORDER_NOT_EXISTS); + } + } + + private void validateEntrustOrderOrderExists(Long id) { + if (entrustOrderOrderMapper.selectById(id) == null) { + throw exception(ENTRUST_ORDER_NOT_EXISTS); + } + } + + @Override + public EntrustOrderOrderDO getEntrustOrderOrder(Long id) { + return entrustOrderOrderMapper.selectById(id); + } + + @Override + public PageResult getEntrustOrderOrderPage(EntrustOrderOrderPageReqVO pageReqVO) { + return entrustOrderOrderMapper.selectPage(pageReqVO); + } + + @Override + public boolean linkOrder(LinkOrderReqVO req) { + SystemRelativityDO saveDO = new SystemRelativityDO(); + saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); + saveDO.setUpId(req.getUpOrderId()); + saveDO.setDownId(req.getDownOrderId()); + //判断订单有没有关联过 + if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { + throw exception(CONTRACT_ORDER_EXISTS); + } + return systemRelativityMapper.insert(saveDO) > 0; + } + + @Override + public List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) { + EntrustOrderOrderDO entrustOrderOrderDO = entrustOrderOrderMapper.selectById(reqVO.getOrderId()); + if (entrustOrderOrderDO == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + String contractNumber = entrustOrderOrderDO.getContractNumber();// 合同号 + ContractRespVO contractRespVO = contractService.getBySystemContractNumber(contractNumber); + + ContractRespVO upRelation = null; + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + upRelation = contractService.getUpRelation(contractRespVO.getId()); + } else { + //下游 + log.info("获取下游订单"); + upRelation = contractService.getDownRelation(contractRespVO.getId()); + } + List orderList = new ArrayList<>(); + if (upRelation != null) { + String systemContractNumber = upRelation.getSystemContractNumber(); + + List entrustOrderOrderDOS = entrustOrderOrderMapper.selectList(new LambdaQueryWrapper().eq(EntrustOrderOrderDO::getContractNumber, systemContractNumber)); + entrustOrderOrderDOS.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()); + downOrUpOrderRespVO.setOrder(BeanUtils.toBean(p, PurchaseOrderRespVO.class)); + orderList.add(downOrUpOrderRespVO); + } + ); + + } + return orderList; + } + + @Override + public List getBindOrderByOrder(DownOrUpOrderReqVO reqVO) { + List orderList = new ArrayList<>(); + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getDownId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + List entrustOrderOrderDOS = entrustOrderOrderMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getUpId).toList()); + orderList = BeanUtils.toBean(entrustOrderOrderDOS, EntrustOrderOrderRespVO.class); + } + } else { + //下游 + log.info("获取下游订单"); + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + List purchaseOrderDOS = entrustOrderOrderMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getDownId).toList()); + orderList = BeanUtils.toBean(purchaseOrderDOS, EntrustOrderOrderRespVO.class); + } + } + return orderList; + } + + @Override + public boolean closeOrder(Long id) { + EntrustOrderOrderDO updateObj = new EntrustOrderOrderDO(); + updateObj.setStatus("closed"); + return entrustOrderOrderMapper.updateById(updateObj) > 0; + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java index 3c2c3d99..5b04b4c8 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java @@ -67,9 +67,17 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { } private void setElemInfo(PrchOrdDtlDO prchOrdDtl) { + if (prchOrdDtl.getElemAbbr() == null){ + return; + } ElementDO elementBySymbol = elementService.getElementBySymbol(prchOrdDtl.getElemAbbr()); - prchOrdDtl.setElemName(elementBySymbol.getName()); - prchOrdDtl.setElemCdg(elementBySymbol.getCoding()); + if (elementBySymbol != null){ + prchOrdDtl.setElemName(elementBySymbol.getName()); + prchOrdDtl.setElemCdg(elementBySymbol.getCoding()); + }else { + log.warn("元素【{}】不存在,订单ID【{}】", prchOrdDtl.getElemAbbr(), prchOrdDtl.getOrdId()); + } + } @Override diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java index fb405743..e1b8a789 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -14,6 +14,7 @@ import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlD import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; import com.zt.plat.module.receivedeliver.api.bill.BillMainApi; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -38,6 +39,7 @@ import static com.zt.plat.module.contractorder.enums.salesorder.ErrorCodeConstan */ @Service @Validated +@Slf4j public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { @Resource @@ -61,10 +63,16 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { } private void setElemInfo(SalesOrderDetailDO salesOrderDetail) { + if (salesOrderDetail.getElementAbbreviation() == null) { + return; + } ElementDO elementBySymbol = elementService.getElementBySymbol(salesOrderDetail.getElementAbbreviation()); - salesOrderDetail.setElementName(elementBySymbol.getName()); - salesOrderDetail.setElementNumber(elementBySymbol.getCoding()); - + if (elementBySymbol!=null){ + salesOrderDetail.setElementName(elementBySymbol.getName()); + salesOrderDetail.setElementNumber(elementBySymbol.getCoding()); + }else { + log.warn("元素编号【{}】不存在,订单号【{}】", salesOrderDetail.getElementAbbreviation(), salesOrderDetail.getOrderId()); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/entrustorder/EntrustOrderDetailMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/entrustorder/EntrustOrderDetailMapper.xml new file mode 100644 index 00000000..e381fa9f --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/entrustorder/EntrustOrderDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file