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(){
+ view.get("#dsQuery").flushAsync();
+};
+query();
+
+ 
+//瀹d紶鎿嶄綔
+renderCell1 = function(arg,self){
+ var data = arg.data;
+ var htm = "<a onClick='audit()' class='a-btn1'>瀹℃壒</a>&nbsp;|&nbsp;<a onClick='showDetail()' class='a-btn2'>璇︾粏</a>";
+ arg.dom.innerHTML = htm;
+};
+
+renderStatus = function(arg){
+ var txt = arg.data.getText("auditStatus");
+ if(!txt) return true;
+ var htm = "<span class='s2'>"+txt+"</span>";
+ if(txt.includes("閫�鍥�")){
+ htm = "<span class='s3'>"+txt+"</span>";
+ }
+ if(txt.includes("鎷掔粷")){
+ htm = "<span class='s3'>"+txt+"</span>";
+ }
+ if(txt.includes("閫氳繃")){
+ htm = "<span class='s1'>"+txt+"</span>";
+ }
+ arg.dom.innerHTML = htm;
+}
+
+//鐐瑰嚮瀹℃牳
+audit = function(){
+ 
+}
+//鐐瑰嚮璇︾粏
+showDetail = function(){
+ 
+}</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({});
+</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("#dsQuery.data");
+ if(data){
+ view.get("#dsMain").set("parameter",data).flushAsync();
+ }else{
+ view.get("#dsMain").flushAsync();
+ }</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("#dsQuery").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("#dataGridMain").set("selection",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("#updateSave").execute(function(result){
+ if(result){
+ $alert(result);
+ return;
+ }
+ $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
+ self.get("parent").hide();
+});</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("#dsMain.data:#").cancel();
+ self.get("parent").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.鍏ュ簱閫氱煡鍗曚綔涓哄叆搴撲綔涓氱殑鍓嶇疆鏉′欢锛屽繀椤婚厤缃紝鍚﹀垯鏃犳硶杩涜鍏ュ簱浣滀笟銆�<br>
+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