From 9e6b5105cb599c0e7a055caf40b17e8e55f5cf8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=B8=87=E9=87=8C?= <1726150332@qq.com> Date: Fri, 17 Apr 2026 13:20:36 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E5=A2=9E=E5=8A=A0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=92=8C=E4=BF=9D=E5=AD=98=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/tyre/BaseCarController.java | 1 + .../tyre/BizMaintenanceOrderController.java | 69 +++++++- .../src/main/resources/templates/login.html | 4 +- .../src/main/resources/templates/main_v1.html | 16 +- .../resources/templates/tyre/order/add.html | 149 ++++++++++-------- .../resources/templates/tyre/order/order.html | 49 ++++-- .../common/utils/spring/SpringUtils.java | 32 ++++ .../ruoyi/framework/config/ShiroConfig.java | 2 + .../system/domain/BizMaintenanceOrder.java | 53 ++++++- .../mapper/BizMaintenanceOrderMapper.java | 2 + .../service/IBizMaintenanceOrderService.java | 3 + .../impl/BizMaintenanceOrderServiceImpl.java | 13 ++ .../mapper/tyre/BaseInventoryMapper.xml | 1 - .../mapper/tyre/BizMaintenanceOrderMapper.xml | 32 +++- 14 files changed, 326 insertions(+), 100 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseCarController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseCarController.java index c3d6a43d..83e5a5ee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseCarController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseCarController.java @@ -168,4 +168,5 @@ public class BaseCarController extends BaseController { return baseCarService.queryCarByRfid(baseCar); } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java index 40709273..b04b52a8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java @@ -1,6 +1,10 @@ package com.ruoyi.web.controller.tyre; import java.util.List; + +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.domain.BaseCar; +import com.ruoyi.system.service.IBaseCarService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -27,9 +31,13 @@ public class BizMaintenanceOrderController extends BaseController { private String prefix = "tyre/order"; + @Autowired + private IBaseCarService baseCarService; + @Autowired private IBizMaintenanceOrderService bizMaintenanceOrderService; + @RequiresPermissions("system:order:view") @GetMapping() public String order() @@ -77,13 +85,19 @@ public class BizMaintenanceOrderController extends BaseController return util.exportExcel(list, "维保工单数据"); } + /** + * 新增维保工单 + */ /** * 新增维保工单 */ @RequiresPermissions("system:order:add") @GetMapping("/add") - public String add() - { + public String add(ModelMap mmap) { + // 查询车辆数据 + List baseCarList = baseCarService.selectBaseCarList(new BaseCar()); + mmap.put("baseCarList", baseCarList); + mmap.put("orderNo", orderNoCreate()); return prefix + "/add"; } @@ -142,4 +156,55 @@ public class BizMaintenanceOrderController extends BaseController return AjaxResult.success(list); } + /** + * PDA添加保存工单 + * @param bizMaintenanceOrder + * @return + */ + @PostMapping("/PDAAddMaintenanceOrder") + @ResponseBody + public AjaxResult PDAAddMaintenanceOrder(@RequestBody BizMaintenanceOrder bizMaintenanceOrder) + { + String orderNo=orderNoCreate(); + bizMaintenanceOrder.setOrderNo(orderNo); + return toAjax(bizMaintenanceOrderService.insertBizMaintenanceOrder(bizMaintenanceOrder)); + } + + /** + * PDA保存执行工单的方法 + * @param bizMaintenanceOrder + * @return + */ + @PostMapping("/PDASaveMaintenanceOrder") + @ResponseBody + public AjaxResult PDASaveMaintenanceOrder(@RequestBody BizMaintenanceOrder bizMaintenanceOrder) + { + bizMaintenanceOrder.setOrderNo(orderNoCreate()); + return toAjax(bizMaintenanceOrderService.updateBizMaintenanceOrder(bizMaintenanceOrder)); + } + + private String orderNoCreate(){ + // 查询当天的工单号(返回的是当天最新的一条记录) + BizMaintenanceOrder bizMaintenanceOrder = bizMaintenanceOrderService.selectBizMaintenanceOrderTD(); + + String orderNo; + String today = new java.text.SimpleDateFormat("yyyyMMdd").format(new java.util.Date()); + + if (bizMaintenanceOrder == null) { + // 当天没有工单,从001开始 + orderNo = today + "001"; + } else { + // 获取已有订单号 + String lastOrderNo = bizMaintenanceOrder.getOrderNo(); + // 提取流水号部分(后三位) + String seqStr = lastOrderNo.substring(lastOrderNo.length() - 3); + int seq = Integer.parseInt(seqStr); + // 流水号+1 + int newSeq = seq + 1; + // 格式化为三位数字(不足三位前面补0) + String newSeqStr = String.format("%03d", newSeq); + orderNo = today + newSeqStr; + } + return orderNo; + } } diff --git a/ruoyi-admin/src/main/resources/templates/login.html b/ruoyi-admin/src/main/resources/templates/login.html index 507dd170..3bafde85 100644 --- a/ruoyi-admin/src/main/resources/templates/login.html +++ b/ruoyi-admin/src/main/resources/templates/login.html @@ -118,12 +118,12 @@
- +
- +
diff --git a/ruoyi-admin/src/main/resources/templates/main_v1.html b/ruoyi-admin/src/main/resources/templates/main_v1.html index 4565491e..e0496b5c 100644 --- a/ruoyi-admin/src/main/resources/templates/main_v1.html +++ b/ruoyi-admin/src/main/resources/templates/main_v1.html @@ -19,12 +19,12 @@
-
  • - - - - - -
  • + + + + + +
  • @@ -218,7 +218,9 @@ var prefix = ctx + "tyre/tyre"; var datas = [[${@dict.getType('tyre_type')}]]; var shopData = { - 'one': [], // 一分公司:空数组 + 'one': [ + { value: 'guangming', name: '一分公司修理厂' }, + ], // 一分公司:空数组 'three': [ // 三分公司:包含两个选项 { value: 'guangming', name: '光明修理厂' }, { value: 'shiyan', name: '石岩修理厂' } diff --git a/ruoyi-admin/src/main/resources/templates/tyre/order/add.html b/ruoyi-admin/src/main/resources/templates/tyre/order/add.html index 69a7538f..b30d1499 100644 --- a/ruoyi-admin/src/main/resources/templates/tyre/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/tyre/order/add.html @@ -3,6 +3,8 @@ + +
    @@ -11,23 +13,25 @@
    - +
    - +
    - -
    -
    -
    -
    -
    - -
    - + +
    @@ -36,86 +40,48 @@
  • - +
    - +
    + + + +
    + + + +
    +
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - +
    - +
    -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    +
    + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/tyre/order/order.html b/ruoyi-admin/src/main/resources/templates/tyre/order/order.html index 09809b8b..1363688b 100644 --- a/ruoyi-admin/src/main/resources/templates/tyre/order/order.html +++ b/ruoyi-admin/src/main/resources/templates/tyre/order/order.html @@ -23,6 +23,10 @@
  • +
  • @@ -36,6 +40,12 @@ +
  • + + + - + +
  •  搜索  重置 @@ -47,11 +57,11 @@
    - 添加 - - - 修改 + 新增维保 + + + 删除 @@ -92,10 +102,6 @@ field: 'orderNo', title: '工单编号' }, - { - field: 'vehicleId', - title: '车辆ID/轮胎ID' - }, { field: 'plateNumber', title: '车牌号码' @@ -108,8 +114,8 @@ } }, { - field: 'factoryId', - title: '维修站点/修理厂ID' + field: 'factoryName', + title: '维修站点' }, { field: 'inputMileage', @@ -134,20 +140,33 @@ return $.table.selectDictLabel(statusDatas, value); } }, - { - field: 'orderType', - title: '1代表汽车、2代表轮胎' - }, + { field: 'remark', title: '备注' }, + { + field: 'userName', + title: '创建人' + }, + { + field: 'userName', + title: '创建时间' + }, + { + field: 'updateName', + title: '维保人' + }, + { + field: 'updateTime', + title: '维保时间' + }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; - actions.push('编辑 '); + // actions.push('编辑 '); actions.push('删除'); return actions.join(''); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java index c5699ad4..8ccc5365 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java @@ -10,6 +10,10 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import com.ruoyi.common.utils.StringUtils; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.atomic.AtomicInteger; + /** * spring工具类 方便在非spring管理环境中获取bean * @@ -22,6 +26,11 @@ public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationC private static ConfigurableListableBeanFactory beanFactory; private static ApplicationContext applicationContext; + // 1. 定义时间格式化器 (yyyy-MM-dd) -> 例如 20260416 + private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd"); + + // 2. 定义原子计数器 (线程安全,最大支持 9999) + private static final AtomicInteger counter = new AtomicInteger(1); @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException @@ -156,4 +165,27 @@ public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationC return applicationContext.getEnvironment().getRequiredProperty(key); } + /** + * 生成工单号:yyyyMMdd + 4位流水号 + * 例如:202604160001 + */ + public static synchronized String generateOrderNo() { + // 获取当前日期字符串 + String dateStr = LocalDateTime.now().format(DATE_FORMATTER); + + // 获取当前计数并自增 + int seq = counter.getAndIncrement(); + + // 如果超过 9999,重置为 1 (防止溢出,实际业务中一天很难超过1万单,除非用long) + if (seq > 9999) { + counter.set(1); + seq = 1; + } + + // 格式化流水号为 4 位 (0001, 0002...) + String seqStr = String.format("%04d", seq); + + return dateStr + seqStr; + } + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java index 04a38ad9..6a51b89b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java @@ -345,6 +345,8 @@ public class ShiroConfig filterChainDefinitionMap.put("/system/package/checkUpdate", "anon,captchaValidate"); filterChainDefinitionMap.put("/common/downloadApk", "anon,captchaValidate"); filterChainDefinitionMap.put("/tyre/order/PDAGetMaintenanceOrder", "anon,captchaValidate"); + filterChainDefinitionMap.put("/tyre/order/PDAAddMaintenanceOrder", "anon,captchaValidate"); + filterChainDefinitionMap.put("/tyre/order/PDASaveMaintenanceOrder", "anon,captchaValidate"); // 系统权限列表 // filterChainDefinitionMap.putAll(SpringUtils.getBean(IMenuService.class).selectPermsAll()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/BizMaintenanceOrder.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/BizMaintenanceOrder.java index 3abb57b4..fc7015cf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/BizMaintenanceOrder.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/BizMaintenanceOrder.java @@ -38,9 +38,12 @@ public class BizMaintenanceOrder extends BaseEntity private String typeCode; /** 维修站点/修理厂ID */ - @Excel(name = "维修站点/修理厂ID") + //@Excel(name = "维修站点/修理厂ID") private Long factoryId; + @Excel(name = "维修站点") + private String factoryName; + /** 仪表盘录入里程(截图中的必填项) */ @Excel(name = "仪表盘录入里程", readConverterExp = "截=图中的必填项") private BigDecimal inputMileage; @@ -63,10 +66,54 @@ public class BizMaintenanceOrder extends BaseEntity private String status; /** 1代表汽车、2代表轮胎 */ - @Excel(name = "1代表汽车、2代表轮胎") + // @Excel(name = "1代表汽车、2代表轮胎") private String orderType; - public void setOrderId(Long orderId) + @Excel(name = "创建人") + private String userName; + + @Excel(name = "维保人") + private String updateName; + + @Excel(name = "维保时间") + private Date updateTime; + + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUpdateName() { + return updateName; + } + + public void setUpdateName(String updateName) { + this.updateName = updateName; + } + + @Override + public Date getUpdateTime() { + return updateTime; + } + + @Override + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public void setOrderId(Long orderId) { this.orderId = orderId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/BizMaintenanceOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/BizMaintenanceOrderMapper.java index 22f9ac84..724276bf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/BizMaintenanceOrderMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/BizMaintenanceOrderMapper.java @@ -61,4 +61,6 @@ public interface BizMaintenanceOrderMapper * @return 结果 */ public int deleteBizMaintenanceOrderByOrderIds(String[] orderIds); + + BizMaintenanceOrder selectBizMaintenanceOrderTD(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IBizMaintenanceOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IBizMaintenanceOrderService.java index 9a17dca3..0315e843 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IBizMaintenanceOrderService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IBizMaintenanceOrderService.java @@ -60,4 +60,7 @@ public interface IBizMaintenanceOrderService public int deleteBizMaintenanceOrderByOrderId(Long orderId); List selectBizMaintenanceOrderListTwo(BizMaintenanceOrder bizMaintenanceOrder); + + + BizMaintenanceOrder selectBizMaintenanceOrderTD(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BizMaintenanceOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BizMaintenanceOrderServiceImpl.java index aa0a4522..54d2a1b6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BizMaintenanceOrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BizMaintenanceOrderServiceImpl.java @@ -1,7 +1,10 @@ package com.ruoyi.system.service.impl; import java.util.List; + +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.BizMaintenanceOrderMapper; @@ -9,6 +12,8 @@ import com.ruoyi.system.domain.BizMaintenanceOrder; import com.ruoyi.system.service.IBizMaintenanceOrderService; import com.ruoyi.common.core.text.Convert; +import static com.ruoyi.common.utils.ShiroUtils.getLoginName; + /** * 维保工单Service业务层处理 * @@ -55,6 +60,7 @@ public class BizMaintenanceOrderServiceImpl implements IBizMaintenanceOrderServi public int insertBizMaintenanceOrder(BizMaintenanceOrder bizMaintenanceOrder) { bizMaintenanceOrder.setCreateTime(DateUtils.getNowDate()); + bizMaintenanceOrder.setCreateBy(getLoginName()); return bizMaintenanceOrderMapper.insertBizMaintenanceOrder(bizMaintenanceOrder); } @@ -68,6 +74,7 @@ public class BizMaintenanceOrderServiceImpl implements IBizMaintenanceOrderServi public int updateBizMaintenanceOrder(BizMaintenanceOrder bizMaintenanceOrder) { bizMaintenanceOrder.setUpdateTime(DateUtils.getNowDate()); + bizMaintenanceOrder.setStatus("COMPLETED"); return bizMaintenanceOrderMapper.updateBizMaintenanceOrder(bizMaintenanceOrder); } @@ -96,7 +103,13 @@ public class BizMaintenanceOrderServiceImpl implements IBizMaintenanceOrderServi } @Override + @DataScope(deptAlias = "d", userAlias = "u") public List selectBizMaintenanceOrderListTwo(BizMaintenanceOrder bizMaintenanceOrder) { return bizMaintenanceOrderMapper.selectBizMaintenanceOrderListTwo(bizMaintenanceOrder); } + + @Override + public BizMaintenanceOrder selectBizMaintenanceOrderTD() { + return bizMaintenanceOrderMapper.selectBizMaintenanceOrderTD(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/tyre/BaseInventoryMapper.xml b/ruoyi-system/src/main/resources/mapper/tyre/BaseInventoryMapper.xml index 3d963ab6..a4241b93 100644 --- a/ruoyi-system/src/main/resources/mapper/tyre/BaseInventoryMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/tyre/BaseInventoryMapper.xml @@ -62,7 +62,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT COUNT(*) FROM `base_car` - @@ -68,6 +86,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where order_id = #{orderId} + insert into biz_maintenance_order