From 4d85ea4ebd53ae7967bd0f26966c285aa61ec835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Wed, 22 Oct 2025 17:29:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OnlyOfficeCallbackController.java | 15 + .../service/OnlyOfficeCallbackService.java | 7 + .../OnlyOfficeCallbackServiceImpl.java | 155 ++++++++++ .../service/tmpltp/TmplInscBsnRelService.java | 7 + .../tmpltp/TmplInscBsnRelServiceImpl.java | 18 +- .../enums/salesorder/ErrorCodeConstants.java | 17 ++ .../PurchaseOrderController.java | 54 ++-- .../purchaseorder/vo/DownOrUpOrderReqVO.java | 19 ++ .../purchaseorder/vo/DownOrUpOrderRespVO.java | 41 +++ .../purchaseorder/vo/PrchOrdDtlPageReqVO.java | 2 + .../purchaseorder/vo/PrchOrdDtlSaveReqVO.java | 2 + .../salesorder/SalesOrderController.java | 124 ++++++++ .../SalesOrderDetailController.java | 118 ++++++++ .../salesorder/vo/SaleOrderDetailsRespVO.java | 194 +++++++++++++ .../vo/SalesOrderDetailPageReqVO.java | 90 ++++++ .../salesorder/vo/SalesOrderDetailRespVO.java | 119 ++++++++ .../vo/SalesOrderDetailSaveReqVO.java | 102 +++++++ .../salesorder/vo/SalesOrderPageReqVO.java | 137 +++++++++ .../admin/salesorder/vo/SalesOrderReqVO.java | 23 ++ .../admin/salesorder/vo/SalesOrderRespVO.java | 201 +++++++++++++ .../salesorder/vo/SalesOrderSaveReqVO.java | 182 ++++++++++++ .../salesorder/vo/SalesOrderStsReqVO.java | 22 ++ .../purchaseorder/PrchOrdDtlDO.java | 5 + .../purchaseorder/PurchaseOrderDO.java | 21 ++ .../dataobject/salesorder/SalesOrderDO.java | 268 ++++++++++++++++++ .../salesorder/SalesOrderDetailDO.java | 158 +++++++++++ .../purchaseorder/PurchaseOrderMapper.java | 2 +- .../salesorder/SalesOrderDetailMapper.java | 51 ++++ .../mysql/salesorder/SalesOrderMapper.java | 62 ++++ .../service/contract/ContractService.java | 8 +- .../service/contract/ContractServiceImpl.java | 14 - .../purchaseorder/PurchaseOrderService.java | 23 +- .../PurchaseOrderServiceImpl.java | 98 ++++++- .../salesorder/SalesOrderDetailService.java | 85 ++++++ .../SalesOrderDetailServiceImpl.java | 111 ++++++++ .../service/salesorder/SalesOrderService.java | 65 +++++ .../salesorder/SalesOrderServiceImpl.java | 99 +++++++ .../purchaseorder/PurchaseOrderMapper.xml | 9 +- 38 files changed, 2667 insertions(+), 61 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java index 3735ad1..8640827 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java @@ -39,4 +39,19 @@ public class OnlyOfficeCallbackController { response.put("error", 0); return new ResponseEntity<>(response, HttpStatus.OK); } + + /** + * 处理OnlyOffice文档编辑服务发送的回调 + */ + @PostMapping("/contract /callback/{id}") + @PermitAll + @TenantIgnore + public ResponseEntity> handleContractCallback(@RequestBody OnlyOfficeCallback callback, @PathVariable String id,@RequestParam("fileName") String fileName) { + // 处理回调逻辑 + callbackService.processContractCallback(callback,id,fileName); + // 返回必须的响应,否则OnlyOffice会显示错误 + Map response = new HashMap<>(); + response.put("error", 0); + return new ResponseEntity<>(response, HttpStatus.OK); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java index 7ba5e38..4abbe2d 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java @@ -9,4 +9,11 @@ public interface OnlyOfficeCallbackService { * @param callback 回调数据 */ void processCallback(OnlyOfficeCallback callback,String id,String fileName); + + + /** + * 处理OnlyOffice回调 + * @param callback 回调数据 + */ + void processContractCallback(OnlyOfficeCallback callback,String id,String fileName); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java index 90db08b..14d75f9 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java @@ -209,4 +209,159 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService } + + + + @Override + public void processContractCallback(OnlyOfficeCallback callback, String id, String fileName) { + log.info("收到OnlyOffice文档回调: {}", callback.getKey()); + log.info("回调状态: {}", callback.getStatus()); + + // 根据不同的状态处理回调 + switch (callback.getStatus()) { + case 1: + handleContractEditingStatus(callback, id,fileName); + break; + case 2: + handleContractDocumentSaved(callback, id,fileName); + break; + case 3: + handleContractSaveError(callback, id,fileName); + break; + case 4: + handleContractDocumentClosedWithoutChanges(callback, id,fileName); + break; + case 6: + handleContractForcedSave(callback, id,fileName); + break; + case 7: + handleContractForcedSaveError(callback, id,fileName); + break; + default: + log.warn("收到未知的回调状态: {}", callback.getStatus()); + } + } + + + /** + * 处理文档正在编辑的状态 + */ + private void handleContractEditingStatus(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 正在被以下用户编辑: {}", + callback.getKey(), callback.getUsers()); + + // 处理用户操作(连接或断开连接) + if (callback.getActions() != null) { + for (Action action : callback.getActions()) { + String actionType = switch (action.getType()) { + case 0 -> "断开了连接"; + case 1 -> "连接成功"; + case 2 -> "在中点击了强制保存"; + default -> "在中执行了未知操作"; + }; + log.info("用户 {} {}", action.getUserId(), actionType); + } + } + } + + /** + * 处理文档已保存的状态 + */ + private void handleContractDocumentSaved(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 已准备好保存", callback.getKey()); + saveContractDocument(callback, id,fileName); + + // 处理历史记录 + // handleHistoryChanges(callback,id); + } + + /** + * 处理保存错误的状态 + */ + private void handleContractSaveError(OnlyOfficeCallback callback, String id,String fileName) { + log.error("保存文档 {} 时出错", callback.getKey()); + // 可以在这里添加错误处理逻辑,如发送通知等 + } + + /** + * 处理文档关闭且无更改的状态 + */ + private void handleContractDocumentClosedWithoutChanges(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 已关闭,未做任何更改", callback.getKey()); + // 可以在这里添加清理资源等逻辑 + } + + /** + * 处理强制保存的状态 + */ + private void handleContractForcedSave(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 执行强制保存。类型: {}", + callback.getKey(), callback.getForceSaveType()); + saveContractDocument(callback, id,fileName); + + // 处理历史记录 + handleHistoryChanges(callback, id); + + // 如果是表单提交,处理表单数据 + if (callback.getForceSaveType() == 3 && callback.getFormsDataUrl() != null) { + handleFormSubmission(callback, id); + } + } + + + /** + * 处理强制保存错误的状态 + */ + private void handleContractForcedSaveError(OnlyOfficeCallback callback, String id,String fileName) { + log.error("文档 {} 强制保存时出错", callback.getKey()); + // 可以在这里添加错误处理逻辑 + } + + /** + * 保存文档到存储 + */ + private void saveContractDocument(OnlyOfficeCallback callback, String id,String fileName) { + if (callback.getUrl() == null) { + log.error("文件路径为空"); + return; + } + + try { + MultipartFile file = downloadFileAsMultipart(callback.getUrl()); + // 1. 验证文件是否为空 + + String directory = "模版实例"; + FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO(); + fileCreateReqDTO.setName(fileName); + fileCreateReqDTO.setContent(file.getBytes()); + fileCreateReqDTO.setType(file.getContentType()); // 使用真实的MIME类型 + fileCreateReqDTO.setDirectory(directory); // 设置文件存储目录 + if (file.getSize() <=0){ + log.error("文件大小为0"); + return; + } + // 7. 调用文件服务创建文件 + CommonResult result = fileApi.createFileWithReturn(fileCreateReqDTO); + if (result.isSuccess()) { + // 创建文件成功,处理结果 + result.getData().setContent(null); + log.info("文件创建成功,文件ID:{}", result.getData()); + // 创建文件成功,处理结果 + FileRespDTO fileRespDTO = result.getData(); + Map fileInfo = new HashMap<>(); + fileInfo.put("id",String.valueOf(fileRespDTO.getId())); + fileInfo.put("name", fileRespDTO.getName()); + fileInfo.put("directory", fileRespDTO.getDirectory()); + templateInstanceService.updateTemplateInstanceFileUrlByInstanceId(id, JSONObject.toJSONString(fileInfo)); + } else { + // 创建文件失败,处理错误 + log.error("文件创建失败,错误信息:{}", result.getMsg()); + } + log.info("文件创建结果:{}", result); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java index ec25783..8e57b3c 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java @@ -68,4 +68,11 @@ public interface TmplInscBsnRelService { * @param tmplInscBsnRelRespVO 类 */ void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO); + + /** + * 跟新cntt + * + * @param bsnId ,params + */ + void updateCntt(Long bsnId,String params); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java index a7a5745..3521570 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java @@ -145,6 +145,20 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } } + @Override + public void updateCntt(Long bsnId, String params) { + List tmplInscBsnRelDOS = tmplInscBsnRelMapper.selectList(new LambdaQueryWrapper() + .eq(TmplInscBsnRelDO::getBsnId, bsnId).orderByDesc(TmplInscBsnRelDO::getVer) + ); + if (tmplInscBsnRelDOS.isEmpty()) { + throw exception(TEMPLATE_INSTANCE_FILE_NOT_EXISTS); + } + TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelDOS.get(0); + tmplInscBsnRelDO.setCntt( params); + tmplInscBsnRelMapper.updateById(tmplInscBsnRelDO); + log.info("更新业务实例cntt字段值成功"); + } + //业务条款 private List setTmplInscItmBsnRespVOS(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { List tmplInscItmBsnRespVOS = BeanUtils.toBean(SpringUtil.getBean(TmplInscItmBsnMapper.class).selectList(new LambdaQueryWrapper() @@ -152,7 +166,7 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { ), TmplInscItmBsnRespVO.class); tmplInscItmBsnRespVOS.forEach(tmplInscItmBsnRespVO -> { tmplInscBsnRelRespVO.getInstanceItemRespVOS().forEach(instanceItemRespVO -> { - if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())){ + if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())) { tmplInscItmBsnRespVO.setItmName(instanceItemRespVO.getItmName()); } }); @@ -273,4 +287,6 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { log.info("删除业务实例条款值【{}】", ids); } } + + } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java new file mode 100644 index 0000000..1d03d77 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.contractorder.enums.salesorder; + +import com.zt.plat.framework.common.exception.ErrorCode; + +/** + * contract-order 错误码枚举类 + * + * contract-order 系统,使用 1-xxx-xxx-xxx 段 + * + * @author ZT + */ +public interface ErrorCodeConstants { + + // ========== 合同模块 1-027-000-000 ========== + ErrorCode SALES_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_00_600, "消费订单不存在"); + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java index 2980070..339592c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java @@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.controller.admin.purchaseorder; import com.zt.plat.module.contractorder.api.ContractApiImpl; import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.constraints.*; import jakarta.validation.*; import jakarta.servlet.http.*; + import java.util.*; import java.io.IOException; @@ -27,11 +29,13 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; + import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; + import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; @@ -75,7 +79,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除采购订单") - @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") public CommonResult deletePurchaseOrderList(@RequestBody BatchDeleteReqVO req) { purchaseOrderService.deletePurchaseOrderListByIds(req.getIds()); return success(true); @@ -83,12 +87,12 @@ public class PurchaseOrderController implements BusinessControllerMarker { @GetMapping("/get") @Operation(summary = "获得采购订单") - @Parameter(name = "id", description = "编号", required = true, example = "1024") + @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型采购或者是消费", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") - public CommonResult getPurchaseOrder(@RequestParam("id") Long id) { - PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id); + public CommonResult getPurchaseOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) { + PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id, splyBsnTp); PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class); - if (purchaseOrderRespVO == null){ + if (purchaseOrderRespVO == null) { return success(null); } purchaseOrderService.setOrderDetails(purchaseOrderRespVO); @@ -100,7 +104,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") public CommonResult> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) { PageResult pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO); - PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class); + PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class); purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO)); return success(purchaseOrderRespVOPageResult); } @@ -110,12 +114,12 @@ public class PurchaseOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('bse:purchase-order:export')") @ApiAccessLog(operateType = EXPORT) public void exportPurchaseOrderExcel(@Valid PurchaseOrderPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = purchaseOrderService.getPurchaseOrderPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class, - BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); } //提交订单审核 @@ -131,7 +135,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @Operation(summary = "批量提交订单审核") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitOrder(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List ids) { - System.out.println("ids:"+ids); + System.out.println("ids:" + ids); ids.forEach(id -> purchaseOrderService.submitOrder(Long.valueOf(id))); return success(true); } @@ -141,25 +145,27 @@ public class PurchaseOrderController implements BusinessControllerMarker { @Operation(summary = "推送ERP订单", description = "061')") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitErp061(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List ids) { - return success( purchaseOrderService.submitErp061(ids)); + return success(purchaseOrderService.submitErp061(ids)); } + @PostMapping("/submit-erp062") @Operation(summary = "推送ERP订单", description = "062当每次调更新接口后都需要调此接口") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitErp062(@RequestParam @Validated @NotNull(message = "采购订单id不能为空") Long id) { - return success( purchaseOrderService.submitErp062(id)); + return success(purchaseOrderService.submitErp062(id)); } //通过订单号查询订单信息 @PostMapping("/get-order-by-order-no") @Operation(summary = "通过订单号查询订单信息", description = "通过订单号查询订单信息") - public CommonResult> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List orderNos){ + public CommonResult> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List orderNos) { return success(purchaseOrderService.getOrderByOrderNo(orderNos)); } + //根据订单id修改订单状态 @PutMapping("/update-order-status") @Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'采购订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改") - public CommonResult updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req){ + public CommonResult updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req) { purchaseOrderService.updateOrderStatusByIdOrOrderNo(req); return success(true); } @@ -168,26 +174,34 @@ public class PurchaseOrderController implements BusinessControllerMarker { @GetMapping("/material") @Operation(summary = "查询物料接口") public CommonResult getMaterialList(@RequestParam - @Schema(description = "采购订单号") - @Validated - @NotEmpty(message = "采购订单号不能为空") - String orderNo){ + @Schema(description = "采购订单号") + @Validated + @NotEmpty(message = "采购订单号不能为空") + String orderNo) { return purchaseOrderService.getMaterial(orderNo); } //关联订单 @PostMapping("/link-order") @Operation(summary = "关联订单") - public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req){ + public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req) { return success(purchaseOrderService.linkOrder(req)); } @PostMapping("/order-pass-reject") @Operation(summary = "订单审核") - public CommonResult orderPassReject(@RequestBody PurchaseorderReqVO reqVO){ + public CommonResult orderPassReject(@RequestBody PurchaseorderReqVO reqVO) { return success(purchaseOrderService.orderPassReject(reqVO)); } - + //根据订单id和方式获取上或下游订单 + @PostMapping("/order-by-order-id-and-type") + @Operation(summary = "根据订单id和方式获取上或下游订单") + public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { + Map map = new HashMap<>(); + map.put("unBindOrder", purchaseOrderService.getOrderByOrderIdAndType(reqVO)); + map.put("bindOrder", purchaseOrderService.getBindOrderByOrder(reqVO)); + return success(map); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java new file mode 100644 index 0000000..afc47e6 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java @@ -0,0 +1,19 @@ +package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import org.springframework.validation.annotation.Validated; + +@Data +@Schema(description = "上下级订单 请求 VO") +@Validated +public class DownOrUpOrderReqVO { + @Schema(description = "订单id") + private Long orderId; + @Schema(description = "订单类型") + @NotEmpty(message = "订单类型不能为空(上游 up ,下游 down)") + private String orderType; + @Schema(description = "订单号") + private String orderNo; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java new file mode 100644 index 0000000..01f8a93 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "上下游订单 响应 VO") +public class DownOrUpOrderRespVO { + /** + * 订单编号 + */ + @Schema(description = "订单编号") + private String orderNo; + /** + * 订单ID + */ + @Schema(description = "订单ID") + private String orderId; + /** + * 订单类型 + */ + @Schema(description = "订单类型") + private String orderType; + /** + * 合同名称 + */ + @Schema(description = "合同名称") + private String contractName; + /** + * 合同id + */ + @Schema(description = "合同id") + private String contractId; + /** + * 合同号 + */ + @Schema(description = "合同号") + private String contractNumber; + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java index 6bd2787..eef7567 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java @@ -156,4 +156,6 @@ public class PrchOrdDtlPageReqVO extends PageParam { @Schema(description = "金属元素编码") private String elemCdg; + @Schema(description = "订单类型") + private String splyBsnTp; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java index a9c5e28..dc61f2d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java @@ -163,5 +163,7 @@ public class PrchOrdDtlSaveReqVO { @Schema(description = "金属元素编码") private String elemCdg; + @Schema(description = "税点") + private String taxRte; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java new file mode 100644 index 0000000..02cff48 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java @@ -0,0 +1,124 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.contractorder.api.ContractApiImpl; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; +import com.zt.plat.module.contractorder.service.salesorder.SalesOrderService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + + +@Tag(name = "管理后台 - 销售订单") +@RestController +@RequestMapping("/base/sales-order") +@Validated +public class SalesOrderController implements BusinessControllerMarker { + + + @Resource + private SalesOrderService salesOrderService; + @Resource + private ContractApiImpl contractApi; + + + @PostMapping("/create") + @Operation(summary = "创建采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:create')") + public CommonResult createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) { + return success(salesOrderService.createSalesOrder(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:update')") + public CommonResult updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) { + salesOrderService.updateSalesOrder(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除采购订单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + public CommonResult deleteSalesOrder(@RequestParam("id") Long id) { + salesOrderService.deleteSalesOrder(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + public CommonResult deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) { + salesOrderService.deleteSalesOrderListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得采购订单") + @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型采购或者是消费", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:sales-order:query')") + public CommonResult getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) { + SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp); + SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); + if (salesOrderRespVO == null){ + return success(null); + } + // + return success(salesOrderRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得采购订单分页") + @PreAuthorize("@ss.hasPermission('base:sales-order:query')") + public CommonResult> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { + PageResult pageResult = salesOrderService.getSalesOrderPage(pageReqVO); + PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); + // purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> salesOrderService.setOrderDetails(purchaseOrderRespVO)); + return success(purchaseOrderRespVOPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出采购订单 Excel") + @PreAuthorize("@ss.hasPermission('base:sales-order:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salesOrderService.getSalesOrderPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class, + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + } + + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java new file mode 100644 index 0000000..823305c --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java @@ -0,0 +1,118 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import com.zt.plat.module.contractorder.service.salesorder.SalesOrderDetailService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + + + +@Tag(name = "管理后台 - 销售订单明细") +@RestController +@RequestMapping("/base/sales-order-detail") +@Validated +public class SalesOrderDetailController implements BusinessControllerMarker { + + + @Resource + private SalesOrderDetailService salesOrderDetailService; + + @PostMapping("/create") + @Operation(summary = "创建销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')") + public CommonResult createSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO createReqVO) { + return success(salesOrderDetailService.createSalesOrderDetail(createReqVO)); + } + + @PostMapping("/create-batch") + @Operation(summary = "批量创建销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')") + public CommonResult> createSalesOrderDetail(@Valid @NotEmpty(message = "需要保存的数据为空") @RequestBody List createReqVOS) { + return success(salesOrderDetailService.createSalesOrderDetail(createReqVOS)); + } + + @PutMapping("/update") + @Operation(summary = "更新销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:update')") + public CommonResult updateSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO updateReqVO) { + salesOrderDetailService.updateSalesOrderDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除销售订单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')") + public CommonResult deleteSalesOrderDetail(@RequestParam("id") Long id) { + salesOrderDetailService.deleteSalesOrderDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')") + public CommonResult deleteSalesOrderDetailList(@RequestBody BatchDeleteReqVO req) { + salesOrderDetailService.deleteSalesOrderDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得销售订单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')") + public CommonResult getSalesOrderDetail(@RequestParam("id") Long id) { + SalesOrderDetailDO salesOrderDetail = salesOrderDetailService.getSalesOrderDetail(id); + return success(BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得销售订单明细分页") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')") + public CommonResult> getSalesOrderDetailPage(@Valid SalesOrderDetailPageReqVO pageReqVO) { + PageResult pageResult = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SalesOrderDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出销售订单明细 Excel") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSalesOrderDetailExcel(@Valid SalesOrderDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "销售订单明细.xls", "数据", SalesOrderDetailRespVO.class, + BeanUtils.toBean(list, SalesOrderDetailRespVO.class)); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java new file mode 100644 index 0000000..573fca7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java @@ -0,0 +1,194 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class SaleOrderDetailsRespVO { + /** + * 主键 + */ + private Long id; + /** + * ERP订单号 + */ + private String orderSAPNumber; + /** + * 订单号 + */ + private String systemOrderNumber; + /** + * 公司名称 + */ + private String cpName; + /** + * 公司编码;推送ERP(必须) + */ + private String companyNumber; + /** + * 客商编码;推送ERP(必须) + */ + private String supplierNumber; + /** + * 客商名称 + */ + private String supplierName; + /** + * 订单类型(字典:PRCH_ORD_TP);推送ERP(必须) + */ + private String type; + /** + * 凭证日期;推送ERP(必须) + */ + private LocalDateTime voucherDate; + /** + * 采购组织编码;推送ERP(必须) + */ + private String purchaseOrganizationCustomsDeclaration; + /** + * 收货工厂名称 + */ + private String receiveFactoryName; + /** + * 收货工厂编码;推送ERP(必须) + */ + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + private String receiveWarehouseName; + /** + * 收货库位编码;推送ERP + */ + private String receiveWarehouseNumber; + /** + * 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须) + */ + private String purchaseGroup; + /** + * 货币码(字典:CUR);推送ERP(必须) + */ + private String currencyNumber; + /** + * 汇率;推送ERP + */ + private BigDecimal exchangeRate; + /** + * 合同纸质合同号;推送ERP(必须) + */ + private String paperContractNumber; + /** + * 小协议号;推送ERP + */ + private String agreementNumber; + /** + * 备注;推送ERP + */ + private String remark; + /** + * 代理方编码;推送ERP + */ + private String agentNumber; + /** + * 代理方名称 + */ + private String agentName; + /** + * 订单编码 + */ + private String orderNumber; + /** + * 系统合同编号 + */ + private String contractNumber; + /** + * 物料编码 + */ + private String materialNumber; + /** + * 物料名称 + */ + private String materialName; + /** + * 合同名称 + */ + private String contractName; + /** + * 小户头号 + */ + private String tenantNumber; + /** + * ERP公司编号 + */ + private String erpPurchaseCompanyNumber; + /** + * ERP公司名称 + */ + private String erpPurchaseCompanyName; + /** + * ERP客商公司编码 + */ + private String erpSalesCompanyNumber; + /** + * ERP客商公司名称 + */ + private String erpSalesCompanyName; + /** + * 采购组织名称 + */ + private String purchaseOrganizationName; + /** + * ERP状态(字典: ERP_REQ_STS) + */ + private String erpStatus; + /** + * 请求ERP失败原因 + */ + private String cause; + /** + * 订单状态(字典:PRCH_ORD_STS) + */ + + private String status; + /** + * 采购组名称 + */ + private String purchaseGroupName; + + /** + * 流程实例编号 + */ + + private String processInstanceId; + + /** + * 流程当前任务节点id + */ + + private String taskId; + + /** + * 审批意见 + */ + + private String reviewOpinion; + + /** + * 是否需要审批 + */ + private int isPush; + + /** + * 物料类型 + */ + private String mtrlTp; + + /** + * 消费订单行项目 + */ + private List orderDetails; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java new file mode 100644 index 0000000..d6bea5d --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java @@ -0,0 +1,90 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 销售订单明细分页 Request VO") +@Data +public class SalesOrderDetailPageReqVO extends PageParam { + + @Schema(description = "订单主键", example = "9072") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)") + private Long lineNumber; + + @Schema(description = "物料名称", example = "芋艿") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)") + private String materialNumber; + + @Schema(description = "工厂名称", example = "芋艿") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)") + private String factoryNumber; + + @Schema(description = "库位名称", example = "赵六") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", example = "2") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + private String agreementNumber; + + @Schema(description = "总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + private String elementName; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java new file mode 100644 index 0000000..59daf0b --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java @@ -0,0 +1,119 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 销售订单明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderDetailRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072") + @ExcelProperty("订单主键") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("行项目;推送ERP(必须)") + private Long lineNumber; + + @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("物料编码;推送ERP(必须)") + private String materialNumber; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("工厂名称") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工厂编码;推送ERP(必须)") + private String factoryNumber; + + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("库位名称") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("库位编码;推送ERP(必须)") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("计量单位;推送ERP(必须)") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("开票类型;推送ERP(必须)") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("暂估数量;推送ERP(必须)") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("稅分类(字典:SALE_TAX);推送ERP(必须)") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + @ExcelProperty("项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + @ExcelProperty("装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + @ExcelProperty("物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + @ExcelProperty("小协议号") + private String agreementNumber; + + @Schema(description = "总价") + @ExcelProperty("总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + @ExcelProperty("金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + @ExcelProperty("金属元素名称") + private String elementName; + + @Schema(description = "金属元素编码") + @ExcelProperty("金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否启用;处理明细中多个相同物料,只能允许一种物料启用") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("价格条件详情;推送ERP(必须):JSON") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + @ExcelProperty("来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED) + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java new file mode 100644 index 0000000..b1bf4f7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java @@ -0,0 +1,102 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 销售订单明细新增/修改 Request VO") +@Data +public class SalesOrderDetailSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517") + private Long id; + + @Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072") + @NotNull(message = "订单主键不能为空") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "行项目;推送ERP(必须)不能为空") + private Long lineNumber; + + @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "物料名称不能为空") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "物料编码;推送ERP(必须)不能为空") + private String materialNumber; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "工厂名称不能为空") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工厂编码;推送ERP(必须)不能为空") + private String factoryNumber; + + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "库位名称不能为空") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "库位编码;推送ERP(必须)不能为空") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计量单位;推送ERP(必须)不能为空") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "开票类型;推送ERP(必须)不能为空") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "暂估数量;推送ERP(必须)不能为空") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "稅分类(字典:SALE_TAX);推送ERP(必须)不能为空") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + private String agreementNumber; + + @Schema(description = "总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + private String elementName; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否启用;处理明细中多个相同物料,只能允许一种物料启用不能为空") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "价格条件详情;推送ERP(必须):JSON不能为空") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "税率") + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java new file mode 100644 index 0000000..a2b7179 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java @@ -0,0 +1,137 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 采购订单分页 Request VO") +@Data +public class SalesOrderPageReqVO extends PageParam { + + @Schema(description = "ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", example = "芋艿") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", example = "2") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", example = "芋艿") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "王五") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "计量单位") + private String unt; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; + + @Schema(description = "订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", example = "王五") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", example = "芋艿") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + + @Schema(description = "物料类型(字典:MTRL_TP)", example = "2") + private String mtrlTp; + + @Schema(description = "订单分类") + private String splyBsnTp; + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java new file mode 100644 index 0000000..a214ebf --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - 订单审核请求对象 Request VO") +@Data +public class SalesOrderReqVO { + + @Schema(description = "合同主键ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "合同主键ID不能为空") + private Long id; + + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "审核意见不能为空") + private String reviewOpinion; + + @Schema(description = "状态:待推送 WAIT_PUSH,已驳回 REJECTED", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "审核状态不能为空") + private String status; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java new file mode 100644 index 0000000..f85582b --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java @@ -0,0 +1,201 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 采购订单 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "ERP订单号") + @ExcelProperty("ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("公司编码;推送ERP(必须)") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("客商名称") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("订单类型(字典:PRCH_ORD_TP);推送ERP(必须)") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("凭证日期;推送ERP(必须)") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("收货工厂名称") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("收货库位名称") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "计量单位") + private String unt; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + @ExcelProperty("汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + @ExcelProperty("小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + @ExcelProperty("备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + @ExcelProperty("代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + @ExcelProperty("代理方名称") + private String agentName; + + @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + @ExcelProperty("合同名称") + private String contractName; + + @Schema(description = "小户头号") + @ExcelProperty("小户头号") + private String tenantNumber; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("ERP公司名称") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("ERP客商公司名称") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + @ExcelProperty("采购组织名称") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + @ExcelProperty("ERP状态(字典: ERP_REQ_STS)") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + @ExcelProperty("请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + @ExcelProperty("订单状态(字典:PRCH_ORD_STS)") + private String status; + + @Schema(description = "采购组名称", example = "张三") + @ExcelProperty("采购组名称") + private String purchaseGroupName; + + @Schema(description = "订单明细") + @ExcelProperty("订单明细") + private List prchOrdDtlRespVOS; + + @Schema(description = "物料类型(字典:MTRL_TP)", example = "2") + @ExcelProperty("物料类型(字典:MTRL_TP)") + private String mtrlTp; + + @Schema(description = "订单分类", example = "2") + @ExcelProperty("订单分类") + private String splyBsnTp; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("公司名称") + private String cpName; + + @Schema(description = "是否提交审核,value为0或1") + @ExcelProperty("是否提交审核") + private int isPush; + + @Schema(description = "流程实例编号") + @ExcelProperty("流程实例编号") + private String processInstanceId; + + @Schema(description = "流程当前任务节点id") + @ExcelProperty("流程当前任务节点id") + private String taskId; + + @Schema(description = " 审批意见") + @ExcelProperty(" 审批意见") + private String reviewOpinion; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java new file mode 100644 index 0000000..ade2eae --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java @@ -0,0 +1,182 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 采购订单新增/修改 Request VO") +@Data +public class SalesOrderSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + private Long id; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "公司名称不能为空") + private String cpName; + + @Schema(description = "ERP订单号") + private String orderSAPNumber; + +// @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "订单号不能为空") +// private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "公司编码;推送ERP(必须)不能为空") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "客商编码;推送ERP(必须)不能为空") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "客商名称不能为空") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)不能为空") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "凭证日期;推送ERP(必须)不能为空") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "采购组织编码;推送ERP(必须)不能为空") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "收货工厂名称不能为空") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "收货工厂编码;推送ERP(必须)不能为空") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "收货库位名称不能为空") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "收货库位编码;推送ERP不能为空") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)不能为空") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "货币码(字典:CUR);推送ERP(必须)不能为空") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "合同纸质合同号;推送ERP(必须)不能为空") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; +// +// @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "订单编码不能为空") +// private String orderNumber; + + + @Schema(description = "计量单位") + @NotEmpty(message = "计量单位(unt)不能为空") + private String unt; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "系统合同编号不能为空") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "ERP公司编号不能为空") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "ERP公司名称不能为空") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "ERP客商公司编码不能为空") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "ERP客商公司名称不能为空") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + + @Schema(description = "订单明细") + @ExcelProperty("订单明细") + private List salesOrderDetailSaveReqVOS; + + + @Schema(description = "流程实例编号") + @ExcelProperty("流程实例编号") + private String processInstanceId; + + @Schema(description = "流程当前任务节点id") + @ExcelProperty("流程当前任务节点id") + private String taskId; + + @Schema(description = " 审批意见") + @ExcelProperty(" 审批意见") + private String reviewOpinion; + + @Schema(description = "是否提交审核,value为0或1") + @ExcelProperty("是否提交审核") + private int isPush; + @Schema(description = "物料类别(字典:MTRL_TP)", example = "1") + @ExcelProperty("物料类别") + private String mtrlTp; + + @Schema(description = "订单分类", example = "2") + @ExcelProperty("订单分类") + private String splyBsnTp; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java new file mode 100644 index 0000000..e037907 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java @@ -0,0 +1,22 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + + +@Schema(description = "管理后台 - 采购订单状态 Request VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderStsReqVO { + @Schema(description = "采购订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419") + private List ids; + @Schema(description = "采购订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "采购订单状态不能为空") + private String sts; + @Schema(description = "采购订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private List orderNos; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java index fbd1a6f..fab9a2b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java @@ -270,5 +270,10 @@ public class PrchOrdDtlDO extends BusinessBaseDO { */ @TableField("ELEM_CDG") private String elemCdg; + /** + * 税率 + */ + @TableField("TAX_RTE") + private String taxRte; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java index fff3139..723a1e5 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java @@ -257,4 +257,25 @@ public class PurchaseOrderDO extends BusinessBaseDO { */ @TableField("SPLY_BSN_TP") private String splyBsnTp; + /** + * 产品组编码 + */ + @TableField("PDT_GRP_CDG") + private String pdtGrpCdg; + /** + * 产品组名称 + */ + @TableField("PDT_GRP_NAME") + private String pdtGrpName; + /** + * 分销聚道编码 + */ + @TableField("SALE_ACS_CDG") + private String saleAcsCdg; + /** + * 分销聚道名称 + */ + @TableField("SALE_ACS_NAME") + private String saleAcsName; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java new file mode 100644 index 0000000..cf915da --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java @@ -0,0 +1,268 @@ +package com.zt.plat.module.contractorder.dal.dataobject.salesorder; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** +* 采购订单 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_prch_ord") +@KeySequence("bse_prch_ord_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class SalesOrderDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * ERP订单号 + */ + @TableField("ORD_SAP_NUM") + private String orderSAPNumber; + /** + * 订单号 + */ + @TableField("SYS_ORD_NUM") + private String systemOrderNumber; + /** + * 公司名称 + */ + @TableField("CPN_NAME") + private String cpName; + /** + * 公司编码;推送ERP(必须) + */ + @TableField("CPN_NUM") + private String companyNumber; + /** + * 客商编码;推送ERP(必须) + */ + @TableField("SPLR_NUM") + private String supplierNumber; + /** + * 客商名称 + */ + @TableField("SPLR_NAME") + private String supplierName; + /** + * 订单类型(字典:PRCH_ORD_TP);推送ERP(必须) + */ + @TableField("TP") + private String type; + /** + * 凭证日期;推送ERP(必须) + */ + @TableField("VCHR_DT") + private LocalDateTime voucherDate; + /** + * 采购组织编码;推送ERP(必须) + */ + @TableField("PRCH_ORGZ_CD") + private String purchaseOrganizationCustomsDeclaration; + /** + * 收货工厂名称 + */ + @TableField("RCV_FACT_NAME") + private String receiveFactoryName; + /** + * 收货工厂编码;推送ERP(必须) + */ + @TableField("RCV_FACT_NUM") + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + @TableField("RCV_WRH_NAME") + private String receiveWarehouseName; + /** + * 收货库位编码;推送ERP + */ + @TableField("RCV_WRH_NUM") + private String receiveWarehouseNumber; + /** + * 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须) + */ + @TableField("PRCH_GRP") + private String purchaseGroup; + /** + * 货币码(字典:CUR);推送ERP(必须) + */ + @TableField("CUR_NUM") + private String currencyNumber; + /** + * 汇率;推送ERP + */ + @TableField("EXCH_RTE") + private BigDecimal exchangeRate; + /** + * 合同纸质合同号;推送ERP(必须) + */ + @TableField("PPR_CTRT_NUM") + private String paperContractNumber; + /** + * 小协议号;推送ERP + */ + @TableField("AGR_NUM") + private String agreementNumber; + /** + * 备注;推送ERP + */ + @TableField("RMK") + private String remark; + /** + * 代理方编码;推送ERP + */ + @TableField("AGT_NUM") + private String agentNumber; + /** + * 代理方名称 + */ + @TableField("AGT_NAME") + private String agentName; + /** + * 订单编码 + */ +// @TableField("ORD_NUM") +// private String orderNumber; + /** + * 系统合同编号 + */ + @TableField("CTRT_NUM") + private String contractNumber; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 合同名称 + */ + @TableField("CTRT_NAME") + private String contractName; + /** + * 小户头号 + */ + @TableField("TNT_NUM") + private String tenantNumber; + /** + * ERP公司编号 + */ + @TableField("ERP_PRCH_CPN_NUM") + private String erpPurchaseCompanyNumber; + /** + * ERP公司名称 + */ + @TableField("ERP_PRCH_CPN_NAME") + private String erpPurchaseCompanyName; + /** + * ERP客商公司编码 + */ + @TableField("ERP_SALE_CPN_NUM") + private String erpSalesCompanyNumber; + /** + * ERP客商公司名称 + */ + @TableField("ERP_SALE_CPN_NAME") + private String erpSalesCompanyName; + /** + * 采购组织名称 + */ + @TableField("PRCH_ORGZ_NAME") + private String purchaseOrganizationName; + /** + * ERP状态(字典: ERP_REQ_STS) + */ + @TableField("ERP_STS") + private String erpStatus; + /** + * 请求ERP失败原因 + */ + @TableField("CAUS") + private String cause; + /** + * 订单状态(字典:PRCH_ORD_STS) + */ + @TableField("STS") + private String status; + /** + * 采购组名称 + */ + @TableField("PRCH_GRP_NAME") + private String purchaseGroupName; + + /** + * 流程实例编号 + */ + @TableField("PRCS_INSC_ID") + private String processInstanceId; + + /** + * 流程当前任务节点id + */ + @TableField("TSK_NDE_ID") + private String taskId; + + /** + * 审批意见 + */ + @TableField("RVW_ONN") + private String reviewOpinion; + + /** + * 是否需要审批 + */ + @TableField("IS_PUSH") + private int isPush; + + /** + * 计量单位 + */ + @TableField("UNT") + private String unt; + + /** + * 物料字典 + * + */ + @TableField("MTRL_TP") + private String mtrlTp; + + /** + * 订单分类 + * + */ + @TableField("SPLY_BSN_TP") + private String splyBsnTp; + + @TableField("PDT_GRP_CDG") + private String pdtGrpCdg; + @TableField("PDT_GRP_NAME") + private String pdtGrpName; + @TableField("SALE_ACS_CDG") + private String saleAcsCdg; + @TableField("SALE_ACS_NAME") + private String saleAcsName; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java new file mode 100644 index 0000000..0ea6703 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java @@ -0,0 +1,158 @@ +package com.zt.plat.module.contractorder.dal.dataobject.salesorder; + +import lombok.*; +import java.util.*; + import java.math.BigDecimal; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 销售订单明细 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_sale_ord_dtl") +@KeySequence("bse_sale_ord_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class SalesOrderDetailDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 订单主键 + */ + @TableField("ORD_ID") + private Long orderId; + /** + * 行项目;推送ERP(必须) + */ + @TableField("LINE_NUM") + private Long lineNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 物料编码;推送ERP(必须) + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 工厂名称 + */ + @TableField("FACT_NAME") + private String factoryName; + /** + * 工厂编码;推送ERP(必须) + */ + @TableField("FACT_NUM") + private String factoryNumber; + /** + * 库位名称 + */ + @TableField("WRH_NAME") + private String warehouseName; + /** + * 库位编码;推送ERP(必须) + */ + @TableField("WRH_NUM") + private String warehouseNumber; + /** + * 计量单位;推送ERP(必须) + */ + @TableField("UNT") + private String unit; + /** + * 开票类型;推送ERP(必须) + */ + @TableField("INV_TP") + private String invoiceType; + /** + * 暂估数量;推送ERP(必须) + */ + @TableField("QTY") + private BigDecimal quantity; + /** + * 稅分类(字典:SALE_TAX);推送ERP(必须) + */ + @TableField("TAX_ACTS") + private String taxAcctasscat; + /** + * 项目类别;推送ERP + */ + @TableField("PRJ_CTGR") + private String projectCategory; + /** + * 装运地点;推送ERP + */ + @TableField("SHPP_PLCE") + private String shippingPlace; + /** + * 物料科目分配组;推送ERP(必须) + */ + @TableField("MTL_ACTS_GRP") + private String metalAcctasscatGroup; + /** + * 小协议号 + */ + @TableField("AGR_NUM") + private String agreementNumber; + /** + * 总价 + */ + @TableField("GRS") + private BigDecimal gross; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 是否启用;处理明细中多个相同物料,只能允许一种物料启用 + */ + @TableField("IS_ENB") + private String isEnable; + /** + * 价格条件详情;推送ERP(必须):JSON + */ + @TableField("PRC_CND_DTL") + private String priceConditionDetail; + /** + * 来料加工原料详情;推送ERP:订单类型(JSON) + */ + @TableField("ORGN_DTL") + private String originDetail; + + /** + * 税率 + */ + @TableField("TAX_RTE") + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java index e61f3a8..44865af 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java @@ -24,7 +24,7 @@ public interface PurchaseOrderMapper extends BaseMapperX { default PageResult selectPage(PurchaseOrderPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) - .eqIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) .eqIfPresent(PurchaseOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) .eqIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) .likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName()) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java new file mode 100644 index 0000000..60af871 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java @@ -0,0 +1,51 @@ +package com.zt.plat.module.contractorder.dal.mysql.salesorder; + +import java.util.*; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 销售订单明细 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface SalesOrderDetailMapper extends BaseMapperX { + + default PageResult selectPage(SalesOrderDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SalesOrderDetailDO::getOrderId, reqVO.getOrderId()) + .eqIfPresent(SalesOrderDetailDO::getLineNumber, reqVO.getLineNumber()) + .likeIfPresent(SalesOrderDetailDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(SalesOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(SalesOrderDetailDO::getFactoryName, reqVO.getFactoryName()) + .eqIfPresent(SalesOrderDetailDO::getFactoryNumber, reqVO.getFactoryNumber()) + .likeIfPresent(SalesOrderDetailDO::getWarehouseName, reqVO.getWarehouseName()) + .eqIfPresent(SalesOrderDetailDO::getWarehouseNumber, reqVO.getWarehouseNumber()) + .eqIfPresent(SalesOrderDetailDO::getUnit, reqVO.getUnit()) + .eqIfPresent(SalesOrderDetailDO::getInvoiceType, reqVO.getInvoiceType()) + .eqIfPresent(SalesOrderDetailDO::getQuantity, reqVO.getQuantity()) + .eqIfPresent(SalesOrderDetailDO::getTaxAcctasscat, reqVO.getTaxAcctasscat()) + .eqIfPresent(SalesOrderDetailDO::getProjectCategory, reqVO.getProjectCategory()) + .eqIfPresent(SalesOrderDetailDO::getShippingPlace, reqVO.getShippingPlace()) + .eqIfPresent(SalesOrderDetailDO::getMetalAcctasscatGroup, reqVO.getMetalAcctasscatGroup()) + .eqIfPresent(SalesOrderDetailDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(SalesOrderDetailDO::getGross, reqVO.getGross()) + .eqIfPresent(SalesOrderDetailDO::getElementAbbreviation, reqVO.getElementAbbreviation()) + .likeIfPresent(SalesOrderDetailDO::getElementName, reqVO.getElementName()) + .eqIfPresent(SalesOrderDetailDO::getElementNumber, reqVO.getElementNumber()) + .eqIfPresent(SalesOrderDetailDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(SalesOrderDetailDO::getPriceConditionDetail, reqVO.getPriceConditionDetail()) + .eqIfPresent(SalesOrderDetailDO::getOriginDetail, reqVO.getOriginDetail()) + .betweenIfPresent(SalesOrderDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SalesOrderDetailDO::getId)); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java new file mode 100644 index 0000000..a372de7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.contractorder.dal.mysql.salesorder; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 采购订单 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface SalesOrderMapper extends BaseMapperX { + + default PageResult selectPage(SalesOrderPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SalesOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) + .eqIfPresent(SalesOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .eqIfPresent(SalesOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) + .eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) + .likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName()) + .eqIfPresent(SalesOrderDO::getType, reqVO.getType()) + .betweenIfPresent(SalesOrderDO::getVoucherDate, reqVO.getVoucherDate()) + .eqIfPresent(SalesOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration()) + .likeIfPresent(SalesOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(SalesOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(SalesOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(SalesOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .eqIfPresent(SalesOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup()) + .eqIfPresent(SalesOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber()) + .eqIfPresent(SalesOrderDO::getExchangeRate, reqVO.getExchangeRate()) + .eqIfPresent(SalesOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) + .eqIfPresent(SalesOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(SalesOrderDO::getRemark, reqVO.getRemark()) + .eqIfPresent(SalesOrderDO::getAgentNumber, reqVO.getAgentNumber()) + .likeIfPresent(SalesOrderDO::getAgentName, reqVO.getAgentName()) +// .eqIfPresent(SalesOrderDO::getOrderNumber, reqVO.getOrderNumber()) + .eqIfPresent(SalesOrderDO::getContractNumber, reqVO.getContractNumber()) + .eqIfPresent(SalesOrderDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(SalesOrderDO::getMaterialName, reqVO.getMaterialName()) + .likeIfPresent(SalesOrderDO::getContractName, reqVO.getContractName()) + .eqIfPresent(SalesOrderDO::getTenantNumber, reqVO.getTenantNumber()) + .betweenIfPresent(SalesOrderDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(SalesOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) + .likeIfPresent(SalesOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) + .eqIfPresent(SalesOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) + .likeIfPresent(SalesOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName()) + .likeIfPresent(SalesOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName()) + .eqIfPresent(SalesOrderDO::getErpStatus, reqVO.getErpStatus()) + .eqIfPresent(SalesOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp()) + .eqIfPresent(SalesOrderDO::getCause, reqVO.getCause()) + .eqIfPresent(SalesOrderDO::getStatus, reqVO.getStatus()) + .likeIfPresent(SalesOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName()) + .orderByDesc(SalesOrderDO::getId)); + } +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index e758493..d81bf25 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -195,12 +195,6 @@ public interface ContractService { */ Boolean complete(List ids); - /** - * 关联订单;该接口仅供订单关联使用 - * - * @param LinkOrderReqVO 订单信息 - * @return 结果 - */ - Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 91f33c9..ccc090e 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -1556,20 +1556,6 @@ public class ContractServiceImpl implements ContractService { return true; } - @Override - public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) { - - SystemRelativityDO saveDO = new SystemRelativityDO(); - saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); - saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); - saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); - //判断订单有没有关联过 - if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId()))>0){ - throw exception(CONTRACT_ORDER_EXISTS); - } - return systemRelativityMapper.insert(saveDO)>0; - } - private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) { ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java index c9075b5..34cb420 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java @@ -4,6 +4,7 @@ import java.util.*; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import jakarta.validation.*; @@ -52,7 +53,7 @@ public interface PurchaseOrderService { * @param id 编号 * @return 采购订单 */ - PurchaseOrderDO getPurchaseOrder(Long id); + PurchaseOrderDO getPurchaseOrder(Long id,String splyBsnTp); /** * 获得采购订单分页 @@ -103,13 +104,7 @@ public interface PurchaseOrderService { * */ CommonResult getMaterial(String orderNo); - /** - * 关联订单 - * - * @param reqVO 关联订单 - * - */ - boolean linkOrder(LinkOrderReqVO reqVO); + /** * 订单审核通过和不通过 * @@ -117,4 +112,16 @@ public interface PurchaseOrderService { * */ boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO); + + List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO); + + List getBindOrderByOrder(DownOrUpOrderReqVO reqVO); + + /** + * 关联订单;该接口仅供订单关联使用 + * + * @param LinkOrderReqVO 订单信息 + * @return 结果 + */ + Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index df3849d..aa78b12 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -11,9 +11,13 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.*; import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; +import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractRespVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; +import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper; import com.zt.plat.module.contractorder.enums.contract.DictEnum; @@ -44,6 +48,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*; @@ -80,8 +85,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { @Resource private ContractService contractService; + @Resource + private SystemRelativityMapper systemRelativityMapper; + + @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) { // 插入 PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class); @@ -95,7 +104,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { purchaseOrder.setSystemOrderNumber(orderNumber); purchaseOrderMapper.insert(purchaseOrder); - if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()){ + if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) { return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class); } //批量插入订单明细 @@ -107,7 +116,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void updatePurchaseOrder(PurchaseOrderSaveReqVO updateReqVO) { // 校验存在 validatePurchaseOrderExists(updateReqVO.getId()); @@ -164,8 +173,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - public PurchaseOrderDO getPurchaseOrder(Long id) { - return purchaseOrderMapper.selectById(id); + public PurchaseOrderDO getPurchaseOrder(Long id, String splyBsnTp) { + return purchaseOrderMapper.selectOne(new LambdaQueryWrapper().eq(PurchaseOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), PurchaseOrderDO::getSplyBsnTp, splyBsnTp)); } @Override @@ -474,10 +483,18 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - public boolean linkOrder(LinkOrderReqVO reqVO) { - return contractService.linkOrder(reqVO); - } + public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) { + SystemRelativityDO saveDO = new SystemRelativityDO(); + saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); + saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); + saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); + //判断订单有没有关联过 + if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { + throw exception(CONTRACT_ORDER_EXISTS); + } + return systemRelativityMapper.insert(saveDO) > 0; + } private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) { //head @@ -543,7 +560,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (ObjectUtils.isEmpty(purchaseOrderDO)) { throw exception(PURCHASE_ORDER_NOT_EXISTS); } - AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); // 获取当前流程正在审批的任务节点 List taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData(); BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1); @@ -585,4 +601,68 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } return false; } + + @Override + public List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) { + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(reqVO.getOrderId()); + if (purchaseOrderDO == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + String contractNumber = purchaseOrderDO.getContractNumber();// 合同号 + + ContractRespVO upRelation = null; + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + upRelation = contractService.getUpRelation(Long.valueOf(contractNumber)); + } else { + //下游 + log.info("获取下游订单"); + upRelation = contractService.getDownRelation(Long.valueOf(contractNumber)); + } + List orderList = new ArrayList<>(); + if (upRelation != null) { + String systemContractNumber = upRelation.getSystemContractNumber(); + + List purchaseOrderDOS = purchaseOrderMapper.selectList(new LambdaQueryWrapper().eq(PurchaseOrderDO::getContractNumber, systemContractNumber)); + purchaseOrderDOS.forEach(p -> { + DownOrUpOrderRespVO downOrUpOrderRespVO = new DownOrUpOrderRespVO(); + downOrUpOrderRespVO.setOrderId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setOrderNo(p.getSystemOrderNumber()); + downOrUpOrderRespVO.setOrderType(reqVO.getOrderType()); + downOrUpOrderRespVO.setContractId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setContractName(p.getContractName()); + downOrUpOrderRespVO.setContractNumber(p.getContractNumber()); + orderList.add(downOrUpOrderRespVO); + } + ); + + } + return orderList; + } + + @Override + public List getBindOrderByOrder(DownOrUpOrderReqVO reqVO) { + List orderList = new ArrayList<>(); + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getDownId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + orderList.add(systemRelativityDO.getUpId().toString()); + }); + } + } else { + //下游 + log.info("获取下游订单"); + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + orderList.add(systemRelativityDO.getDownId().toString()); + }); + } + } + return orderList; + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java new file mode 100644 index 0000000..1fe03e8 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java @@ -0,0 +1,85 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import jakarta.validation.*; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 销售订单明细 Service 接口 + * + * @author 后台管理-1 + */ +public interface SalesOrderDetailService { + + /** + * 创建销售订单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + SalesOrderDetailRespVO createSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO createReqVO); + + /** + * 批量创建销售订单明细 + * + * @param createReqVOS 创建信息 + * @return 编号 + */ + List createSalesOrderDetail(@Valid List createReqVOS); + + /** + * 更新销售订单明细 + * + * @param updateReqVO 更新信息 + */ + void updateSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO updateReqVO); + + /** + * 删除销售订单明细 + * + * @param id 编号 + */ + void deleteSalesOrderDetail(Long id); + + /** + * 批量删除销售订单明细 + * + * @param ids 编号 + */ + void deleteSalesOrderDetailListByIds(List ids); + + /** + * 获得销售订单明细 + * + * @param id 编号 + * @return 销售订单明细 + */ + SalesOrderDetailDO getSalesOrderDetail(Long id); + + /** + * 获得销售订单明细分页 + * + * @param pageReqVO 分页查询 + * @return 销售订单明细分页 + */ + PageResult getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO); + + + /** + * 根据订单主键删除订单明细 + * + * @param orderIds 订单主键 + * + */ + void deleteSalesOrderDetailByOrderIds(List orderIds); + + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java new file mode 100644 index 0000000..9523d68 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -0,0 +1,111 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + + + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; + +import static com.zt.plat.module.contractorder.enums.salesorder.ErrorCodeConstants.SALES_ORDER_DETAIL_NOT_EXISTS; + +/** + * 销售订单明细 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { + + @Resource + private SalesOrderDetailMapper salesOrderDetailMapper; + + @Override + @Transactional + public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) { + // 插入 + SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class); + salesOrderDetailMapper.insert(salesOrderDetail); + // 返回 + return BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class); + } + + @Override + @Transactional + public List createSalesOrderDetail(List createReqVOS) { + List salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class); + salesOrderDetailMapper.insertBatch(salesOrderDetailDOS); + return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class); + } + + @Override + public void updateSalesOrderDetail(SalesOrderDetailSaveReqVO updateReqVO) { + // 校验存在 + validateSalesOrderDetailExists(updateReqVO.getId()); + // 更新 + SalesOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDetailDO.class); + salesOrderDetailMapper.updateById(updateObj); + } + + @Override + public void deleteSalesOrderDetail(Long id) { + // 校验存在 + validateSalesOrderDetailExists(id); + // 删除 + salesOrderDetailMapper.deleteById(id); + } + + @Override + public void deleteSalesOrderDetailListByIds(List ids) { + // 校验存在 + validateSalesOrderDetailExists(ids); + // 删除 + salesOrderDetailMapper.deleteByIds(ids); + } + + private void validateSalesOrderDetailExists(List ids) { + List list = salesOrderDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(SALES_ORDER_DETAIL_NOT_EXISTS); + } + } + + private void validateSalesOrderDetailExists(Long id) { + if (salesOrderDetailMapper.selectById(id) == null) { + throw exception(SALES_ORDER_DETAIL_NOT_EXISTS); + } + } + + @Override + public SalesOrderDetailDO getSalesOrderDetail(Long id) { + return salesOrderDetailMapper.selectById(id); + } + + @Override + public PageResult getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO) { + return salesOrderDetailMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteSalesOrderDetailByOrderIds(List orderIds) { + salesOrderDetailMapper.deleteBatch(SalesOrderDetailDO::getOrderId, orderIds); + } + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java new file mode 100644 index 0000000..2f17584 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java @@ -0,0 +1,65 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import jakarta.validation.*; + +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 采购订单 Service 接口 + * + * @author 后台管理-1 + */ +public interface SalesOrderService { + + /** + * 创建采购订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + SalesOrderRespVO createSalesOrder(@Valid SalesOrderSaveReqVO createReqVO); + + /** + * 更新采购订单 + * + * @param updateReqVO 更新信息 + */ + void updateSalesOrder(@Valid SalesOrderSaveReqVO updateReqVO); + + /** + * 删除采购订单 + * + * @param id 编号 + */ + void deleteSalesOrder(Long id); + + /** + * 批量删除采购订单 + * + * @param ids 编号 + */ + void deleteSalesOrderListByIds(List ids); + + /** + * 获得采购订单 + * + * @param id 编号 + * @return 采购订单 + */ + SalesOrderDO getSalesOrder(Long id, String splyBsnTp); + + /** + * 获得采购订单分页 + * + * @param pageReqVO 分页查询 + * @return 采购订单分页 + */ + PageResult getSalesOrderPage(SalesOrderPageReqVO pageReqVO); + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java new file mode 100644 index 0000000..8e4dbf0 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java @@ -0,0 +1,99 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.framework.common.pojo.PageResult; + +import com.zt.plat.framework.common.util.object.BeanUtils; + + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS; + + +/** + * 采购订单 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class SalesOrderServiceImpl implements SalesOrderService { + + @Resource + private SalesOrderMapper salesOrderMapper; + + @Override + @Transactional + public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) { + // 插入 + SalesOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, SalesOrderDO.class); + salesOrderMapper.insert(purchaseOrder); + // 返回 + return BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); + } + + @Override + @Transactional + public void updateSalesOrder(SalesOrderSaveReqVO updateReqVO) { + // 校验存在 + validateSalesOrderExists(updateReqVO.getId()); + // 更新 + SalesOrderDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDO.class); + salesOrderMapper.updateById(updateObj); + } + + @Override + @Transactional + public void deleteSalesOrder(Long id) { + // 校验存在 + validateSalesOrderExists(id); + // 删除 + salesOrderMapper.deleteById(id); + } + + @Override + @Transactional + public void deleteSalesOrderListByIds(List ids) { + // 校验存在 + validateSalesOrderExists(ids); + // 删除 + salesOrderMapper.deleteByIds(ids); + } + + private void validateSalesOrderExists(List ids) { + List list = salesOrderMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + } + + private void validateSalesOrderExists(Long id) { + if (salesOrderMapper.selectById(id) == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + } + + @Override + public SalesOrderDO getSalesOrder(Long id, String splyBsnTp) { + return salesOrderMapper.selectOne(new LambdaQueryWrapper().eq(SalesOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), SalesOrderDO::getSplyBsnTp, splyBsnTp)); + } + + @Override + public PageResult getSalesOrderPage(SalesOrderPageReqVO pageReqVO) { + return salesOrderMapper.selectPage(pageReqVO); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml index ab904c0..585f3e2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml @@ -166,6 +166,10 @@ po.CREATOR, po.UPDATER, po.DELETED, + po.pdtGrpCdg, + po.pdtGrpName, + po.saleAcsCdg, + po.saleAcsName, pod.ID as pod_id, pod.ORD_ID, pod.LINE_NUM, @@ -279,6 +283,10 @@ + + + + @@ -328,6 +336,5 @@ -