来料加工订单

This commit is contained in:
潘荣晟
2026-01-23 18:31:07 +08:00
parent 7e08ec9ec4
commit d2b814bb7d
32 changed files with 2375 additions and 42 deletions

View File

@@ -0,0 +1,17 @@
package com.zt.plat.module.contractorder.enums.originalmaterialprocessing;
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 ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS = new ErrorCode(1_027_130_000, "来料加工订单明细不存在");
ErrorCode ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS = new ErrorCode(1_027_130_001, "来料加工订单不存在");
}

View File

@@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
@@ -29,18 +30,19 @@ 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 = "管理后台 - 采购订单")
@Tag(name = "管理后台 - 委托订单")
@RestController
@RequestMapping("/bse/purchase-order")
@RequestMapping("/base/entrust-order")
@Validated
public class EntrustOrderOrderController implements BusinessControllerMarker {
@@ -49,14 +51,14 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
private EntrustOrderOrderService entrustOrderOrderService;
@PostMapping("/create")
@Operation(summary = "创建采购订单")
@Operation(summary = "创建委托订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:create')")
public CommonResult<EntrustOrderOrderRespVO> createEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO createReqVO) {
return success(entrustOrderOrderService.createEntrustOrderOrder(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新采购订单")
@Operation(summary = "更新委托订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
public CommonResult<Boolean> updateEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO updateReqVO) {
entrustOrderOrderService.updateEntrustOrderOrder(updateReqVO);
@@ -64,7 +66,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
}
@DeleteMapping("/delete")
@Operation(summary = "删除采购订单")
@Operation(summary = "删除委托订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
public CommonResult<Boolean> deleteEntrustOrderOrder(@RequestParam("id") Long id) {
@@ -74,42 +76,53 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除采购订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
@Operation(summary = "批量删除委托订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
public CommonResult<Boolean> deleteEntrustOrderOrderList(@RequestBody BatchDeleteReqVO req) {
entrustOrderOrderService.deleteEntrustOrderOrderListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得采购订单")
@Operation(summary = "获得委托订单")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:query')")
public CommonResult<EntrustOrderOrderRespVO> getEntrustOrderOrder(@RequestParam("id") Long id) {
EntrustOrderOrderDO EntrustOrderOrder = entrustOrderOrderService.getEntrustOrderOrder(id);
return success(BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class));
EntrustOrderOrderRespVO bean = BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class);
if (bean != null) {
bean.setEntrustOrderDetails(entrustOrderOrderService.getEntrustOrderDetailListByOrderId(bean.getId()));
}
return success(bean);
}
@GetMapping("/page")
@Operation(summary = "获得采购订单分页")
@Operation(summary = "获得委托订单分页")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:query')")
public CommonResult<PageResult<EntrustOrderOrderRespVO>> getEntrustOrderOrderPage(@Valid EntrustOrderOrderPageReqVO pageReqVO) {
PageResult<EntrustOrderOrderDO> pageResult = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, EntrustOrderOrderRespVO.class));
PageResult<EntrustOrderOrderRespVO> bean = BeanUtils.toBean(pageResult, EntrustOrderOrderRespVO.class);
if (bean != null && !bean.getList().isEmpty()) {
bean.getList().forEach(item -> {
item.setEntrustOrderDetails(entrustOrderOrderService.getEntrustOrderDetailListByOrderId(item.getId()));
});
}
return success(bean);
}
@GetMapping("/export-excel")
@Operation(summary = "导出采购订单 Excel")
@Operation(summary = "导出委托订单 Excel")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportEntrustOrderOrderExcel(@Valid EntrustOrderOrderPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<EntrustOrderOrderDO> list = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "采购订单.xls", "数据", EntrustOrderOrderRespVO.class,
BeanUtils.toBean(list, EntrustOrderOrderRespVO.class));
ExcelUtils.write(response, "委托订单.xls", "数据", EntrustOrderOrderRespVO.class,
BeanUtils.toBean(list, EntrustOrderOrderRespVO.class));
}
//关联订单
//关联订单
@PostMapping("/link-order")
@@ -123,7 +136,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
@Operation(summary = "根据订单id和方式获取上或下游订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
return success( entrustOrderOrderService.getOrderByOrderIdAndType(reqVO));
return success(entrustOrderOrderService.getOrderByOrderIdAndType(reqVO));
}
@@ -138,8 +151,9 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
@PostMapping("/close-order")
@Operation(summary = "关闭订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update')")
public CommonResult<Boolean> closeOrder(@RequestParam("id") Long id) {
return success(entrustOrderOrderService.closeOrder(id));
public CommonResult<Boolean> closeOrder(@RequestBody List<Long> ids) {
entrustOrderOrderService.closeOrder(ids);
return success(true);
}
}

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -17,6 +18,9 @@ public class EntrustOrderDetailPageReqVO extends PageParam {
@Schema(description = "收货工厂名称", example = "赵六")
private String receiveFactoryName;
@Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625")
private Long orderId;
@Schema(description = "收货工厂编码")
private String receiveFactoryNumber;
@@ -59,4 +63,27 @@ public class EntrustOrderDetailPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "税码")
private String taxNumber;
//科目类别
@Schema(description = "科目类别")
private String accountingItemType;
//MTRL_CPNT_NUM 物料组
@Schema(description = "物料组")
private String materialGroup;
//RET_ITM 退货标识
@Schema(description = "退货标识")
private String returnItem;
//免费标识FREE_ITM
@Schema(description = "免费标识")
private String freeItem;
//VNDB 外部行号
@Schema(description = "外部行号")
private String externalLineNumber;
//ACTS_CTGR_DTL 科目分配
@Schema(description = "科目分配")
private String accountingItemAllocation;
@Schema(description = "备注")
private String remark;
}

View File

@@ -17,6 +17,8 @@ public class EntrustOrderDetailRespVO {
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625")
private Long orderId;
@Schema(description = "收货工厂名称", example = "赵六")
@ExcelProperty("收货工厂名称")
private String receiveFactoryName;
@@ -73,4 +75,35 @@ public class EntrustOrderDetailRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "税码")
@ExcelProperty("税码")
private String taxNumber;
//科目类别
@Schema(description = "科目类别")
@ExcelProperty("科目类别")
private String accountingItemType;
//MTRL_CPNT_NUM 物料组
@Schema(description = "物料组")
@ExcelProperty("物料组")
private String materialGroup;
//RET_ITM 退货标识
@Schema(description = "退货标识")
@ExcelProperty("退货标识")
private String returnItem;
//免费标识FREE_ITM
@Schema(description = "免费标识")
@ExcelProperty("免费标识")
private String freeItem;
//VNDB 外部行号
@Schema(description = "外部行号")
@ExcelProperty("外部行号")
private String externalLineNumber;
//ACTS_CTGR_DTL 科目分配
@Schema(description = "科目分配")
@ExcelProperty("科目分配")
private String accountingItemAllocation;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -12,9 +12,13 @@ import java.time.LocalDateTime;
@Data
public class EntrustOrderDetailSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625")
private Long id;
@Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625")
private Long orderId;
@Schema(description = "收货工厂名称", example = "赵六")
private String receiveFactoryName;
@@ -54,4 +58,27 @@ public class EntrustOrderDetailSaveReqVO {
@Schema(description = "短文本")
private String shortText;
@Schema(description = "税码")
private String taxNumber;
//科目类别
@Schema(description = "科目类别")
private String accountingItemType;
//MTRL_CPNT_NUM 物料组
@Schema(description = "物料组")
private String materialGroup;
//RET_ITM 退货标识
@Schema(description = "退货标识")
private String returnItem;
//免费标识FREE_ITM
@Schema(description = "免费标识")
private String freeItem;
//VNDB 外部行号
@Schema(description = "外部行号")
private String externalLineNumber;
//ACTS_CTGR_DTL 科目分配
@Schema(description = "科目分配")
private String accountingItemAllocation;
@Schema(description = "备注")
private String remark;
}

View File

@@ -20,7 +20,7 @@ public class EntrustOrderOrderPageReqVO extends PageParam {
private String systemOrderNumber;
@Schema(description = "公司编码;推送ERP必须")
private String companyNumber;
private String cpName;
@Schema(description = "客商编码;推送ERP必须")
private String supplierNumber;

View File

@@ -5,6 +5,8 @@ import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 采购订单 Response VO")
@@ -26,7 +28,7 @@ public class EntrustOrderOrderRespVO {
@Schema(description = "公司编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("公司编码;推送ERP必须")
private String companyNumber;
private String cpName;
@Schema(description = "客商编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("客商编码;推送ERP必须")
@@ -160,4 +162,8 @@ public class EntrustOrderOrderRespVO {
@ExcelProperty("采购组名称")
private String purchaseGroupName;
@Schema(description = "委托加工订单明细")
@ExcelProperty("委托加工订单明细")
private List<EntrustOrderDetailRespVO> entrustOrderDetails;
}

View File

@@ -23,7 +23,7 @@ public class EntrustOrderOrderSaveReqVO {
@Schema(description = "公司编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
//@NotEmpty(message = "公司编码;推送ERP必须不能为空")
private String companyNumber;
private String cpName;
@Schema(description = "客商编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
//@NotEmpty(message = "客商编码;推送ERP必须不能为空")

View File

@@ -0,0 +1,151 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
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.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO;
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 com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO;
import com.zt.plat.module.contractorder.service.originalmaterialprocessing.OriginalMaterialProcessingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
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/original-material-processing")
@Validated
public class OriginalMaterialProcessingController {
@Resource
private OriginalMaterialProcessingService originalMaterialProcessingService;
@PostMapping("/create")
@Operation(summary = "创建来料加工订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:create')")
public CommonResult<OriginalMaterialProcessingRespVO> createEntrustOrderOrder(@Valid @RequestBody OriginalMaterialProcessingSaveReqVO createReqVO) {
return success(originalMaterialProcessingService.createOriginalMaterialProcessing(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新来料加工订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
public CommonResult<Boolean> updateEntrustOrderOrder(@Valid @RequestBody OriginalMaterialProcessingSaveReqVO updateReqVO) {
originalMaterialProcessingService.updateOriginalMaterialProcessing(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除来料加工订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
public CommonResult<Boolean> deleteEntrustOrderOrder(@RequestParam("id") Long id) {
originalMaterialProcessingService.deleteOriginalMaterialProcessing(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除来料加工订单")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')")
public CommonResult<Boolean> deleteEntrustOrderOrderList(@RequestBody BatchDeleteReqVO req) {
originalMaterialProcessingService.deleteOriginalMaterialProcessingListByIds(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<OriginalMaterialProcessingRespVO> getEntrustOrderOrder(@RequestParam("id") Long id) {
OriginalMaterialProcessingDO originalMaterialProcessingDO = originalMaterialProcessingService.getOriginalMaterialProcessing(id);
OriginalMaterialProcessingRespVO bean = BeanUtils.toBean(originalMaterialProcessingDO, OriginalMaterialProcessingRespVO.class);
if (bean != null) {
bean.setDetails(originalMaterialProcessingService.getOriginalMaterialProcessingDetailListByOrderId(bean.getId()));
}
return success(bean);
}
@GetMapping("/page")
@Operation(summary = "获得来料加工订单分页")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:query')")
public CommonResult<PageResult<OriginalMaterialProcessingRespVO>> getEntrustOrderOrderPage(@Valid OriginalMaterialProcessingPageReqVO pageReqVO) {
PageResult<OriginalMaterialProcessingDO> pageResult = originalMaterialProcessingService.getOriginalMaterialProcessingPage(pageReqVO);
PageResult<OriginalMaterialProcessingRespVO> bean = BeanUtils.toBean(pageResult, OriginalMaterialProcessingRespVO.class);
if (bean != null && !bean.getList().isEmpty()) {
bean.getList().forEach(item -> {
item.setDetails(originalMaterialProcessingService.getOriginalMaterialProcessingDetailListByOrderId(item.getId()));
});
}
return success(bean);
}
@GetMapping("/export-excel")
@Operation(summary = "导出来料加工订单 Excel")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportEntrustOrderOrderExcel(@Valid OriginalMaterialProcessingPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<OriginalMaterialProcessingDO> list = originalMaterialProcessingService.getOriginalMaterialProcessingPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "来料加工订单.xls", "数据", OriginalMaterialProcessingRespVO.class,
BeanUtils.toBean(list, OriginalMaterialProcessingRespVO.class));
}
//关联订单
//关联订单
@PostMapping("/link-order")
@Operation(summary = "关联订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')")
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req) {
return success(originalMaterialProcessingService.linkOrder(req));
}
@PostMapping("/order-by-order-id-and-type")
@Operation(summary = "根据订单id和方式获取上或下游订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
return success(originalMaterialProcessingService.getOrderByOrderIdAndType(reqVO));
}
@PostMapping("/bound-order")
@Operation(summary = "获取已绑定的订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
public CommonResult<List<OriginalMaterialProcessingRespVO>> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) {
return success(originalMaterialProcessingService.getBindOrderByOrder(reqVO));
}
//关闭订单
@PostMapping("/close-order")
@Operation(summary = "关闭订单")
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update')")
public CommonResult<Boolean> closeOrder(@RequestBody List<Long> ids) {
originalMaterialProcessingService.closeOrder(ids);
return success(true);
}
}

View File

@@ -0,0 +1,110 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO;
import com.zt.plat.module.contractorder.service.originalmaterialprocessing.OriginalMaterialProcessingDetailService;
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/original-material-processing-detail")
@Validated
public class OriginalMaterialProcessingDetailController implements BusinessControllerMarker {
@Resource
private OriginalMaterialProcessingDetailService originalMaterialProcessingDetailService;
@PostMapping("/create")
@Operation(summary = "创建来料加工订单明细")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:create')")
public CommonResult<OriginalMaterialProcessingDetailRespVO> createOriginalMaterialProcessingDetail(@Valid @RequestBody OriginalMaterialProcessingDetailSaveReqVO createReqVO) {
return success(originalMaterialProcessingDetailService.createOriginalMaterialProcessingDetail(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新来料加工订单明细")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:update')")
public CommonResult<Boolean> updateOriginalMaterialProcessingDetail(@Valid @RequestBody OriginalMaterialProcessingDetailSaveReqVO updateReqVO) {
originalMaterialProcessingDetailService.updateOriginalMaterialProcessingDetail(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除来料加工订单明细")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:delete')")
public CommonResult<Boolean> deleteOriginalMaterialProcessingDetail(@RequestParam("id") Long id) {
originalMaterialProcessingDetailService.deleteOriginalMaterialProcessingDetail(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除来料加工订单明细")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:delete')")
public CommonResult<Boolean> deleteOriginalMaterialProcessingDetailList(@RequestBody BatchDeleteReqVO req) {
originalMaterialProcessingDetailService.deleteOriginalMaterialProcessingDetailListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得来料加工订单明细")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:query')")
public CommonResult<OriginalMaterialProcessingDetailRespVO> getOriginalMaterialProcessingDetail(@RequestParam("id") Long id) {
OriginalMaterialProcessingDetailDO originalMaterialProcessingDetail = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetail(id);
return success(BeanUtils.toBean(originalMaterialProcessingDetail, OriginalMaterialProcessingDetailRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得来料加工订单明细分页")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:query')")
public CommonResult<PageResult<OriginalMaterialProcessingDetailRespVO>> getOriginalMaterialProcessingDetailPage(@Valid OriginalMaterialProcessingDetailPageReqVO pageReqVO) {
PageResult<OriginalMaterialProcessingDetailDO> pageResult = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, OriginalMaterialProcessingDetailRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出来料加工订单明细 Excel")
@PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportOriginalMaterialProcessingDetailExcel(@Valid OriginalMaterialProcessingDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<OriginalMaterialProcessingDetailDO> list = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "来料加工订单明细.xls", "数据", OriginalMaterialProcessingDetailRespVO.class,
BeanUtils.toBean(list, OriginalMaterialProcessingDetailRespVO.class));
}
}

View File

@@ -0,0 +1,107 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.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 OriginalMaterialProcessingDetailPageReqVO extends PageParam {
@Schema(description = "订单ID", example = "21244")
private Long orderId;
@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 sendFactoryName;
@Schema(description = "发货工厂编码")
private String sendFactoryNumber;
@Schema(description = "发货库位名称", example = "赵六")
private String sendWarehouseName;
@Schema(description = "发货库位编码")
private String sendWarehouseNumber;
@Schema(description = "物料名称", example = "李四")
private String materialName;
@Schema(description = "物料编码")
private String materialNumber;
@Schema(description = "计量单位")
private String uom;
@Schema(description = "暂估数量")
private BigDecimal forecastQuantity;
@Schema(description = "含税单价", example = "971")
private BigDecimal inTaxUnitPrice;
@Schema(description = "税码")
private String taxNumber;
@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 = "税分类")
private String taxCategory;
@Schema(description = "项目类别")
private String projectCategory;
@Schema(description = "装运地点")
private String shippingPlace;
@Schema(description = "物料科目分配组")
private String materialAssignGroup;
@Schema(description = "总额")
private BigDecimal gross;
@Schema(description = "金属元素名称", example = "王五")
private String metalElementName;
@Schema(description = "金属元素缩写")
private String metalElementAbbreviation;
@Schema(description = "备注")
private String remark;
@Schema(description = "价格条件")
private String priceCondition;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@@ -0,0 +1,136 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.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 OriginalMaterialProcessingDetailRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12973")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "订单ID", example = "21244")
@ExcelProperty("订单ID")
private Long orderId;
@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 sendFactoryName;
@Schema(description = "发货工厂编码")
@ExcelProperty("发货工厂编码")
private String sendFactoryNumber;
@Schema(description = "发货库位名称", example = "赵六")
@ExcelProperty("发货库位名称")
private String sendWarehouseName;
@Schema(description = "发货库位编码")
@ExcelProperty("发货库位编码")
private String sendWarehouseNumber;
@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 = "971")
@ExcelProperty("含税单价")
private BigDecimal inTaxUnitPrice;
@Schema(description = "税码")
@ExcelProperty("税码")
private String taxNumber;
@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 String taxCategory;
@Schema(description = "项目类别")
@ExcelProperty("项目类别")
private String projectCategory;
@Schema(description = "装运地点")
@ExcelProperty("装运地点")
private String shippingPlace;
@Schema(description = "物料科目分配组")
@ExcelProperty("物料科目分配组")
private String materialAssignGroup;
@Schema(description = "总额")
@ExcelProperty("总额")
private BigDecimal gross;
@Schema(description = "金属元素名称", example = "王五")
@ExcelProperty("金属元素名称")
private String metalElementName;
@Schema(description = "金属元素缩写")
@ExcelProperty("金属元素缩写")
private String metalElementAbbreviation;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
@Schema(description = "价格条件")
@ExcelProperty("价格条件")
private String priceCondition;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,102 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.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 OriginalMaterialProcessingDetailSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12973")
private Long id;
@Schema(description = "订单ID", example = "21244")
private Long orderId;
@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 sendFactoryName;
@Schema(description = "发货工厂编码")
private String sendFactoryNumber;
@Schema(description = "发货库位名称", example = "赵六")
private String sendWarehouseName;
@Schema(description = "发货库位编码")
private String sendWarehouseNumber;
@Schema(description = "物料名称", example = "李四")
private String materialName;
@Schema(description = "物料编码")
private String materialNumber;
@Schema(description = "计量单位")
private String uom;
@Schema(description = "暂估数量")
private BigDecimal forecastQuantity;
@Schema(description = "含税单价", example = "971")
private BigDecimal inTaxUnitPrice;
@Schema(description = "税码")
private String taxNumber;
@Schema(description = "交货起始日期")
private LocalDateTime deliveryCargoBeginDate;
@Schema(description = "交货截止日期")
private LocalDateTime deliveryCargoEndDate;
@Schema(description = "是否启用")
private Boolean isEnable;
@Schema(description = "短文本")
private String shortText;
@Schema(description = "税分类")
private String taxCategory;
@Schema(description = "项目类别")
private String projectCategory;
@Schema(description = "装运地点")
private String shippingPlace;
@Schema(description = "物料科目分配组")
private String materialAssignGroup;
@Schema(description = "总额")
private BigDecimal gross;
@Schema(description = "金属元素名称", example = "王五")
private String metalElementName;
@Schema(description = "金属元素缩写")
private String metalElementAbbreviation;
@Schema(description = "备注")
private String remark;
@Schema(description = "价格条件")
private String priceCondition;
}

View File

@@ -0,0 +1,125 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.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 = "原始物料处理分页查询ReqVO")
@Data
public class OriginalMaterialProcessingPageReqVO extends PageParam {
@Schema(description = "ERP订单号")
private String orderSAPNumber;
@Schema(description = "订单号")
private String systemOrderNumber;
@Schema(description = "公司编码;推送ERP必须")
private String cpName;
@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;
}

View File

@@ -0,0 +1,164 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo;
import com.alibaba.excel.annotation.ExcelProperty;
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 = "原始物料处理响应VO")
@Data
public class OriginalMaterialProcessingRespVO {
@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 cpName;
@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;
private List<OriginalMaterialProcessingDetailRespVO> details;
}

View File

@@ -0,0 +1,146 @@
package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo;
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 = "原始物料处理保存ReqVO")
@Data
public class OriginalMaterialProcessingSaveReqVO {
@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 cpName;
@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;
@Schema(description = "来料加工订单明细")
private List<OriginalMaterialProcessingDetailSaveReqVO> details;
}

View File

@@ -36,6 +36,11 @@ public class EntrustOrderDetailDO extends BusinessBaseDO {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 委托加工订单ID
*/
@TableField("ORD_ID")
private Long orderId;
/**
* 收货工厂名称
*/
@TableField("RCV_FACT_NAME")
@@ -101,4 +106,29 @@ public class EntrustOrderDetailDO extends BusinessBaseDO {
@TableField("SHRT_TXT")
private String shortText;
/**
* 税码
*/
@TableField("TAX_NUM")
private String taxNumber;
//科目类别
@TableField("ACTS_CTGR")
private String accountingItemType;
//MTRL_CPNT_NUM 物料组
@TableField("MTRL_CPNT_NUM")
private String materialGroup;
//RET_ITM 退货标识
@TableField("RET_ITM")
private String returnItem;
//免费标识FREE_ITM
@TableField("FREE_ITM")
private String freeItem;
//VNDB 外部行号
@TableField("VNDB")
private String externalLineNumber;
//ACTS_CTGR_DTL 科目分配
@TableField("ACTS_CTGR_DTL")
private String accountingItemAllocation;
@TableField("RMK")
private String remark;
}

View File

@@ -47,7 +47,7 @@ public class EntrustOrderOrderDO extends BusinessBaseDO {
* 公司编码;推送ERP必须
*/
@TableField("CPN_NUM")
private String companyNumber;
private String cpName;
/**
* 客商编码;推送ERP必须
*/
@@ -136,8 +136,8 @@ public class EntrustOrderOrderDO extends BusinessBaseDO {
/**
* 订单编码
*/
@TableField("ORD_NUM")
private String orderNumber;
// @TableField("ORD_NUM")
// private String orderNumber;
/**
* 系统合同编号
*/
@@ -208,5 +208,9 @@ public class EntrustOrderOrderDO extends BusinessBaseDO {
*/
@TableField("PRCH_GRP_NAME")
private String purchaseGroupName;
/**
* 是否需要审批
*/
@TableField("IS_PUSH")
private int isPush;
}

View File

@@ -0,0 +1,215 @@
package com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing;
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 OriginalMaterialProcessingDO 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 cpName;
/**
* 客商编码;推送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("IS_PUSH")
private int isPush;
}

View File

@@ -0,0 +1,180 @@
package com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
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 易门采购员测试账号
*/
@TableName("bse_orig_mtrl_prces_dtl")
@KeySequence("bse_orig_mtrl_prces_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class OriginalMaterialProcessingDetailDO extends BusinessBaseDO {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 订单ID
*/
@TableField("ORD_ID")
private Long orderId;
/**
* 收货工厂名称
*/
@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("SND_FACT_NAME")
private String sendFactoryName;
/**
* 发货工厂编码
*/
@TableField("SND_FACT_NUM")
private String sendFactoryNumber;
/**
* 发货库位名称
*/
@TableField("SND_WRH_NAME")
private String sendWarehouseName;
/**
* 发货库位编码
*/
@TableField("SND_WRH_NUM")
private String sendWarehouseNumber;
/**
* 物料名称
*/
@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("TAX_NUM")
private String taxNumber;
/**
* 交货起始日期
*/
@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;
/**
* 税分类
*/
@TableField("TAX_CTGR")
private String taxCategory;
/**
* 项目类别
*/
@TableField("PRJ_CTGR")
private String projectCategory;
/**
* 装运地点
*/
@TableField("SHPP_PLCE")
private String shippingPlace;
/**
* 物料科目分配组
*/
@TableField("MTRL_ASN_GRP")
private String materialAssignGroup;
/**
* 总额
*/
@TableField("GRS")
private BigDecimal gross;
/**
* 金属元素名称
*/
@TableField("MTL_ELEM_NAME")
private String metalElementName;
/**
* 金属元素缩写
*/
@TableField("MTL_ELEM_ABBR")
private String metalElementAbbreviation;
/**
* 备注
*/
@TableField("RMK")
private String remark;
/**
* 价格条件
*/
@TableField("PRC_CND")
private String priceCondition;
}

View File

@@ -21,20 +21,22 @@ public interface EntrustOrderDetailMapper extends BaseMapperX<EntrustOrderDetail
default PageResult<EntrustOrderDetailDO> selectPage(EntrustOrderDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<EntrustOrderDetailDO>()
.eqIfPresent(EntrustOrderDetailDO::getOrderId, reqVO.getOrderId())
.likeIfPresent(EntrustOrderDetailDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
.eqIfPresent(EntrustOrderDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
.likeIfPresent(EntrustOrderDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
.likeIfPresent(EntrustOrderDetailDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
.eqIfPresent(EntrustOrderDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
.likeIfPresent(EntrustOrderDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
.likeIfPresent(EntrustOrderDetailDO::getMaterialName, reqVO.getMaterialName())
.eqIfPresent(EntrustOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber())
.eqIfPresent(EntrustOrderDetailDO::getUom, reqVO.getUom())
.likeIfPresent(EntrustOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber())
.likeIfPresent(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())
.likeIfPresent(EntrustOrderDetailDO::getShortText, reqVO.getShortText())
.betweenIfPresent(EntrustOrderDetailDO::getCreateTime, reqVO.getCreateTime())
.likeIfPresent(EntrustOrderDetailDO::getRemark, reqVO.getRemark())
.orderByDesc(EntrustOrderDetailDO::getId));
}

View File

@@ -25,7 +25,7 @@ public interface EntrustOrderOrderMapper extends BaseMapperX<EntrustOrderOrderDO
return selectPage(reqVO, new LambdaQueryWrapperX<EntrustOrderOrderDO>()
.eqIfPresent(EntrustOrderOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
.eqIfPresent(EntrustOrderOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
.eqIfPresent(EntrustOrderOrderDO::getCompanyNumber, reqVO.getCompanyNumber())
.eqIfPresent(EntrustOrderOrderDO::getCpName, reqVO.getCpName())
.eqIfPresent(EntrustOrderOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
.likeIfPresent(EntrustOrderOrderDO::getSupplierName, reqVO.getSupplierName())
.eqIfPresent(EntrustOrderOrderDO::getType, reqVO.getType())
@@ -43,7 +43,7 @@ public interface EntrustOrderOrderMapper extends BaseMapperX<EntrustOrderOrderDO
.eqIfPresent(EntrustOrderOrderDO::getRemark, reqVO.getRemark())
.eqIfPresent(EntrustOrderOrderDO::getAgentNumber, reqVO.getAgentNumber())
.likeIfPresent(EntrustOrderOrderDO::getAgentName, reqVO.getAgentName())
.eqIfPresent(EntrustOrderOrderDO::getOrderNumber, reqVO.getOrderNumber())
// .eqIfPresent(EntrustOrderOrderDO::getOrderNumber, reqVO.getOrderNumber())
.eqIfPresent(EntrustOrderOrderDO::getContractNumber, reqVO.getContractNumber())
.eqIfPresent(EntrustOrderOrderDO::getMaterialNumber, reqVO.getMaterialNumber())
.likeIfPresent(EntrustOrderOrderDO::getMaterialName, reqVO.getMaterialName())

View File

@@ -0,0 +1,54 @@
package com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing;
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.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 来料加工订单明细 Mapper
*
* @author 易门采购员测试账号
*/
@Mapper
public interface OriginalMaterialProcessingDetailMapper extends BaseMapperX<OriginalMaterialProcessingDetailDO> {
default PageResult<OriginalMaterialProcessingDetailDO> selectPage(OriginalMaterialProcessingDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<OriginalMaterialProcessingDetailDO>()
.eqIfPresent(OriginalMaterialProcessingDetailDO::getOrderId, reqVO.getOrderId())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getSendFactoryName, reqVO.getSendFactoryName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getSendFactoryNumber, reqVO.getSendFactoryNumber())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getSendWarehouseName, reqVO.getSendWarehouseName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getSendWarehouseNumber, reqVO.getSendWarehouseNumber())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getMaterialName, reqVO.getMaterialName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getMaterialNumber, reqVO.getMaterialNumber())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getUom, reqVO.getUom())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getForecastQuantity, reqVO.getForecastQuantity())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getInTaxUnitPrice, reqVO.getInTaxUnitPrice())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getTaxNumber, reqVO.getTaxNumber())
.betweenIfPresent(OriginalMaterialProcessingDetailDO::getDeliveryCargoBeginDate, reqVO.getDeliveryCargoBeginDate())
.betweenIfPresent(OriginalMaterialProcessingDetailDO::getDeliveryCargoEndDate, reqVO.getDeliveryCargoEndDate())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getIsEnable, reqVO.getIsEnable())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getShortText, reqVO.getShortText())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getTaxCategory, reqVO.getTaxCategory())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getProjectCategory, reqVO.getProjectCategory())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getShippingPlace, reqVO.getShippingPlace())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getMaterialAssignGroup, reqVO.getMaterialAssignGroup())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getGross, reqVO.getGross())
.likeIfPresent(OriginalMaterialProcessingDetailDO::getMetalElementName, reqVO.getMetalElementName())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getMetalElementAbbreviation, reqVO.getMetalElementAbbreviation())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getRemark, reqVO.getRemark())
.eqIfPresent(OriginalMaterialProcessingDetailDO::getPriceCondition, reqVO.getPriceCondition())
.betweenIfPresent(OriginalMaterialProcessingDetailDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(OriginalMaterialProcessingDetailDO::getId));
}
}

View File

@@ -0,0 +1,53 @@
package com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing;
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.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OriginalMaterialProcessingMapper extends BaseMapperX<OriginalMaterialProcessingDO> {
default PageResult<OriginalMaterialProcessingDO> selectPage(OriginalMaterialProcessingPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<OriginalMaterialProcessingDO>()
.eqIfPresent(OriginalMaterialProcessingDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getCpName, reqVO.getCpName())
.eqIfPresent(OriginalMaterialProcessingDO::getSupplierNumber, reqVO.getSupplierNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getSupplierName, reqVO.getSupplierName())
.eqIfPresent(OriginalMaterialProcessingDO::getType, reqVO.getType())
.eqIfPresent(OriginalMaterialProcessingDO::getVoucherDate, reqVO.getVoucherDate())
.eqIfPresent(OriginalMaterialProcessingDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration())
.likeIfPresent(OriginalMaterialProcessingDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
.eqIfPresent(OriginalMaterialProcessingDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
.eqIfPresent(OriginalMaterialProcessingDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getPurchaseGroup, reqVO.getPurchaseGroup())
.eqIfPresent(OriginalMaterialProcessingDO::getCurrencyNumber, reqVO.getCurrencyNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getExchangeRate, reqVO.getExchangeRate())
.eqIfPresent(OriginalMaterialProcessingDO::getPaperContractNumber, reqVO.getPaperContractNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getAgreementNumber, reqVO.getAgreementNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getRemark, reqVO.getRemark())
.eqIfPresent(OriginalMaterialProcessingDO::getAgentNumber, reqVO.getAgentNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getAgentName, reqVO.getAgentName())
.eqIfPresent(OriginalMaterialProcessingDO::getContractNumber, reqVO.getContractNumber())
.eqIfPresent(OriginalMaterialProcessingDO::getMaterialNumber, reqVO.getMaterialNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getMaterialName, reqVO.getMaterialName())
.likeIfPresent(OriginalMaterialProcessingDO::getContractName, reqVO.getContractName())
.eqIfPresent(OriginalMaterialProcessingDO::getTenantNumber, reqVO.getTenantNumber())
.betweenIfPresent(OriginalMaterialProcessingDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(OriginalMaterialProcessingDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName())
.eqIfPresent(OriginalMaterialProcessingDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber())
.likeIfPresent(OriginalMaterialProcessingDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName())
.likeIfPresent(OriginalMaterialProcessingDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName())
.eqIfPresent(OriginalMaterialProcessingDO::getErpStatus, reqVO.getErpStatus())
.eqIfPresent(OriginalMaterialProcessingDO::getCause, reqVO.getCause())
.eqIfPresent(OriginalMaterialProcessingDO::getStatus, reqVO.getStatus())
.likeIfPresent(OriginalMaterialProcessingDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())
.orderByDesc(OriginalMaterialProcessingDO::getId));
}
}

View File

@@ -63,4 +63,24 @@ public interface EntrustOrderDetailService {
*/
PageResult<EntrustOrderDetailDO> getEntrustOrderDetailPage(EntrustOrderDetailPageReqVO pageReqVO);
/**
* 批量插入委托加工订单明细
*
* @param entrustOrderOrderDetails 委托加工订单明细
* @return 插入结果
*/
List<EntrustOrderDetailRespVO> insertBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails);
/**
* 批量更新委托加工订单明细
*
* @param entrustOrderOrderDetails 委托加工订单明细
*/
void updateBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails);
/**
* 根据订单id获得委托加工订单明细列表
*
* @param orderId 订单编号
* @return 委托加工订单明细列表
*/
List<EntrustOrderDetailRespVO> getEntrustOrderDetailListByOrderId(Long orderId);
}

View File

@@ -92,4 +92,22 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
return entrustOrderDetailMapper.selectPage(pageReqVO);
}
@Override
public List<EntrustOrderDetailRespVO> insertBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
List<EntrustOrderDetailDO> entrustOrderDetail = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class);
entrustOrderDetailMapper.insertBatch(entrustOrderDetail);
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
}
@Override
public void updateBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
List<EntrustOrderDetailDO> updateList = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class);
entrustOrderDetailMapper.insertOrUpdate(updateList);
}
@Override
public List<EntrustOrderDetailRespVO> getEntrustOrderDetailListByOrderId(Long orderId) {
return BeanUtils.toBean(entrustOrderDetailMapper.selectList(EntrustOrderDetailDO::getOrderId, orderId), EntrustOrderDetailRespVO.class);
}
}

View File

@@ -1,6 +1,7 @@
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.EntrustOrderDetailRespVO;
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;
@@ -87,9 +88,9 @@ public interface EntrustOrderOrderService {
/**
* 关闭订单
*
* @param id 编号
* @return 是否成功
* @param ids 编号
*/
boolean closeOrder(Long id);
void closeOrder(List<Long> ids);
List<EntrustOrderDetailRespVO> getEntrustOrderDetailListByOrderId(Long id);
}

View File

@@ -2,7 +2,9 @@ package com.zt.plat.module.contractorder.service.entrustorder;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO;
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;
@@ -14,9 +16,12 @@ import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativity
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.EntrustOrderDetailMapper;
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.enums.purchaseorder.OrderStatusEnum;
import com.zt.plat.module.contractorder.service.contract.ContractService;
import com.zt.plat.module.system.api.sequence.SequenceApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
@@ -48,29 +53,59 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic
@Resource
private EntrustOrderOrderMapper entrustOrderOrderMapper;
@Resource
private EntrustOrderDetailService entrustOrderDetailService;
@Resource
private SystemRelativityMapper systemRelativityMapper;
@Resource
private SequenceApi sequenceApi;
@Resource
private ContractService contractService;
@Override
@Transactional(rollbackFor = Exception.class)
public EntrustOrderOrderRespVO createEntrustOrderOrder(EntrustOrderOrderSaveReqVO createReqVO) {
// 插入
EntrustOrderOrderDO EntrustOrderOrder = BeanUtils.toBean(createReqVO, EntrustOrderOrderDO.class);
entrustOrderOrderMapper.insert(EntrustOrderOrder);
EntrustOrderOrderDO entrustOrderOrder = BeanUtils.toBean(createReqVO, EntrustOrderOrderDO.class);
entrustOrderOrder.setIsPush(0);
entrustOrderOrder.setStatus(OrderStatusEnum.IN_PROGRESS.getCode());
entrustOrderOrder.setSystemOrderNumber(this.generateOrderNumber(""));
entrustOrderOrderMapper.insert(entrustOrderOrder);
EntrustOrderOrderRespVO bean = BeanUtils.toBean(entrustOrderOrder, EntrustOrderOrderRespVO.class);
//批量插入委托加工订单明细
if (createReqVO.getEntrustOrderDetails() != null && !createReqVO.getEntrustOrderDetails().isEmpty()) {
createReqVO.getEntrustOrderDetails().forEach(entrustOrderDetail -> entrustOrderDetail.setOrderId(entrustOrderOrder.getId()));
List<EntrustOrderDetailRespVO> entrustOrderDetailRespVOS = entrustOrderDetailService.insertBatchSomeColumn(createReqVO.getEntrustOrderDetails());
bean.setEntrustOrderDetails(entrustOrderDetailRespVOS);
}
// 返回
return BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class);
return bean;
}
private String generateOrderNumber(String materialType) {
return sequenceApi.getNextSequence("ENTRUST_ORDER_NUMBER", null, null).getData();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateEntrustOrderOrder(EntrustOrderOrderSaveReqVO updateReqVO) {
// 校验存在
validateEntrustOrderOrderExists(updateReqVO.getId());
// 更新
EntrustOrderOrderDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderOrderDO.class);
entrustOrderOrderMapper.updateById(updateObj);
if (updateReqVO.getEntrustOrderDetails() != null && !updateReqVO.getEntrustOrderDetails().isEmpty()) {
//如果明细ID为空(表示新增)则设置订单ID
updateReqVO.getEntrustOrderDetails().forEach(item -> {
if (item.getId() == null) {
item.setOrderId(updateReqVO.getId());
}
});
entrustOrderDetailService.updateBatchSomeColumn(updateReqVO.getEntrustOrderDetails());
}
}
@Override
@@ -190,10 +225,18 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic
}
@Override
public boolean closeOrder(Long id) {
@Transactional(rollbackFor = Exception.class)
public void closeOrder(List<Long> ids) {
EntrustOrderOrderDO updateObj = new EntrustOrderOrderDO();
updateObj.setStatus("closed");
return entrustOrderOrderMapper.updateById(updateObj) > 0;
updateObj.setStatus(OrderStatusEnum.CLOSED.getCode());
entrustOrderOrderMapper.update(new LambdaUpdateWrapper<EntrustOrderOrderDO>()
.set(EntrustOrderOrderDO::getStatus, OrderStatusEnum.CLOSED.getCode())
.in(EntrustOrderOrderDO::getId, ids));
}
@Override
public List<EntrustOrderDetailRespVO> getEntrustOrderDetailListByOrderId(Long id) {
return entrustOrderDetailService.getEntrustOrderDetailListByOrderId(id);
}
}

View File

@@ -0,0 +1,90 @@
package com.zt.plat.module.contractorder.service.originalmaterialprocessing;
import java.util.*;
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.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO;
import jakarta.validation.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
/**
* 来料加工订单明细 Service 接口
*
* @author 易门采购员测试账号
*/
public interface OriginalMaterialProcessingDetailService {
/**
* 创建来料加工订单明细
*
* @param createReqVO 创建信息
* @return 编号
*/
OriginalMaterialProcessingDetailRespVO createOriginalMaterialProcessingDetail(@Valid OriginalMaterialProcessingDetailSaveReqVO createReqVO);
/**
* 更新来料加工订单明细
*
* @param updateReqVO 更新信息
*/
void updateOriginalMaterialProcessingDetail(@Valid OriginalMaterialProcessingDetailSaveReqVO updateReqVO);
/**
* 删除来料加工订单明细
*
* @param id 编号
*/
void deleteOriginalMaterialProcessingDetail(Long id);
/**
* 批量删除来料加工订单明细
*
* @param ids 编号
*/
void deleteOriginalMaterialProcessingDetailListByIds(List<Long> ids);
/**
* 获得来料加工订单明细
*
* @param id 编号
* @return 来料加工订单明细
*/
OriginalMaterialProcessingDetailDO getOriginalMaterialProcessingDetail(Long id);
/**
* 获得来料加工订单明细分页
*
* @param pageReqVO 分页查询
* @return 来料加工订单明细分页
*/
PageResult<OriginalMaterialProcessingDetailDO> getOriginalMaterialProcessingDetailPage(OriginalMaterialProcessingDetailPageReqVO pageReqVO);
/**
* 批量插入来料加工订单明细
*
* @param originalMaterialProcessingDetailSaveReqVOS 来料加工订单明细
* @return 插入结果
*/
List<OriginalMaterialProcessingDetailRespVO> insertBatchSomeColumn(List<OriginalMaterialProcessingDetailSaveReqVO> originalMaterialProcessingDetailSaveReqVOS);
/**
* 批量更新来料加工订单明细
*
* @param originalMaterialProcessingDetailSaveReqVOS 来料加工订单明细
*/
void updateBatchSomeColumn(List<OriginalMaterialProcessingDetailSaveReqVO> originalMaterialProcessingDetailSaveReqVOS);
/**
* 根据订单id获得来料加工订单明细列表
*
* @param orderId 订单编号
* @return 来料加工订单明细列表
*/
List<OriginalMaterialProcessingDetailRespVO> getOriginalMaterialProcessingDetailListByOrderId(Long orderId);
}

View File

@@ -0,0 +1,113 @@
package com.zt.plat.module.contractorder.service.originalmaterialprocessing;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO;
import com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing.OriginalMaterialProcessingDetailMapper;
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.framework.common.util.collection.CollectionUtils.convertList;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
import static com.zt.plat.module.contractorder.enums.originalmaterialprocessing.ErrorCodeConstants.ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS;
/**
* 来料加工订单明细 Service 实现类
*
* @author 易门采购员测试账号
*/
@Service
@Validated
public class OriginalMaterialProcessingDetailServiceImpl implements OriginalMaterialProcessingDetailService {
@Resource
private OriginalMaterialProcessingDetailMapper originalMaterialProcessingDetailMapper;
@Override
public OriginalMaterialProcessingDetailRespVO createOriginalMaterialProcessingDetail(OriginalMaterialProcessingDetailSaveReqVO createReqVO) {
// 插入
OriginalMaterialProcessingDetailDO originalMaterialProcessingDetail = BeanUtils.toBean(createReqVO, OriginalMaterialProcessingDetailDO.class);
originalMaterialProcessingDetailMapper.insert(originalMaterialProcessingDetail);
// 返回
return BeanUtils.toBean(originalMaterialProcessingDetail, OriginalMaterialProcessingDetailRespVO.class);
}
@Override
public void updateOriginalMaterialProcessingDetail(OriginalMaterialProcessingDetailSaveReqVO updateReqVO) {
// 校验存在
validateOriginalMaterialProcessingDetailExists(updateReqVO.getId());
// 更新
OriginalMaterialProcessingDetailDO updateObj = BeanUtils.toBean(updateReqVO, OriginalMaterialProcessingDetailDO.class);
originalMaterialProcessingDetailMapper.updateById(updateObj);
}
@Override
public void deleteOriginalMaterialProcessingDetail(Long id) {
// 校验存在
validateOriginalMaterialProcessingDetailExists(id);
// 删除
originalMaterialProcessingDetailMapper.deleteById(id);
}
@Override
public void deleteOriginalMaterialProcessingDetailListByIds(List<Long> ids) {
// 校验存在
validateOriginalMaterialProcessingDetailExists(ids);
// 删除
originalMaterialProcessingDetailMapper.deleteByIds(ids);
}
private void validateOriginalMaterialProcessingDetailExists(List<Long> ids) {
List<OriginalMaterialProcessingDetailDO> list = originalMaterialProcessingDetailMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS);
}
}
private void validateOriginalMaterialProcessingDetailExists(Long id) {
if (originalMaterialProcessingDetailMapper.selectById(id) == null) {
throw exception(ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS);
}
}
@Override
public OriginalMaterialProcessingDetailDO getOriginalMaterialProcessingDetail(Long id) {
return originalMaterialProcessingDetailMapper.selectById(id);
}
@Override
public PageResult<OriginalMaterialProcessingDetailDO> getOriginalMaterialProcessingDetailPage(OriginalMaterialProcessingDetailPageReqVO pageReqVO) {
return originalMaterialProcessingDetailMapper.selectPage(pageReqVO);
}
@Override
public List<OriginalMaterialProcessingDetailRespVO> insertBatchSomeColumn(List<OriginalMaterialProcessingDetailSaveReqVO> originalMaterialProcessingDetailSaveReqVOS) {
List<OriginalMaterialProcessingDetailDO> originalMaterialProcessingDetails = BeanUtils.toBean(originalMaterialProcessingDetailSaveReqVOS, OriginalMaterialProcessingDetailDO.class);
originalMaterialProcessingDetailMapper.insertBatch(originalMaterialProcessingDetails);
return BeanUtils.toBean(originalMaterialProcessingDetails, OriginalMaterialProcessingDetailRespVO.class);
}
@Override
public void updateBatchSomeColumn(List<OriginalMaterialProcessingDetailSaveReqVO> originalMaterialProcessingDetailSaveReqVOS) {
List<OriginalMaterialProcessingDetailDO> updateList = BeanUtils.toBean(originalMaterialProcessingDetailSaveReqVOS, OriginalMaterialProcessingDetailDO.class);
originalMaterialProcessingDetailMapper.insertOrUpdate(updateList);
}
@Override
public List<OriginalMaterialProcessingDetailRespVO> getOriginalMaterialProcessingDetailListByOrderId(Long orderId) {
List<OriginalMaterialProcessingDetailDO> originalMaterialProcessingDetails = originalMaterialProcessingDetailMapper.selectList(OriginalMaterialProcessingDetailDO::getOrderId, orderId);
return BeanUtils.toBean(originalMaterialProcessingDetails, OriginalMaterialProcessingDetailRespVO.class);
}
}

View File

@@ -0,0 +1,105 @@
package com.zt.plat.module.contractorder.service.originalmaterialprocessing;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO;
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.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO;
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.originalmaterialprocessing.OriginalMaterialProcessingDO;
import jakarta.validation.Valid;
import java.util.List;
/**
* 采购订单 Service 接口
*
* @author 后台管理-1
*/
public interface OriginalMaterialProcessingService {
/**
* 创建采购订单
*
* @param createReqVO 创建信息
* @return 编号
*/
OriginalMaterialProcessingRespVO createOriginalMaterialProcessing(@Valid OriginalMaterialProcessingSaveReqVO createReqVO);
/**
* 更新采购订单
*
* @param updateReqVO 更新信息
*/
void updateOriginalMaterialProcessing(@Valid OriginalMaterialProcessingSaveReqVO updateReqVO);
/**
* 删除采购订单
*
* @param id 编号
*/
void deleteOriginalMaterialProcessing(Long id);
/**
* 批量删除采购订单
*
* @param ids 编号
*/
void deleteOriginalMaterialProcessingListByIds(List<Long> ids);
/**
* 获得采购订单
*
* @param id 编号
* @return 采购订单
*/
OriginalMaterialProcessingDO getOriginalMaterialProcessing(Long id);
/**
* 获得采购订单分页
*
* @param pageReqVO 分页查询
* @return 采购订单分页
*/
PageResult<OriginalMaterialProcessingDO> getOriginalMaterialProcessingPage(OriginalMaterialProcessingPageReqVO pageReqVO);
/**
* 关联订单
*
* @param req 关联订单请求
* @return 是否成功
*/
boolean linkOrder(LinkOrderReqVO req);
/**
* 获取上或下游订单
*
* @param reqVO 查询条件
* @return 上或下游订单
*/
List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO);
/**
* 获取关联订单
*
* @param reqVO 查询条件
* @return 关联订单
*/
List<OriginalMaterialProcessingRespVO> getBindOrderByOrder(DownOrUpOrderReqVO reqVO);
/**
* 关闭订单
*
* @param ids 编号
*/
void closeOrder(List<Long> ids);
/**
* 获取来料订单详情列表
*
* @param id 编号
* @return 来料订单详情列表
*/
List<OriginalMaterialProcessingDetailRespVO> getOriginalMaterialProcessingDetailListByOrderId(Long id);
}

