From 9592f36871f027ba1def5a97b039eefa299b7cf3 Mon Sep 17 00:00:00 2001 From: zxy Date: Mon, 20 Apr 2026 11:44:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(example):=20=E4=BC=98=E5=8C=96=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jnpf/service/OrderDetailService.java | 3 + .../java/jnpf/service/ProOrderService.java | 3 + .../service/impl/OrderDetailServiceImpl.java | 15 ++ .../service/impl/ProOrderServiceImpl.java | 44 +++- .../jnpf/controller/ProOrderController.java | 34 ++- .../jnpf/model/order/ExampleOrderForm.java | 11 +- .../src/views/example/proline/select.vue | 43 ++-- .../views/example/tsoorder/generate/index.vue | 221 ++++++++++++++---- .../src/views/example/tsoorder/index.vue | 30 ++- 9 files changed, 312 insertions(+), 92 deletions(-) diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java index f9360d5..553d141 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import jnpf.entity.OrderDetailEntity; import jnpf.model.order.OrderItemWithOrderPagination; import jnpf.model.order.OrderItemWithOrderVO; +import jnpf.model.orderdetail.OrderDetailForm; import jnpf.model.orderdetail.OrderDetailPagination; import java.util.List; @@ -39,4 +40,6 @@ public interface OrderDetailService extends IService { List getOrderItemWithOrderByIds(List orderIds); + String close(OrderDetailForm proOrderForm); + } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ProOrderService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ProOrderService.java index 52cc6e7..cf2769f 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ProOrderService.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ProOrderService.java @@ -35,4 +35,7 @@ public interface ProOrderService extends IService { ProOrderVO getInfoById(Integer id); void generate(ExampleOrderForm proOrderForm); + + String generateCheck(ExampleOrderForm proOrderForm); + } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java index c5309ed..24c7c97 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java @@ -7,6 +7,7 @@ import jnpf.entity.OrderDetailEntity; import jnpf.mapper.OrderDetailMapper; import jnpf.model.order.OrderItemWithOrderPagination; import jnpf.model.order.OrderItemWithOrderVO; +import jnpf.model.orderdetail.OrderDetailForm; import jnpf.model.orderdetail.OrderDetailPagination; import jnpf.service.OrderDetailService; import org.springframework.stereotype.Service; @@ -49,4 +50,18 @@ public class OrderDetailServiceImpl extends ServiceImpl getOrderItemWithOrderByIds(List orderIds) { return this.baseMapper.getOrderItemWithOrderByIds(orderIds); } + + @Override + public String close(OrderDetailForm proOrderForm) { + OrderDetailEntity detailEntity = this.getById(proOrderForm.getId()); + if (detailEntity == null) { + return "该订单产品信息不存在,请刷新数据!"; + } + if ("9".equals(detailEntity.getOrdItemStatus())) { + return "该订单产品信息已关闭,请刷新数据!"; + } + detailEntity.setOrdItemStatus("9"); + this.updateById(detailEntity); + return null; + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ProOrderServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ProOrderServiceImpl.java index e08ea08..f5d5518 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ProOrderServiceImpl.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ProOrderServiceImpl.java @@ -108,22 +108,27 @@ public class ProOrderServiceImpl extends ServiceImpl orderItems = orderForm.getOrderItems(); + OrderDetailForm orderDetailForm = orderItems.stream().findFirst().get(); + if (orderDetailForm != null) { + OrderDetailEntity itemEntity = orderDetailService.getById(orderDetailForm.getItemId()); + proOrder.setMaterialId(itemEntity.getMaterialId()); + proOrder.setMaterialCode(itemEntity.getMaterialCode()); + proOrder.setMaterialName(itemEntity.getMaterialName()); + proOrder.setSpec(itemEntity.getSpec()); + proOrder.setUnit(itemEntity.getUnit()); + } this.save(proOrder); - List orderItems = orderForm.getOrderItems(); for (OrderDetailForm orderItem : orderItems) { OrderDetailEntity detailEntity = orderDetailService.getById(orderItem.getItemId()); ExampleOrderEntity orderEntity = orderService.getById(detailEntity.getSaleOrdId()); @@ -161,4 +166,27 @@ public class ProOrderServiceImpl extends ServiceImpl orderItems = proOrderForm.getOrderItems(); + for (OrderDetailForm orderItem : orderItems) { + OrderDetailEntity detailEntity = orderDetailService.getById(orderItem.getItemId()); + if (detailEntity == null) { + return "选择订单不存在,请刷新页面!"; + } + ExampleOrderEntity orderEntity = orderService.getById(detailEntity.getSaleOrdId()); + if (orderEntity == null) { + return "选择订单不存在,请刷新页面!"; + } + if (!"3".equals(orderEntity.getOrdStatus())) { + return "选择订单(" + orderEntity.getSaleOrdNo() + " )非审批状态,请刷新界面"; + } + if ("2".equals(detailEntity.getOrdItemStatus()) || "9".equals(detailEntity.getOrdItemStatus())) { + return "选择订单(" + orderEntity.getSaleOrdNo() + " )已关闭或全部转产,请刷新界面"; + } + } + return null; + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ProOrderController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ProOrderController.java index cf4e247..dde3288 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ProOrderController.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ProOrderController.java @@ -11,6 +11,8 @@ import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.constant.MsgCode; import jnpf.model.order.*; +import jnpf.model.orderdetail.OrderDetailForm; +import jnpf.service.OrderDetailService; import jnpf.service.ProOrderService; import jnpf.util.JsonUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +36,10 @@ public class ProOrderController { @Autowired private ProOrderService proOrderService; + @Autowired + private OrderDetailService orderDetailService; + + /** * 列表 * @@ -71,7 +77,7 @@ public class ProOrderController { * @param proOrderForm 实体模型 * @return */ - @Operation(summary = "生成生产订单") + @Operation(summary = "生成生产订单校验") @SaCheckPermission("example.proOrder") @Parameter(name = "proOrderForm", description = "实体模型", required = true) @PostMapping("/generate") @@ -80,6 +86,32 @@ public class ProOrderController { return ActionResult.success(MsgCode.SU001.get()); } + @Operation(summary = "生成生产订单") + @SaCheckPermission("example.proOrder") + @Parameter(name = "proOrderForm", description = "实体模型", required = true) + @PostMapping("/generateCheck") + public ActionResult generateCheck(@RequestBody ExampleOrderForm proOrderForm) { + String message = proOrderService.generateCheck(proOrderForm); + if (ObjectUtil.isNotEmpty(message)) { + return ActionResult.fail(message); + } + return ActionResult.success(MsgCode.SU001.get()); + } + + // 关闭订单 + @Operation(summary = "关闭生产订单") + @SaCheckPermission("example.proOrder") + @Parameter(name = "proOrderForm", description = "实体模型", required = true) + @PostMapping("/close") + public ActionResult close(@RequestBody OrderDetailForm proOrderForm) { + String message = orderDetailService.close(proOrderForm); + if (ObjectUtil.isNotEmpty(message)) { + return ActionResult.fail(message); + } + return ActionResult.success(MsgCode.SU001.get()); + } + + /** * 修改 * diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ExampleOrderForm.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ExampleOrderForm.java index 28821fe..5500363 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ExampleOrderForm.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ExampleOrderForm.java @@ -138,21 +138,12 @@ public class ExampleOrderForm { private BigDecimal planQty; - private String materialName; - - private String materialCode; - - private String materialId; - - private String spec; - - private String unit; + private Date proDate; private String processFlow; private String isAllLine; - private List orderItems; private List proLines; diff --git a/jnpf-java-boot/jnpf-web/src/views/example/proline/select.vue b/jnpf-java-boot/jnpf-web/src/views/example/proline/select.vue index e24979b..871d164 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/proline/select.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/proline/select.vue @@ -7,10 +7,9 @@ 重置 - @@ -18,24 +17,19 @@ - + -
- -
+ @@ -126,15 +120,7 @@ export default { this.loadProLineList(); }, - handleSizeChange(val) { - this.page.pageSize = val; - this.loadProLineList(); - }, - handleCurrentChange(val) { - this.page.currentPage = val; - this.loadProLineList(); - }, handleSelectionChange(val) { this.selectedLines = val; @@ -156,6 +142,11 @@ export default { this.$emit("confirm", selectedData); this.$emit("update:visible", false); this.selectedLines = []; + }, + + handleClose() { + this.$emit("update:visible", false); + this.selectedLines = []; } } }; @@ -177,11 +168,7 @@ export default { width: 200px; } -.pagination-container { - display: flex; - justify-content: center; - margin-top: 16px; -} + .dialog-footer { display: flex; diff --git a/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/generate/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/generate/index.vue index 1a3f5cf..d67ec8e 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/generate/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/generate/index.vue @@ -1,11 +1,11 @@