From 494e5e16909ff4d76216f5b658351cce7b3b0ca8 Mon Sep 17 00:00:00 2001 From: zxy Date: Fri, 24 Apr 2026 17:48:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(proorder):=20=E6=B7=BB=E5=8A=A0=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jnpf/service/ProOrderService.java | 7 +- .../service/impl/ProOrderServiceImpl.java | 38 +- .../jnpf/controller/ProOrderController.java | 7 +- .../java/jnpf/model/order/OrderLineForm.java | 3 - .../java/jnpf/model/order/ProOrderForm.java | 6 + .../jnpf-web/src/router/modules/base.js | 11 + .../views/example/eqpatrolconfig/detail.vue | 2 + .../views/example/eqpatrolconfig/index.vue | 2 +- .../src/views/example/proorder/form.vue | 677 ++++++++++++++++++ .../src/views/example/proorder/index.vue | 72 +- 10 files changed, 780 insertions(+), 45 deletions(-) create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/proorder/form.vue 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 5c74ee6..9ce24c4 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 @@ -1,10 +1,7 @@ package jnpf.service; import com.baomidou.mybatisplus.extension.service.IService; -import jnpf.model.order.ExampleOrderForm; -import jnpf.model.order.ProOrderEntity; -import jnpf.model.order.ProOrderPagination; -import jnpf.model.order.ProOrderVO; +import jnpf.model.order.*; import java.util.List; @@ -36,6 +33,8 @@ public interface ProOrderService extends IService { void generate(ExampleOrderForm proOrderForm); + String update(ProOrderForm proOrderForm); + String generateCheck(ExampleOrderForm proOrderForm); String removeInfo(ProOrderEntity proOrderEntity); 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 c5f38dc..ba2ee4e 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 @@ -212,6 +212,42 @@ public class ProOrderServiceImpl extends ServiceImpl lineList = proOrderForm.getProLines(); + proOrderLineService.removeByProId(entity.getId()); + for (OrderLineForm lineForm : lineList) { + ProOrderLineEntity lineEntity = JsonUtil.getJsonToBean(lineForm, ProOrderLineEntity.class); + lineEntity.setProId(entity.getId()); + lineEntity.setProNo(entity.getProNo()); + lineEntity.setRemark(lineForm.getRemark()); + lineEntity.setProBgDate(lineForm.getPlanStartDate()); + lineEntity.setProEndDate(lineForm.getPlanEndDate()); + lineEntity.setLineId(Integer.valueOf(lineForm.getLineId())); + lineEntity.setLineCd(lineForm.getLineCode()); + lineEntity.setLineName(lineForm.getLineName()); + lineEntity.setPlanQty(lineForm.getAllocateQty()); + lineEntity.setCompleteQty(BigDecimal.ZERO); + proOrderLineService.save(lineEntity); + } + List orderItems = proOrderForm.getOrderItems(); + for (OrderDetailForm orderItem : orderItems) { + OrderDetailEntity detailEntity = orderDetailService.getById(orderItem.getItemId()); + detailEntity.setProduceQty(orderItem.getPlanQty()); + orderDetailService.updateById(detailEntity); + } + // 计算 + return null; + } + @Override public String generateCheck(ExampleOrderForm proOrderForm) { // 校验订单状态 @@ -243,7 +279,7 @@ public class ProOrderServiceImpl extends ServiceImpl soRelationEntityList = proSoRelationService.getListByProId(proOrderEntity.getId()); for (ProSoRelationEntity proSoRelationEntity : soRelationEntityList) { OrderDetailEntity detailEntity = orderDetailService.getById(proSoRelationEntity.getProItemId()); - detailEntity.setProduceQty(detailEntity.getProduceQty().add(proSoRelationEntity.getChangProQty())); + detailEntity.setProduceQty(detailEntity.getProduceQty().subtract(proSoRelationEntity.getChangProQty())); if (detailEntity.getProduceQty().compareTo(BigDecimal.ZERO) == 0) { detailEntity.setOrdItemStatus("0"); } else { 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 ed48e28..de6b30c 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 @@ -126,9 +126,10 @@ public class ProOrderController { }) @PutMapping("/{id}") public ActionResult update(@RequestBody ProOrderForm proOrderForm) { - ProOrderEntity entity = JsonUtil.getJsonToBean(proOrderForm, ProOrderEntity.class); - entity.setId(proOrderForm.getId()); - proOrderService.updateById(entity); + String message = proOrderService.update(proOrderForm); + if (ObjectUtil.isNotEmpty(message)) { + return ActionResult.fail(message); + } return ActionResult.success(MsgCode.SU004.get()); } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderLineForm.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderLineForm.java index 5f77513..92740ee 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderLineForm.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderLineForm.java @@ -37,9 +37,6 @@ public class OrderLineForm implements Serializable { @Schema(description = "分配数量") private BigDecimal allocateQty; - @Schema(description = "完成数量") - private BigDecimal completedQty; - @Schema(description = "备注") private String remark; diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ProOrderForm.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ProOrderForm.java index 6ea9fbc..e26858f 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ProOrderForm.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/ProOrderForm.java @@ -1,11 +1,13 @@ package jnpf.model.order; import io.swagger.v3.oas.annotations.media.Schema; +import jnpf.model.orderdetail.OrderDetailForm; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 生产订单 Form @@ -82,5 +84,9 @@ public class ProOrderForm implements Serializable { @Schema(description = "流程任务主键") private String flowTaskId; + private List proLines; + + private List orderItems; + } diff --git a/jnpf-java-boot/jnpf-web/src/router/modules/base.js b/jnpf-java-boot/jnpf-web/src/router/modules/base.js index b470441..ad6e82c 100644 --- a/jnpf-java-boot/jnpf-web/src/router/modules/base.js +++ b/jnpf-java-boot/jnpf-web/src/router/modules/base.js @@ -87,5 +87,16 @@ const baseRouter = [{ icon: 'icon-ym icon-ym-btn-add', } }, +{ + path: '/example/proorder/form', + component: (resolve) => require(['@/views/example/proorder/form'], resolve), + name: 'proorderForm', + meta: { + title: 'proorderForm', + affix: false, + zhTitle: '生产订单编辑', + icon: 'icon-ym icon-ym-btn-add', + } +}, ] export default baseRouter \ No newline at end of file diff --git a/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/detail.vue b/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/detail.vue index 3b05960..a51eded 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/detail.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/detail.vue @@ -126,6 +126,7 @@ export default { }).catch((err) => { this.loading = false this.dialogVisible = false + this.$emit('close') this.$message({ type: 'error', message: err.message || '获取数据失败' @@ -150,6 +151,7 @@ export default { }, handleClose() { this.dialogVisible = false + this.$emit('close') } } } diff --git a/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/index.vue index 81af352..5c0bf69 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/eqpatrolconfig/index.vue @@ -70,7 +70,7 @@ - + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/proorder/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/proorder/form.vue new file mode 100644 index 0000000..7743831 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/proorder/form.vue @@ -0,0 +1,677 @@ + + + + + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/proorder/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/proorder/index.vue index 081865b..ab66769 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/proorder/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/proorder/index.vue @@ -43,14 +43,8 @@ -
- -
+
+
- + - + - + @@ -100,7 +94,7 @@ @@ -110,19 +104,19 @@ -
- - -
+
+ + +
关联销售订单
- - - - - + border style="flex: 1; width: 100%;"> + + + + + @@ -130,30 +124,30 @@
- -
+ +
产线订单信息
- + border style="flex: 1; width: 100%;"> + - - - - + + + + - + - + @@ -165,8 +159,9 @@
- + +
@@ -229,6 +224,11 @@ export default { this.initDefaultDate(); this.initData(); }, + watch: { + '$route.query.refresh'() { + this.initData(); + } + }, methods: { initDefaultDate() { const now = new Date(); @@ -329,6 +329,12 @@ export default { this.$refs.Detail.init(row.id); }); }, + editHandle(row) { + this.$router.push({ + path: '/example/proorder/form', + query: { id: row.id } + }); + }, closeHandle(row) { this.$confirm('此操作将关闭该生产订单, 是否继续?', '提示', { confirmButtonText: '确定',