jiazx0107
7 小时以前 4450143298f467e05c84c7f2bfc8b04412d5ebc8
提交工单管理功能1
已添加11个文件
929 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml 450 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/work/list.html 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
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;
}
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;
}
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;
}
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> {
}
fzzy-igdss-core/src/main/java/com/fzzy/work/package-info.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
package com.fzzy.work;
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);
    }
}
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;
//宣传操作&#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>
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())));
    }
}
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";
    }
}
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>
<!-- æ­£æ–‡å¼€å§‹ -->
<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>