From 4450143298f467e05c84c7f2bfc8b04412d5ebc8 Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期五, 19 十二月 2025 14:40:55 +0800
Subject: [PATCH] 提交工单管理功能1

---
 fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java         |   43 ++
 fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java         |  100 ++++++
 fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java              |   42 ++
 fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml            |  450 ++++++++++++++++++++++++++++
 fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java   |   10 
 fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java       |   28 +
 fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java             |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java |   36 ++
 fzzy-igdss-web/src/main/resources/templates/work/list.html                |  130 ++++++++
 fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java  |   61 +++
 fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java      |   28 +
 11 files changed, 929 insertions(+), 0 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java
new file mode 100644
index 0000000..c493865
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java
@@ -0,0 +1,43 @@
+package com.fzzy.work.data;
+
+/**
+ * @Desc:
+ * @Author: Andy.jia
+ * @Date: 2025/12/18
+ */
+public enum OrderStatus {
+
+    STATUS_10("10", "宸叉彁浜�"),
+    STATUS_20("20", "宸叉淳鍗�"),
+    STATUS_30("30", "澶勭悊涓�"),
+    STATUS_40("40", "宸茶В鍐�"),
+    STATUS_50("50", "宸插叧闂�"),
+    STATUS_60("60", "鎸傝捣");
+
+    private String code;
+    private String msg;
+
+    OrderStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+        if(null == code) return null;
+        if(OrderStatus.STATUS_10.getCode().equals(code)) return OrderStatus.STATUS_10.getMsg();
+        if(OrderStatus.STATUS_20.getCode().equals(code)) return OrderStatus.STATUS_20.getMsg();
+        if(OrderStatus.STATUS_30.getCode().equals(code)) return OrderStatus.STATUS_30.getMsg();
+        if(OrderStatus.STATUS_40.getCode().equals(code)) return OrderStatus.STATUS_40.getMsg();
+        if(OrderStatus.STATUS_50.getCode().equals(code)) return OrderStatus.STATUS_50.getMsg();
+        if(OrderStatus.STATUS_60.getCode().equals(code)) return OrderStatus.STATUS_60.getMsg();
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java
new file mode 100644
index 0000000..a59a1ef
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java
@@ -0,0 +1,28 @@
+package com.fzzy.work.data;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * @Desc:
+ * @Author: Andy.jia
+ * @Date: 2025/12/19
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+public class WorkOrderParam {
+
+    private String companyId;
+
+    private String deptId;
+
+    private String name;
+
+    private String status;
+
+    private Date start;
+
+    private Date end;
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
new file mode 100644
index 0000000..f8d8bed
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
@@ -0,0 +1,100 @@
+package com.fzzy.work.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Desc: 宸ュ崟绫�
+ * @Author: Andy.jia
+ * @Date: 2025/12/18
+ */
+@Data
+@Entity
+@Table(name = "work_order")
+@TableName("work_order")
+@EqualsAndHashCode(callSuper = false)
+public class WorkOrder implements Serializable {
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '宸ュ崟缂栧彿'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "title", columnDefinition = "varchar(200) COMMENT '宸ュ崟鏍囬/闂鎽樿'")
+    @TableField("title")
+    private String title;
+
+    @Column(name = "description", columnDefinition = "varchar(200) COMMENT '闂璇︾粏鎻忚堪'")
+    @TableField("description")
+    private String description;
+
+    @Column(name = "biz_type", columnDefinition = "varchar(20) COMMENT '涓氬姟鍒嗙被'")
+    @TableField("biz_type")
+    private String bizType;
+
+    @Column(name = "category", columnDefinition = "varchar(20) COMMENT '宸ュ崟鍒嗙被'")
+    @TableField("category")
+    private String category;
+
+    @Column(name = "status", columnDefinition = "varchar(20) COMMENT '鐘舵��'")
+    @TableField("status")
+    private String status;
+
+    @Column(name = "assignee_id", columnDefinition = "varchar(20) COMMENT '澶勭悊浜�'")
+    @TableField("assignee_id")
+    private String assigneeId;
+
+    @Column(name = "assignee_name", columnDefinition = "varchar(20) COMMENT '澶勭悊浜�'")
+    @TableField("assignee_name")
+    private String assigneeName;
+
+    @Column(name = "recive_time")
+    @TableField("recive_time")
+    private Date receiveTime;
+
+    @Column(name = "create_time")
+    @TableField("create_time")
+    private Date createTime;
+
+    @Column(name = "create_user_id", columnDefinition = "varchar(30) COMMENT '鍒涘缓浜�'")
+    @TableField("create_user_id")
+    private String createUserId;
+
+    @Column(name = "create_user_name", columnDefinition = "varchar(30) COMMENT '鍒涘缓浜�'")
+    @TableField("create_user_name")
+    private String createUserName;
+
+    @Column(name = "business_id", columnDefinition = "varchar(40) COMMENT '涓氬姟鍏宠仈涓婚敭'")
+    @TableField("business_id")
+    private String businessId;
+
+    @Column(name = "business_url", columnDefinition = "varchar(100) COMMENT '涓氬姟鍔熻兘璺緞'")
+    @TableField("business_url")
+    private String businessUrl;
+
+    @Column(name = "remark", columnDefinition = "varchar(200) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+    @Column(name = "company_id", columnDefinition = "varchar(10) COMMENT '鎵�灞炵粍缁�'")
+    @TableField("company_id")
+    private String companyId;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
new file mode 100644
index 0000000..b8ccc9f
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
@@ -0,0 +1,61 @@
+package com.fzzy.work.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Desc: 宸ュ崟浣滀笟璁板綍
+ * @Author: Andy.jia
+ * @Date: 2025/12/18
+ */
+@Data
+@Entity
+@Table(name = "work_order_process")
+@TableName("work_order_process")
+@EqualsAndHashCode(callSuper = false)
+public class WorkOrderProcess implements Serializable {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '宸ュ崟缂栧彿'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "order_id", columnDefinition = "varchar(40) COMMENT '宸ュ崟ID'")
+    @TableField("order_id")
+    private String orderId;
+
+    @Column(name = "operator_id", columnDefinition = "varchar(20) COMMENT '鎿嶄綔浜�'")
+    @TableField("operator_id")
+    private String operatorId;
+
+    @Column(name = "operator_name", columnDefinition = "varchar(30) COMMENT '鎿嶄綔浜�'")
+    @TableField("operator_name")
+    private String operatorName;
+
+    @Column(name = "action", columnDefinition = "varchar(20) COMMENT '鎿嶄綔鍔ㄤ綔'")
+    @TableField("action")
+    private String action;
+
+    @Column(name = "create_time")
+    @TableField("create_time")
+    private Date createTime;
+
+    @Column(name = "remark", columnDefinition = "varchar(200) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java
new file mode 100644
index 0000000..ac15208
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java
@@ -0,0 +1,10 @@
+package com.fzzy.work.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.work.domain.WorkOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java
new file mode 100644
index 0000000..2c8d6ce
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java
@@ -0,0 +1 @@
+package com.fzzy.work;
\ No newline at end of file
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
new file mode 100644
index 0000000..08605f8
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -0,0 +1,36 @@
+package com.fzzy.work.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.WorkOrderParam;
+import com.fzzy.work.domain.WorkOrder;
+import com.fzzy.work.mapper.WorkOrderMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @Desc:
+ * @Author: Andy.jia
+ * @Date: 2025/12/19
+ */
+@Service
+public class WorkOrderService {
+    @Resource
+    private WorkOrderMapper workOrderMapper;
+
+    public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
+
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+
+        if (null == param) {
+            param = new WorkOrderParam();
+        }
+        param.setCompanyId(ContextUtil.getCompanyId());
+
+        queryWrapper.eq("company_id", param.getCompanyId());
+
+        workOrderMapper.selectPage(page, queryWrapper);
+    }
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
new file mode 100644
index 0000000..1e6c185
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.work.domain.WorkOrder</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">宸ュ崟ID</Property>
+      </PropertyDef>
+      <PropertyDef name="title">
+        <Property></Property>
+        <Property name="label">宸ュ崟鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="description">
+        <Property></Property>
+        <Property name="label">宸ュ崟鎻忚堪</Property>
+      </PropertyDef>
+      <PropertyDef name="bizType">
+        <Property></Property>
+        <Property name="label">涓氬姟鍒嗙被</Property>
+      </PropertyDef>
+      <PropertyDef name="category">
+        <Property></Property>
+        <Property name="label">宸ュ崟鍒嗙被</Property>
+      </PropertyDef>
+      <PropertyDef name="status">
+        <Property></Property>
+        <Property name="label">宸ュ崟鐘舵��</Property>
+      </PropertyDef>
+      <PropertyDef name="assigneeId">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="assigneeName">
+        <Property></Property>
+        <Property name="label">褰撳墠澶勭悊浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="receiveTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">褰撳墠鐜妭鎺ユ敹鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">宸ュ崟鍒涘缓鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="createUserId">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="createUserName">
+        <Property></Property>
+        <Property name="label">宸ュ崟鍒涘缓浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="businessId">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="businessUrl">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtParam">
+      <Property name="creationType">com.fzzy.work.data.WorkOrderParam</Property>
+      <PropertyDef name="companyId">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲簱鍖�</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">宸ュ崟鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="status">
+        <Property></Property>
+        <Property name="label">宸ュ崟鐘舵��</Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">query = function(){&#xD;
+    view.get(&quot;#dsQuery&quot;).flushAsync();&#xD;
+};&#xD;
+query();&#xD;
+&#xD;
+      &#xD;
+//瀹d紶鎿嶄綔&#xD;
+renderCell1 = function(arg,self){&#xD;
+   var data = arg.data;&#xD;
+   var htm = &quot;&lt;a onClick='audit()' class='a-btn1'>瀹℃壒&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='showDetail()' class='a-btn2'>璇︾粏&lt;/a>&quot;;&#xD;
+   arg.dom.innerHTML = htm;&#xD;
+};&#xD;
+&#xD;
+renderStatus = function(arg){&#xD;
+	var txt = arg.data.getText(&quot;auditStatus&quot;);&#xD;
+	if(!txt) return true;&#xD;
+	var htm = &quot;&lt;span class='s2'>&quot;+txt+&quot;&lt;/span>&quot;;&#xD;
+	if(txt.includes(&quot;閫�鍥�&quot;)){&#xD;
+		htm = &quot;&lt;span class='s3'>&quot;+txt+&quot;&lt;/span>&quot;;&#xD;
+	}&#xD;
+	if(txt.includes(&quot;鎷掔粷&quot;)){&#xD;
+		htm = &quot;&lt;span class='s3'>&quot;+txt+&quot;&lt;/span>&quot;;&#xD;
+	}&#xD;
+	if(txt.includes(&quot;閫氳繃&quot;)){&#xD;
+		htm = &quot;&lt;span class='s1'>&quot;+txt+&quot;&lt;/span>&quot;;&#xD;
+	}&#xD;
+    arg.dom.innerHTML = htm;&#xD;
+}&#xD;
+&#xD;
+//鐐瑰嚮瀹℃牳&#xD;
+audit = function(){&#xD;
+	&#xD;
+}&#xD;
+//鐐瑰嚮璇︾粏&#xD;
+showDetail = function(){&#xD;
+	&#xD;
+}</ClientEvent>
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">workOrderPR#pageQuery</Property>
+      <Property name="pageSize">15</Property>
+      <Property name="loadMode">lazy</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <ClientEvent name="onReady">self.insert({});&#xD;
+</ClientEvent>
+      <Property name="dataType">[dtParam]</Property>
+    </DataSet>
+    <Container>
+      <Property name="className">c-param</Property>
+      <AutoForm>
+        <Property name="cols">*,*,*,*</Property>
+        <Property name="dataSet">dsQuery</Property>
+        <Property name="labelAlign">right</Property>
+        <Property name="labelWidth">100</Property>
+        <AutoFormElement>
+          <Property name="name">deptId</Property>
+          <Property name="property">deptId</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">name</Property>
+          <Property name="property">name</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">status</Property>
+          <Property name="property">status</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">start</Property>
+          <Property name="property">start</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">end</Property>
+          <Property name="property">end</Property>
+          <Editor/>
+        </AutoFormElement>
+        <Button>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
+            }else{&#xD;
+            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+            }</ClientEvent>
+          <Property name="caption">鎼滅储</Property>
+          <Property name="iconClass">fa fa-search</Property>
+          <Property name="exClassName">btn-q1</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#dsQuery&quot;).flushAsync();</ClientEvent>
+          <Property name="caption">閲嶇疆</Property>
+          <Property name="exClassName">btn-q2</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+        </Button>
+      </AutoForm>
+    </Container>
+    <Container>
+      <Property name="className">c-data</Property>
+      <ToolBar>
+        <ToolBarButton layoutConstraint="left">
+          <Property name="caption">瀵煎嚭EXCEL</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-file-excel-o</Property>
+        </ToolBarButton>
+      </ToolBar>
+      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <Property name="selectionMode">singleRow</Property>
+        <Property name="readOnly">true</Property>
+        <RowSelectorColumn/>
+        <RowNumColumn>
+          <Property name="width">50</Property>
+          <Property name="caption">搴忓彿</Property>
+        </RowNumColumn>
+        <DataColumn name="id">
+          <Property name="property">id</Property>
+        </DataColumn>
+        <DataColumn name="title">
+          <Property name="property">title</Property>
+        </DataColumn>
+        <DataColumn name="description">
+          <Property name="property">description</Property>
+        </DataColumn>
+        <DataColumn name="bizType">
+          <Property name="property">bizType</Property>
+        </DataColumn>
+        <DataColumn name="category">
+          <Property name="property">category</Property>
+        </DataColumn>
+        <DataColumn name="assigneeName">
+          <Property name="property">assigneeName</Property>
+        </DataColumn>
+        <DataColumn name="receiveTime">
+          <Property name="property">receiveTime</Property>
+        </DataColumn>
+        <DataColumn name="createUserName">
+          <Property name="property">createUserName</Property>
+        </DataColumn>
+        <DataColumn name="createTime">
+          <Property name="property">createTime</Property>
+        </DataColumn>
+        <DataColumn>
+          <ClientEvent name="onRenderCell">renderStatus(arg);</ClientEvent>
+          <Property name="property">status</Property>
+          <Property name="width">120</Property>
+          <Property name="align">center</Property>
+          <Property name="name">status</Property>
+        </DataColumn>
+        <DataColumn>
+          <ClientEvent name="onRenderCell">renderCell1(arg,self);</ClientEvent>
+          <Property name="caption">鎿嶄綔</Property>
+          <Property name="width">150</Property>
+          <Property name="align">center</Property>
+          <Editor/>
+        </DataColumn>
+      </DataGrid>
+      <ToolBar layoutConstraint="bottom">
+        <Fill/>
+        <DataPilot layoutConstraint="right">
+          <Property name="itemCodes">pageSize,pages</Property>
+          <Property name="dataSet">dsMain</Property>
+        </DataPilot>
+      </ToolBar>
+    </Container>
+    <Dialog id="dialogMain" layout="regionPadding:8">
+      <Property name="closeable">false</Property>
+      <Property name="caption">鍏ュ簱閫氱煡鍗�</Property>
+      <Property name="width">1200</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Buttons>
+        <Button id="btnOk">
+          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+		return;&#xD;
+	}&#xD;
+	$notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</ClientEvent>
+          <Property name="caption">淇濆瓨</Property>
+          <Property name="iconClass">fa fa-check-circle</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">120</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#dsMain.data:#&quot;).cancel();&#xD;
+            self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="exClassName">btn3</Property>
+          <Property name="iconClass">fa fa-times-circle</Property>
+          <Property name="width">120</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <Container>
+          <AutoForm layoutConstraint="top ">
+            <Property name="dataSet">dsMain</Property>
+            <Property name="showHint">false</Property>
+            <Property name="cols">210,*,210</Property>
+            <Control/>
+            <AutoFormElement>
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showLabel">false</Property>
+              <Property name="showHint">false</Property>
+              <Property name="className">f-title</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">id</Property>
+              <Property name="property">id</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showHint">false</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="showLabel">false</Property>
+              <Editor/>
+            </AutoFormElement>
+          </AutoForm>
+          <AutoForm>
+            <Property name="dataSet">dsMain</Property>
+            <Property name="cols">*,*,*</Property>
+            <Property name="labelAlign">right</Property>
+            <Property name="labelSeparator">锛�</Property>
+            <Property name="labelWidth">120</Property>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">type</Property>
+              <Property name="property">type</Property>
+              <Property name="editorType">RadioGroup</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">depotId</Property>
+              <Property name="property">depotId</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">foodVariety</Property>
+              <Property name="property">foodVariety</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">year</Property>
+              <Property name="property">year</Property>
+              <Property name="trigger">defaultYearDropDown</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <Property name="name">customerName</Property>
+              <Property name="property">customerName</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">unitName</Property>
+              <Property name="property">unitName</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">targetNumber</Property>
+              <Property name="property">targetNumber</Property>
+              <Property name="readOnly">false</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">completeNumber</Property>
+              <Property name="property">completeNumber</Property>
+              <Property name="readOnly">false</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">completeStatus</Property>
+              <Property name="property">completeStatus</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">completeTime</Property>
+              <Property name="property">completeTime</Property>
+              <Property name="readOnly">false</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">createBy</Property>
+              <Property name="property">createBy</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditStatus</Property>
+              <Property name="property">auditStatus</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <Property name="name">contract</Property>
+              <Property name="property">contract</Property>
+              <Editor/>
+            </AutoFormElement>
+            <Label>
+              <Property name="style">
+                <Property name="color">blue</Property>
+              </Property>
+              <Property name="text">娉細鐩戠閫氱煡鍗曪紝鍙~鍐欒川鎶煎悎鍚屽悕绉�</Property>
+            </Label>
+            <AutoFormElement layoutConstraint="colSpan:3">
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Property name="editorType">TextArea</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">createTime</Property>
+              <Property name="property">createTime</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditUser</Property>
+              <Property name="property">auditUser</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditDate</Property>
+              <Property name="property">auditDate</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <HtmlContainer layoutConstraint="colSpan:3">
+              <Property name="content">1.鍏ュ簱閫氱煡鍗曚綔涓哄叆搴撲綔涓氱殑鍓嶇疆鏉′欢锛屽繀椤婚厤缃紝鍚﹀垯鏃犳硶杩涜鍏ュ簱浣滀笟銆�&lt;br>&#xD;
+2.鍗曟嵁绫诲瀷=搴撳尯閫氱煡鍗曪紝琛ㄧず搴撳尯鑷繁浣滀笟涓氬姟锛屼笉鍙楃洃绠$鐞嗐��</Property>
+              <Property name="exClassName">h-tip</Property>
+              <Property name="contentOverflow">hidden</Property>
+            </HtmlContainer>
+          </AutoForm>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="updateSave">
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+    </AjaxAction>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
new file mode 100644
index 0000000..79b8293
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
@@ -0,0 +1,42 @@
+package com.fzzy.work;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.work.domain.WorkOrder;
+import com.fzzy.work.data.WorkOrderParam;
+import com.fzzy.work.service.WorkOrderService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @Desc: 宸ュ崟绠$悊
+ * @Author: Andy.jia
+ * @Date: 2025/12/19
+ */
+@Component
+public class WorkOrderPR {
+
+    @Resource
+    private WorkOrderService workOrderService;
+
+
+    /**
+     *
+     * workOrderPR#pageQuery
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param param
+     */
+    @DataProvider
+    public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
+
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<WorkOrder> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
+
+        workOrderService.pageQuery(corePage, param);
+
+        // 閲嶆柊灏佽
+        page.setEntities(corePage.getRecords());
+        page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
+    }
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
new file mode 100644
index 0000000..a4dce75
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
@@ -0,0 +1,28 @@
+package com.fzzy.work;
+
+import com.ruoyi.common.core.controller.BaseController;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * 宸ュ崟绠$悊
+ */
+@Controller
+@RequestMapping("/work")
+public class WorkOrderController extends BaseController {
+
+    private static final String prefix = "work";
+
+
+    /**
+     * 宸ュ崟鍒楄〃椤甸潰
+     *
+     */
+    @GetMapping("/list")
+    public String list(ModelMap mmap) {
+
+        return prefix + "/list";
+    }
+}
diff --git a/fzzy-igdss-web/src/main/resources/templates/work/list.html b/fzzy-igdss-web/src/main/resources/templates/work/list.html
new file mode 100644
index 0000000..31c3fa2
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/work/list.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <title>鏅烘収绮簱绠$悊绯荤粺-宸ュ崟绠$悊</title>
+    <link rel="stylesheet" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
+    <style>
+        /** 缁熻蹇嵎鏂瑰紡鏍峰紡 */
+        .console-link-block {
+            font-size: 16px;
+            padding: 20px 20px;
+            border-radius: 4px;
+            background-color: #40D4B0;
+            color: #FFFFFF !important;
+            box-shadow: 0 2px 3px rgba(0, 0, 0, .05);
+            position: relative;
+            overflow: hidden;
+            display: block;
+        }
+
+        .console-link-block .console-link-block-num {
+            font-size: 40px;
+            margin-bottom: 5px;
+            opacity: .9;
+        }
+
+        .console-link-block .console-link-block-text {
+            opacity: .8;
+        }
+
+        .console-link-block .console-link-block-icon {
+            position: absolute;
+            top: 50%;
+            right: 20px;
+            width: 50px;
+            height: 50px;
+            font-size: 50px;
+            line-height: 50px;
+            margin-top: -25px;
+            color: #FFFFFF;
+            opacity: .8;
+        }
+
+        .console-link-block .console-link-block-band {
+            color: #fff;
+            width: 100px;
+            font-size: 12px;
+            padding: 2px 0 3px 0;
+            background-color: #E32A16;
+            line-height: inherit;
+            text-align: center;
+            position: absolute;
+            top: 8px;
+            right: -30px;
+            transform-origin: center;
+            transform: rotate(45deg) scale(.8);
+            opacity: .95;
+            z-index: 2;
+        }
+
+        /** //缁熻蹇嵎鏂瑰紡鏍峰紡 */
+
+        /** 璁剧疆姣忎釜蹇嵎鍧楃殑棰滆壊 */
+        .layui-row > div:nth-child(2) .console-link-block {
+            background-color: #55A5EA;
+        }
+
+        .layui-row > div:nth-child(3) .console-link-block {
+            background-color: #9DAFFF;
+        }
+
+        .layui-row > div:nth-child(4) .console-link-block {
+            background-color: #F591A2;
+        }
+
+        .layui-row > div:nth-child(5) .console-link-block {
+            background-color: #FEAA4F;
+        }
+
+        .layui-row > div:last-child .console-link-block {
+            background-color: #9BC539;
+        }
+        .layui-fluid {
+             padding: 0 5px;
+        }
+    </style>
+</head>
+<body>
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid ew-console-wrapper">
+    <!-- 蹇嵎鏂瑰紡 -->
+    <div class="layui-row layui-col-space15" style="background: #FFFFFF;margin: 10px">
+        <div class="layui-col-sm3  layui-col-xs6">
+            <div class="console-link-block">
+                <div class="console-link-block-num" th:text="${patrolSuperData.isDeptNum}">0</div>
+                <div class="console-link-block-text">宸插贰妫�搴撳尯鏁�(褰撳ぉ)</div>
+                <i class="console-link-block-icon layui-icon layui-icon-form"></i>
+            </div>
+        </div>
+        <div class="layui-col-sm3 layui-col-xs6">
+            <div class="console-link-block">
+                <div class="console-link-block-num" th:text="${patrolSuperData.noDeptNum}">0</div>
+                <div class="console-link-block-text">鏈贰妫�搴撳尯鏁�(褰撳ぉ)</div>
+                <i class="console-link-block-icon layui-icon layui-icon-survey"></i>
+            </div>
+        </div>
+        <div class="layui-col-sm3 layui-col-xs6">
+            <div class="console-link-block">
+                <div class="console-link-block-num" th:text="${patrolSuperData.yesterdaySum}">0</div>
+                <div class="console-link-block-text">宸℃浜烘(鏄ㄥぉ)</div>
+                <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
+            </div>
+        </div>
+       <div class="layui-col-sm3 layui-col-xs6">
+            <div class="console-link-block">
+                <div class="console-link-block-num" th:text="${patrolSuperData.weekSum}">0</div>
+                <div class="console-link-block-text">宸℃浜烘(杩�7澶�)</div>
+                <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
+            </div>
+        </div>
+    </div>
+    <iframe src="/com.fzzy.igds.PatrolSuper.d" width="100%" height="695px" frameborder="0" allowfullscreen></iframe>
+</div>
+<!-- js閮ㄥ垎 -->
+<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
+
+</body>
+</html>
\ No newline at end of file

--
Gitblit v1.9.3