From f6f66e16273fbfca7c5e41b180c792e1da01a5ef Mon Sep 17 00:00:00 2001 From: chenhao Date: Wed, 19 Nov 2025 11:21:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(manage):=20=E6=B7=BB=E5=8A=A0=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E8=AE=B0=E5=BD=95=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= =?UTF-8?q?-=20=E6=96=B0=E5=A2=9E=E5=8F=91=E8=B4=A7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20-=20=E5=AE=9E=E7=8E=B0=E5=8F=91=E8=B4=A7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8F=8A=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20-=20=E6=B7=BB=E5=8A=A0=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20-=20=E5=AE=9E=E7=8E=B0=E5=8F=91=E8=B4=A7=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=AF=A6=E6=83=85=E6=9F=A5=E7=9C=8B=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20-=20=E6=B7=BB=E5=8A=A0=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=8A=9F=E8=83=BD=20-=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E7=8A=B6=E6=80=81=E5=92=8C=E7=89=A9=E6=B5=81?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86-=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E8=AE=B0=E5=BD=95=E6=90=9C=E7=B4=A2=E5=92=8C?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oms_web/oms_vue/src/api/homepage.js | 19 + oms_web/oms_vue/src/api/manage/delivery.js | 96 ++++ oms_web/oms_vue/src/api/manage/order.js | 61 +++ oms_web/oms_vue/src/api/manage/service.js | 28 ++ .../delivery/components/DeliveryForm.vue | 215 ++++++++ .../delivery/components/DeliveryItems.vue | 157 ++++++ .../manage/delivery/components/Detail.vue | 86 ++++ .../delivery/components/SelectOrder.vue | 120 +++++ .../src/views/manage/delivery/index.vue | 338 +++++++++++++ .../src/views/manage/order/OrderForm.vue | 472 ++++++++++++++++++ .../oms_vue/src/views/manage/order/index.vue | 220 ++++++++ .../src/views/manage/service/index.vue | 179 +++++++ .../vue/VueDeliveryListController.java | 63 +++ .../controller/vue/VueOrderController.java | 93 ++++ .../vue/VueOrderDeliveryController.java | 91 ++++ 15 files changed, 2238 insertions(+) create mode 100644 oms_web/oms_vue/src/api/homepage.js create mode 100644 oms_web/oms_vue/src/api/manage/delivery.js create mode 100644 oms_web/oms_vue/src/api/manage/order.js create mode 100644 oms_web/oms_vue/src/api/manage/service.js create mode 100644 oms_web/oms_vue/src/views/manage/delivery/components/DeliveryForm.vue create mode 100644 oms_web/oms_vue/src/views/manage/delivery/components/DeliveryItems.vue create mode 100644 oms_web/oms_vue/src/views/manage/delivery/components/Detail.vue create mode 100644 oms_web/oms_vue/src/views/manage/delivery/components/SelectOrder.vue create mode 100644 oms_web/oms_vue/src/views/manage/delivery/index.vue create mode 100644 oms_web/oms_vue/src/views/manage/order/OrderForm.vue create mode 100644 oms_web/oms_vue/src/views/manage/order/index.vue create mode 100644 oms_web/oms_vue/src/views/manage/service/index.vue create mode 100644 ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueDeliveryListController.java create mode 100644 ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderController.java create mode 100644 ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderDeliveryController.java diff --git a/oms_web/oms_vue/src/api/homepage.js b/oms_web/oms_vue/src/api/homepage.js new file mode 100644 index 00000000..b28b7616 --- /dev/null +++ b/oms_web/oms_vue/src/api/homepage.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 获取商机管理数据 +export function getProjectData(day) { + return request({ + url: '/homepage/project', + method: 'get', + params: { day } + }) +} + +// 获取合同信息数据 +export function getOrderData(month) { + return request({ + url: '/homepage/order', + method: 'get', + params: { month } + }) +} diff --git a/oms_web/oms_vue/src/api/manage/delivery.js b/oms_web/oms_vue/src/api/manage/delivery.js new file mode 100644 index 00000000..f0373ab1 --- /dev/null +++ b/oms_web/oms_vue/src/api/manage/delivery.js @@ -0,0 +1,96 @@ +import request from '@/utils/request' + +// 查询发货记录列表 +export function listDelivery(query) { + return request({ + url: '/manage/delivery/vue/list', + method: 'get', + params: query + }) +} + +// 查询发货记录详细 +export function getDelivery(id) { + return request({ + url: '/manage/delivery/vue/' + id, + method: 'get' + }) +} + +// 新增发货记录 +export function addDelivery(data) { + return request({ + url: '/manage/delivery/vue', + method: 'post', + data: data + }) +} + +// 修改发货记录 +export function updateDelivery(data) { + return request({ + url: '/manage/delivery/vue', + method: 'put', + data: data + }) +} + +// 删除发货记录 +export function delDelivery(id) { + return request({ + url: '/manage/delivery/vue/' + id, + method: 'delete' + }) +} + +// 导出发货记录 +export function exportDelivery(query) { + return request({ + url: '/manage/delivery/vue/export', + method: 'get', + params: query + }) +} + +// 查询关联合同列表 +export function listOrder(query) { + return request({ + url: '/manage/order/vue/list', + method: 'get', + params: query + }) +} + +// 查询发货清单列表 +export function listDeliveryItems(query) { + return request({ + url: '/sip/list/vue/list', + method: 'get', + params: query + }) +} + +// 导入发货清单 +export function importDeliveryItems(data) { + return request({ + url: '/sip/list/vue/importData', + method: 'post', + headers: { + 'Content-Type': 'multipart/form-data' + }, + data: data + }) +} + +// 下载发货清单模板 +export function downloadTemplate() { + return request({ + url: '/sip/list/vue/export', + method: 'post', + data: { + deliveryId: -1, + productCode: '', + serialNumber: '' + } + }) +} diff --git a/oms_web/oms_vue/src/api/manage/order.js b/oms_web/oms_vue/src/api/manage/order.js new file mode 100644 index 00000000..4f2e87bf --- /dev/null +++ b/oms_web/oms_vue/src/api/manage/order.js @@ -0,0 +1,61 @@ +import request from '@/utils/request' + +const baseURL = '/manage/order/vue' + +// 查询合同档案列表 +export function listOrder(query) { + return request({ + url: `${baseURL}/list`, + method: 'get', + params: query + }) +} + +// 查询合同档案详细 +export function getOrder(id) { + return request({ + url: `${baseURL}/${id}`, + method: 'get' + }) +} + +// 新增合同档案 +export function addOrder(data) { + return request({ + url: baseURL, + method: 'post', + data: data + }) +} + +// 修改合同档案 +export function updateOrder(data) { + return request({ + url: baseURL, + method: 'put', + data: data + }) +} + +// 删除合同档案 +export function delOrder(id) { + return request({ + url: `${baseURL}/${id}`, + method: 'delete' + }) +} + +// 导出合同档案 +export function exportOrder(query) { + return request({ + url: `${baseURL}/export`, + method: 'post', + params: query + }) +} +export function getOrderDetails(query) { + return request({ + url: `/project/order/query/`+query, + method: 'get' + }) +} diff --git a/oms_web/oms_vue/src/api/manage/service.js b/oms_web/oms_vue/src/api/manage/service.js new file mode 100644 index 00000000..4629ba25 --- /dev/null +++ b/oms_web/oms_vue/src/api/manage/service.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +// 查询产品信息 +export function getProductInfo(serialNumber) { + return request({ + url: '/manage/service/product', + method: 'get', + params: { serialNumber } + }) +} + +// 查询相关合同信息 +export function getOrderInfo(serialNumber) { + return request({ + url: '/manage/service/order', + method: 'get', + params: { serialNumber } + }) +} + +// 查询标准保修信息 +export function getWarrantyInfo(serialNumber) { + return request({ + url: '/manage/service/query', + method: 'get', + params: { serialNumber } + }) +} diff --git a/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryForm.vue b/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryForm.vue new file mode 100644 index 00000000..bea67321 --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryForm.vue @@ -0,0 +1,215 @@ + + + diff --git a/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryItems.vue b/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryItems.vue new file mode 100644 index 00000000..5504fd04 --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/delivery/components/DeliveryItems.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/oms_web/oms_vue/src/views/manage/delivery/components/Detail.vue b/oms_web/oms_vue/src/views/manage/delivery/components/Detail.vue new file mode 100644 index 00000000..abba775b --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/delivery/components/Detail.vue @@ -0,0 +1,86 @@ + + + diff --git a/oms_web/oms_vue/src/views/manage/delivery/components/SelectOrder.vue b/oms_web/oms_vue/src/views/manage/delivery/components/SelectOrder.vue new file mode 100644 index 00000000..143cf65a --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/delivery/components/SelectOrder.vue @@ -0,0 +1,120 @@ + + + diff --git a/oms_web/oms_vue/src/views/manage/delivery/index.vue b/oms_web/oms_vue/src/views/manage/delivery/index.vue new file mode 100644 index 00000000..119d0f81 --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/delivery/index.vue @@ -0,0 +1,338 @@ + + + diff --git a/oms_web/oms_vue/src/views/manage/order/OrderForm.vue b/oms_web/oms_vue/src/views/manage/order/OrderForm.vue new file mode 100644 index 00000000..ae60a7b8 --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/order/OrderForm.vue @@ -0,0 +1,472 @@ + + + + diff --git a/oms_web/oms_vue/src/views/manage/order/index.vue b/oms_web/oms_vue/src/views/manage/order/index.vue new file mode 100644 index 00000000..f0617a10 --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/order/index.vue @@ -0,0 +1,220 @@ + + + diff --git a/oms_web/oms_vue/src/views/manage/service/index.vue b/oms_web/oms_vue/src/views/manage/service/index.vue new file mode 100644 index 00000000..4fd29f0f --- /dev/null +++ b/oms_web/oms_vue/src/views/manage/service/index.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueDeliveryListController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueDeliveryListController.java new file mode 100644 index 00000000..9894a0fc --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueDeliveryListController.java @@ -0,0 +1,63 @@ +package com.ruoyi.sip.controller.vue; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.sip.domain.DeliveryList; +import com.ruoyi.sip.service.IDeliveryListService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 发货清单Controller (Vue) + * + * @author ruoyi + * @date 2025-04-11 + */ +@RestController +@RequestMapping("/sip/list/vue") +public class VueDeliveryListController extends BaseController { + + @Autowired + private IDeliveryListService deliveryListService; + + /** + * 查询发货清单列表 + */ + @RequiresPermissions("sip:list:list") + @GetMapping("/list") + public TableDataInfo list(DeliveryList deliveryList) { + startPage(); + List list = deliveryListService.selectDeliveryListList(deliveryList); + return getDataTable(list); + } + + /** + * 导入数据 + */ + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, Long deliveryId) throws Exception { + ExcelUtil util = new ExcelUtil<>(DeliveryList.class); + List deliveryList = util.importExcel(file.getInputStream()); + return deliveryListService.importData(deliveryList, deliveryId); + } + + /** + * 导出发货清单列表 + */ + @RequiresPermissions("sip:list:export") + @Log(title = "发货清单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public AjaxResult export(@RequestBody DeliveryList deliveryList) { + List list = deliveryListService.selectDeliveryListList(deliveryList); + ExcelUtil util = new ExcelUtil<>(DeliveryList.class); + return util.exportExcel(list, "发货清单数据"); + } +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderController.java new file mode 100644 index 00000000..9f9114ec --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderController.java @@ -0,0 +1,93 @@ +package com.ruoyi.sip.controller.vue; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.sip.domain.OrderInfo; +import com.ruoyi.sip.domain.OrderList; +import com.ruoyi.sip.service.IOrderInfoService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 合同档案Controller (Vue) + * + * @author mula + * @date 2025-04-11 + */ +@RestController +@RequestMapping("/manage/order/vue") +public class VueOrderController extends BaseController { + + @Autowired + private IOrderInfoService orderInfoService; + + + + /** + * 查询合同档案列表 + */ + @RequiresPermissions("manage:order:list") + @GetMapping("/list") + public TableDataInfo list(OrderInfo orderInfo) { + startPage(); + List list = orderInfoService.selectOrderInfoList(orderInfo); + return getDataTable(list); + } + + /** + * 获取合同档案详细信息 + */ + @RequiresPermissions("manage:order:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(orderInfoService.selectOrderInfoById(id)); + } + + /** + * 新增合同档案 + */ + @RequiresPermissions("manage:order:add") + @PostMapping + public AjaxResult add(@RequestBody OrderInfo orderInfo) { + return toAjax(orderInfoService.insertOrderInfo(orderInfo)); + } + + /** + * 修改合同档案 + */ + @RequiresPermissions("manage:order:edit") + @PutMapping + public AjaxResult edit(@RequestBody OrderInfo orderInfo) { + return toAjax(orderInfoService.updateOrderInfo(orderInfo)); + } + + /** + * 删除合同档案 + */ + @RequiresPermissions("manage:order:remove") + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable("ids") String ids) { + return toAjax(orderInfoService.deleteOrderInfoByIds(ids)); + } + + /** + * 导出合同档案列表 + */ + @RequiresPermissions("manage:order:export") + @GetMapping("/export") + public AjaxResult export(OrderInfo orderInfo) { + List list = orderInfoService.selectOrderInfoList(orderInfo); + ExcelUtil util = new ExcelUtil(OrderInfo.class); + return util.exportExcel(list, "order"); + } + + + + +} \ No newline at end of file diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderDeliveryController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderDeliveryController.java new file mode 100644 index 00000000..fe53c95b --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueOrderDeliveryController.java @@ -0,0 +1,91 @@ +package com.ruoyi.sip.controller.vue; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.sip.domain.OrderDelivery; +import com.ruoyi.sip.service.IOrderDeliveryService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 发货记录Controller (Vue) + * + * @author mula + * @date 2025-04-11 + */ +@RestController +@RequestMapping("/manage/delivery/vue") +public class VueOrderDeliveryController extends BaseController { + + @Autowired + private IOrderDeliveryService orderDeliveryService; + + /** + * 查询发货记录列表 + */ + @RequiresPermissions("manage:delivery:list") + @GetMapping("/list") + public TableDataInfo list(OrderDelivery orderDelivery) { + startPage(); + List list = orderDeliveryService.selectOrderDeliveryList(orderDelivery); + return getDataTable(list); + } + + /** + * 导出发货记录列表 + */ + @RequiresPermissions("manage:delivery:export") + @Log(title = "发货记录", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(OrderDelivery orderDelivery) { + List list = orderDeliveryService.selectOrderDeliveryList(orderDelivery); + ExcelUtil util = new ExcelUtil<>(OrderDelivery.class); + return util.exportExcel(list, "发货记录数据"); + } + + /** + * 获取发货记录详细信息 + */ + @RequiresPermissions("manage:delivery:list") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(orderDeliveryService.selectOrderDeliveryById(id)); + } + + /** + * 新增发货记录 + */ + @RequiresPermissions("manage:delivery:add") + @Log(title = "发货记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody OrderDelivery orderDelivery) { + return toAjax(orderDeliveryService.insertOrderDelivery(orderDelivery)); + } + + /** + * 修改发货记录 + */ + @RequiresPermissions("manage:delivery:edit") + @Log(title = "发货记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody OrderDelivery orderDelivery) { + return toAjax(orderDeliveryService.updateOrderDelivery(orderDelivery)); + } + + /** + * 删除发货记录 + */ + @RequiresPermissions("manage:delivery:remove") + @Log(title = "发货记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String ids) { + return toAjax(orderDeliveryService.deleteOrderDeliveryByIds(ids)); + } +}