View File

@@ -0,0 +1,240 @@
package com.zt.plat.module.contractorder.service.originalmaterialprocessing;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO;
import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO;
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.originalmaterialprocessing.OriginalMaterialProcessingDO;
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
import com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing.OriginalMaterialProcessingMapper;
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum;
import com.zt.plat.module.contractorder.service.contract.ContractService;
import com.zt.plat.module.system.api.sequence.SequenceApi;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
import static com.zt.plat.module.contractorder.enums.entrustorder.ErrorCodeConstants.ENTRUST_ORDER_NOT_EXISTS;
import static com.zt.plat.module.contractorder.enums.originalmaterialprocessing.ErrorCodeConstants.ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS;
/**
* 采购订单 Service 实现类
*
* @author 后台管理-1
*/
@Service
@Validated
@Slf4j
public class OriginalMaterialProcessingServiceImplImpl implements OriginalMaterialProcessingService {
@Resource
private OriginalMaterialProcessingMapper originalMaterialProcessingMapper;
@Resource
private OriginalMaterialProcessingDetailService originalMaterialProcessingDetailService;
@Resource
private SystemRelativityMapper systemRelativityMapper;
@Resource
private SequenceApi sequenceApi;
@Resource
private ContractService contractService;
@Override
@Transactional(rollbackFor = Exception.class)
public OriginalMaterialProcessingRespVO createOriginalMaterialProcessing(OriginalMaterialProcessingSaveReqVO createReqVO) {
// 插入
OriginalMaterialProcessingDO originalMaterialProcessingDO = BeanUtils.toBean(createReqVO, OriginalMaterialProcessingDO.class);
originalMaterialProcessingDO.setIsPush(0);
originalMaterialProcessingDO.setStatus(OrderStatusEnum.IN_PROGRESS.getCode());
originalMaterialProcessingDO.setSystemOrderNumber(this.generateOrderNumber(""));
originalMaterialProcessingMapper.insert(originalMaterialProcessingDO);
OriginalMaterialProcessingRespVO bean = BeanUtils.toBean(originalMaterialProcessingDO, OriginalMaterialProcessingRespVO.class);
//批量插入委托加工订单明细
if (createReqVO.getDetails() != null && !createReqVO.getDetails().isEmpty()) {
createReqVO.getDetails().forEach(entrustOrderDetail -> entrustOrderDetail.setOrderId(originalMaterialProcessingDO.getId()));
List<OriginalMaterialProcessingDetailRespVO> originalMaterialProcessingDetailRespVOS = originalMaterialProcessingDetailService.insertBatchSomeColumn(createReqVO.getDetails());
bean.setDetails(originalMaterialProcessingDetailRespVOS);
}
// 返回
return bean;
}
private String generateOrderNumber(String materialType) {
return sequenceApi.getNextSequence("ENTRUST_ORDER_NUMBER", null, null).getData();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateOriginalMaterialProcessing(OriginalMaterialProcessingSaveReqVO updateReqVO) {
// 校验存在
validateEntrustOrderOrderExists(updateReqVO.getId());
// 更新
OriginalMaterialProcessingDO updateObj = BeanUtils.toBean(updateReqVO, OriginalMaterialProcessingDO.class);
originalMaterialProcessingMapper.updateById(updateObj);
if (updateReqVO.getDetails() != null && !updateReqVO.getDetails().isEmpty()) {
//如果明细ID为空(表示新增)则设置订单ID
updateReqVO.getDetails().forEach(item -> {
if (item.getId() == null) {
item.setOrderId(updateReqVO.getId());
}
});
originalMaterialProcessingDetailService.updateBatchSomeColumn(updateReqVO.getDetails());
}
}
@Override
public void deleteOriginalMaterialProcessing(Long id) {
// 校验存在
validateEntrustOrderOrderExists(id);
// 删除
originalMaterialProcessingMapper.deleteById(id);
}
@Override
public void deleteOriginalMaterialProcessingListByIds(List<Long> ids) {
// 校验存在
validateEntrustOrderOrderExists(ids);
// 删除
originalMaterialProcessingMapper.deleteByIds(ids);
}
private void validateEntrustOrderOrderExists(List<Long> ids) {
List<OriginalMaterialProcessingDO> list = originalMaterialProcessingMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(ENTRUST_ORDER_NOT_EXISTS);
}
}
private void validateEntrustOrderOrderExists(Long id) {
if (originalMaterialProcessingMapper.selectById(id) == null) {
throw exception(ENTRUST_ORDER_NOT_EXISTS);
}
}
@Override
public OriginalMaterialProcessingDO getOriginalMaterialProcessing(Long id) {
return originalMaterialProcessingMapper.selectById(id);
}
@Override
public PageResult<OriginalMaterialProcessingDO> getOriginalMaterialProcessingPage(OriginalMaterialProcessingPageReqVO pageReqVO) {
return originalMaterialProcessingMapper.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<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) {
throw exception(CONTRACT_ORDER_EXISTS);
}
return systemRelativityMapper.insert(saveDO) > 0;
}
@Override
public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) {
OriginalMaterialProcessingDO originalMaterialProcessingDO = originalMaterialProcessingMapper.selectById(reqVO.getOrderId());
if (originalMaterialProcessingDO == null) {
throw exception(ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS);
}
String contractNumber = originalMaterialProcessingDO.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<DownOrUpOrderRespVO> orderList = new ArrayList<>();
if (upRelation != null) {
String systemContractNumber = upRelation.getSystemContractNumber();
List<OriginalMaterialProcessingDO> originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectList(new LambdaQueryWrapper<OriginalMaterialProcessingDO>().eq(OriginalMaterialProcessingDO::getContractNumber, systemContractNumber));
originalMaterialProcessingDOS.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<OriginalMaterialProcessingRespVO> getBindOrderByOrder(DownOrUpOrderReqVO reqVO) {
List<OriginalMaterialProcessingRespVO> 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()) {
List<OriginalMaterialProcessingDO> originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getUpId).toList());
orderList = BeanUtils.toBean(originalMaterialProcessingDOS, OriginalMaterialProcessingRespVO.class);
}
} else {
//下游
log.info("获取下游订单");
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, reqVO.getOrderId()));
if (!systemRelativityDOS.isEmpty()) {
List<OriginalMaterialProcessingDO> originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getDownId).toList());
orderList = BeanUtils.toBean(originalMaterialProcessingDOS, OriginalMaterialProcessingRespVO.class);
}
}
return orderList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void closeOrder(List<Long> ids) {
EntrustOrderOrderDO updateObj = new EntrustOrderOrderDO();
updateObj.setStatus(OrderStatusEnum.CLOSED.getCode());
originalMaterialProcessingMapper.update(new LambdaUpdateWrapper<OriginalMaterialProcessingDO>()
.set(OriginalMaterialProcessingDO::getStatus, OrderStatusEnum.CLOSED.getCode())
.in(OriginalMaterialProcessingDO::getId, ids));
}
@Override
public List<OriginalMaterialProcessingDetailRespVO> getOriginalMaterialProcessingDetailListByOrderId(Long id) {
return originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailListByOrderId(id);
}
}