From 32e02d109f7a6e5cb1702fb1bbade1ec9f90bda5 Mon Sep 17 00:00:00 2001 From: zxy Date: Thu, 16 Apr 2026 17:18:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(example):=20=E6=96=B0=E5=A2=9E=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BE=9B=E5=BA=94=E5=95=86=E8=A1=A8=E5=8D=95=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/bussiness/OrderDetailMapper.xml | 65 +++++ .../java/jnpf/mapper/OrderDetailMapper.java | 9 + .../java/jnpf/service/OrderDetailService.java | 5 + .../service/impl/OrderDetailServiceImpl.java | 14 +- .../controller/OrderDetailController.java | 9 + .../order/OrderItemWithOrderPagination.java | 27 ++ .../model/order/OrderItemWithOrderVO.java | 93 ++++++ .../jnpf-web/src/views/example/common/dict.js | 20 ++ .../src/views/example/supplier/form.vue | 26 +- .../src/views/example/supplier/index.vue | 3 +- .../src/views/example/tsoorder/index.vue | 266 ++++++++++++++++++ .../src/views/example/tsoorder/orderDetail.js | 17 ++ .../src/views/example/usermachine/index.vue | 9 +- 13 files changed, 556 insertions(+), 7 deletions(-) create mode 100644 jnpf-java-boot/jnpf-admin/src/main/resources/mapper/bussiness/OrderDetailMapper.xml create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderPagination.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderVO.java create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/common/dict.js create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/tsoorder/index.vue create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/tsoorder/orderDetail.js diff --git a/jnpf-java-boot/jnpf-admin/src/main/resources/mapper/bussiness/OrderDetailMapper.xml b/jnpf-java-boot/jnpf-admin/src/main/resources/mapper/bussiness/OrderDetailMapper.xml new file mode 100644 index 0000000..89d8950 --- /dev/null +++ b/jnpf-java-boot/jnpf-admin/src/main/resources/mapper/bussiness/OrderDetailMapper.xml @@ -0,0 +1,65 @@ + + + + + + + diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java index 7d1f817..ddfa55c 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java @@ -1,7 +1,13 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.OrderDetailEntity; +import jnpf.model.order.OrderItemWithOrderPagination; +import jnpf.model.order.OrderItemWithOrderVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 业务订单明细 Mapper @@ -13,4 +19,7 @@ import jnpf.entity.OrderDetailEntity; */ public interface OrderDetailMapper extends BaseMapper { + List getOrderItemWithOrder(Page page, @Param("pagination") OrderItemWithOrderPagination pagination); + } + 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 386f0a1..f04fc2d 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 @@ -2,6 +2,8 @@ package jnpf.service; 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.OrderDetailPagination; import java.util.List; @@ -32,4 +34,7 @@ public interface OrderDetailService extends IService { */ List getListByOrderId(Long saleOrdId); + List getOrderItemWithOrder(OrderItemWithOrderPagination pagination); + + } 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 2a38a7b..8747534 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 @@ -1,9 +1,12 @@ package jnpf.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jnpf.entity.OrderDetailEntity; import jnpf.mapper.OrderDetailMapper; +import jnpf.model.order.OrderItemWithOrderPagination; +import jnpf.model.order.OrderItemWithOrderVO; import jnpf.model.orderdetail.OrderDetailPagination; import jnpf.service.OrderDetailService; import org.springframework.stereotype.Service; @@ -23,7 +26,7 @@ public class OrderDetailServiceImpl extends ServiceImpl getList(OrderDetailPagination orderDetailPagination) { - return null; + return null; } @Override @@ -34,6 +37,11 @@ public class OrderDetailServiceImpl extends ServiceImpl getOrderItemWithOrder(OrderItemWithOrderPagination pagination) { + Page page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize()); + List voList = this.baseMapper.getOrderItemWithOrder(page, pagination); + pagination.setTotal((int) page.getTotal()); + return voList; + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java index ba7498a..abbaae8 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java @@ -12,6 +12,8 @@ import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.constant.MsgCode; 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 jnpf.model.orderdetail.OrderDetailVO; @@ -52,6 +54,13 @@ public class OrderDetailController { return ActionResult.page(voList, JsonUtil.getJsonToBean(orderDetailPagination, PaginationVO.class)); } + + @Operation(summary = "订单明细分页查询(关联订单主表)") + @PostMapping("/getOrderItemWithOrder") + public ActionResult> getOrderItemWithOrder(@RequestBody OrderItemWithOrderPagination pagination) { + List voList = orderDetailService.getOrderItemWithOrder(pagination); + return ActionResult.page(voList, JsonUtil.getJsonToBean(pagination, PaginationVO.class)); + } /** * 根据订单ID获取明细列表 * diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderPagination.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderPagination.java new file mode 100644 index 0000000..cde393a --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderPagination.java @@ -0,0 +1,27 @@ +package jnpf.model.order; + +import jnpf.base.Pagination; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +public class OrderItemWithOrderPagination extends Pagination { + + @Schema(description = "下单时间开始") + private Date ordDateStart; + + @Schema(description = "下单时间结束") + private Date ordDateEnd; + + @Schema(description = "订单编码") + private String saleOrdNo; + + @Schema(description = "客户名称") + private String custName; + + @Schema(description = "行状态") + private String proStatus; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderVO.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderVO.java new file mode 100644 index 0000000..8e1ac66 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderItemWithOrderVO.java @@ -0,0 +1,93 @@ +package jnpf.model.order; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Schema(description = "订单子表与主表联表查询VO", name = "订单明细与订单联表查询") +public class OrderItemWithOrderVO implements Serializable { + + @Schema(description = "子表主键") + private Integer itemId; + + @Schema(description = "销售订单主表ID") + private Integer saleOrdId; + + @Schema(description = "订单编码") + private String saleOrdNo; + + @Schema(description = "订单状态") + private String ordStatus; + + @Schema(description = "生产状态") + private String proStatus; + + @Schema(description = "下单日期") + private Date ordDate; + + @Schema(description = "客户名称") + private String custName; + + @Schema(description = "产品名称") + private String materialName; + + @Schema(description = "规格型号") + private String spec; + + @Schema(description = "订单数量") + private BigDecimal ordQty; + + @Schema(description = "已转生产数量") + private BigDecimal produceQty; + + @Schema(description = "剩余数量") + private BigDecimal remainingQty; + + @Schema(description = "订单类型") + private String ordType; + + @Schema(description = "要求交货日期") + private Date reqDeliveryDate; + + @Schema(description = "是否急单") + private String isUrgent; + + @Schema(description = "单位") + private String unit; + + @Schema(description = "生产状态") + private String produceStatus; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "含税单价") + private BigDecimal priceTax; + + @Schema(description = "用途") + private String materialUse; + + @Schema(description = "已发货数量") + private BigDecimal deliveriedQty; + + @Schema(description = "行状态") + private String ordItemStatus; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "合同编号") + private String contractNo; + + @Schema(description = "创建时间") + private Date creatorTime; + + @Schema(description = "创建用户ID") + private String creatorUserId; + +} diff --git a/jnpf-java-boot/jnpf-web/src/views/example/common/dict.js b/jnpf-java-boot/jnpf-web/src/views/example/common/dict.js new file mode 100644 index 0000000..5f73670 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/common/dict.js @@ -0,0 +1,20 @@ +// 维护后期的字典信息 + +// 字典映射配置(id -> 名称) +export const dictMaps = { + // 生产状态 + proStatus: { '0': '正常', '1': '部分转生产', '2': '全部转生产' }, +}; + +// 根据映射自动生成下拉选项 +export const dictOptions = {}; +for (const key in dictMaps) { + const map = dictMaps[key]; + dictOptions[key] = Object.entries(map).map(([enCode, fullName]) => ({ enCode, fullName })); +} + +// 获取显示名称 +export function getLabel(type, value) { + const map = dictMaps[type]; + return map ? (map[value] || value) : value; +} diff --git a/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue index 645f69a..28582db 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue @@ -231,7 +231,31 @@ export default { }, handleClose() { this.visible = false; - this.$emit('refresh', true) + this.$emit('refresh', true); + this.resetDataForm(); + }, + resetDataForm() { + this.dataForm = { + id: "", + supplierNo: undefined, + supplierName: undefined, + supplierSimName: undefined, + supplierType: undefined, + supplierReg: undefined, + contact1: undefined, + conPhone1: undefined, + conAddress1: undefined, + contact2: undefined, + conPhone2: undefined, + conAddress2: undefined, + bankName: undefined, + bankAccount: undefined, + taxNo: undefined, + remark: undefined, + enabledStatus: "1", + status: "1", + isBlacklist: "0", + }; }, }, }; diff --git a/jnpf-java-boot/jnpf-web/src/views/example/supplier/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/supplier/index.vue index 5e280e0..0ea839a 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/supplier/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/supplier/index.vue @@ -50,8 +50,7 @@
- - + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/index.vue new file mode 100644 index 0000000..11c8e14 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/index.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/orderDetail.js b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/orderDetail.js new file mode 100644 index 0000000..fc80a8b --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/tsoorder/orderDetail.js @@ -0,0 +1,17 @@ +import request from '@/utils/request' + +export function getOrderDetailWithOrder(data) { + return request({ + url: '/api/example/OrderDetail/getOrderDetailWithOrder', + method: 'post', + data + }) +} + +export function exportOrderDetailWithOrder(data) { + return request({ + url: '/api/example/OrderDetail/exportOrderDetailWithOrder', + method: 'post', + data + }) +} diff --git a/jnpf-java-boot/jnpf-web/src/views/example/usermachine/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/usermachine/index.vue index a950a8e..3f4959f 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/usermachine/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/usermachine/index.vue @@ -201,6 +201,10 @@ export default { this.list = res.data.list || []; this.total = res.data.pagination.total; this.listLoading = false; + // 如果有数据,默认显示第一条的机台信息 + if (this.list.length > 0) { + this.showMachineList(this.list[0]); + } }); }, addOrUpdateHandle(row) { @@ -217,7 +221,10 @@ export default { }, refresh(isRefresh) { this.formVisible = false; - if (isRefresh) this.search(); + if (isRefresh) { + this.listQuery.currentPage = 1; + this.initData(); + } }, reset() { this.query = {