Pārlūkot izejas kodu

SAI开项管理 - 添加片区字段,主管筛选查看各自片区隐患

wangggziwen 1 gadu atpakaļ
vecāks
revīzija
c5602912e3

+ 11 - 0
master/src/main/java/com/ruoyi/project/production/controller/vo/SaiApplyQueryVO.java

@@ -81,6 +81,9 @@ public class SaiApplyQueryVO extends BaseEntity {
     /** SAI类别 */
     private String category;
 
+    /** 片区 */
+    private String workArea;
+
     /** 登记时间 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
     @Excel(name = "登记时间", width = 30, dateFormat = "yyyy-MM-dd")
@@ -171,6 +174,14 @@ public class SaiApplyQueryVO extends BaseEntity {
     /** 备注(执行阶段) */
     private String remarksExecute;
 
+    public String getWorkArea() {
+        return workArea;
+    }
+
+    public void setWorkArea(String workArea) {
+        this.workArea = workArea;
+    }
+
     public boolean isSpecialRole() {
         return isSpecialRole;
     }

+ 11 - 0
master/src/main/java/com/ruoyi/project/production/domain/TSaiApply.java

@@ -72,6 +72,9 @@ public class TSaiApply extends BaseEntity
     /** SAI类别 */
     private String category;
 
+    /** 片区 */
+    private String workArea;
+
     /** 登记时间 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
     @Excel(name = "登记时间", width = 30, dateFormat = "yyyy-MM-dd")
@@ -146,6 +149,14 @@ public class TSaiApply extends BaseEntity
     /** 备注(执行阶段) */
     private String remarksExecute;
 
+    public String getWorkArea() {
+        return workArea;
+    }
+
+    public void setWorkArea(String workArea) {
+        this.workArea = workArea;
+    }
+
     public String getRemarksAssess() {
         return remarksAssess;
     }

+ 6 - 1
master/src/main/resources/mybatis/production/TSaiApplyMapper.xml

@@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="category"    column="category"    />
         <result property="remarksAssess"    column="remarks_assess"    />
         <result property="remarksExecute"    column="remarks_execute"    />
+        <result property="workArea"    column="work_area"    />
     </resultMap>
 
     <sql id="selectTSaiApplyVo">
@@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         d.applicant, d.assessor, d.executor, d.inspectors, d.applicant_dept, d.applicant_team, d.description,
         d.unsafe_status, d.unsafe_action, d.apply_date, d.task_id, d.task_name,d.remarks, d.ve_item_other,
         d.handler, d.estimate_finish_date, d.actual_finish_date, d.is_recorded, d.record_no, d.reaction, d.need_ve, d.ve_items, d.ve_result,
-        d.sai_level, d.category, d.remarks_assess, d.remarks_execute
+        d.sai_level, d.category, d.remarks_assess, d.remarks_execute, d.work_area
         from t_sai_apply d
         left join sys_dept s on s.dept_id = d.dept_id
     </sql>
@@ -109,6 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="category != null  and category != ''"> and category = #{category}</if>
             <if test="remarksAssess != null  and remarksAssess != ''"> and remarks_assess = #{remarksAssess}</if>
             <if test="remarksExecute != null  and remarksExecute != ''"> and remarks_execute = #{remarksExecute}</if>
+            <if test="workArea != null  and workArea != ''"> and work_area = #{workArea}</if>
             and d.del_flag = 0
         </where>
         order by APPLY_DATE desc
@@ -162,6 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="category != null">category,</if>
             <if test="remarksAssess != null">remarks_assess,</if>
             <if test="remarksExecute != null">remarks_execute,</if>
+            <if test="workArea != null">work_area,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="saiApplyId != null">#{saiApplyId},</if>
@@ -201,6 +204,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="category != null">#{category},</if>
             <if test="remarksAssess != null">#{remarksAssess},</if>
             <if test="remarksExecute != null">#{remarksExecute},</if>
+            <if test="workArea != null">#{workArea},</if>
          </trim>
     </insert>
 
@@ -250,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="category != null">category = #{category},</if>
             <if test="remarksAssess != null">remarks_assess = #{remarksAssess},</if>
             <if test="remarksExecute != null">remarks_execute = #{remarksExecute},</if>
+            <if test="workArea != null">work_area = #{workArea},</if>
         </trim>
         where sai_apply_id = #{saiApplyId}
     </update>

+ 29 - 1
ui/src/views/approve/approveDetail/sai-apply-detail.vue

@@ -69,7 +69,7 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
-          <el-descriptions-item label="SAI类别" :span="2">
+          <el-descriptions-item label="SAI类别" :span="1">
             <el-form-item prop="category">
               <el-select
                 filterable
@@ -86,6 +86,23 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
+          <el-descriptions-item label="片区" :span="1">
+            <el-form-item prop="workArea">
+              <el-select
+                filterable
+                clearable
+                v-model="dataForm.workArea"
+                placeholder="请选择片区"
+                :disabled="applyDisabled">
+                <el-option
+                  v-for="dict in workAreaList"
+                  :key="dict"
+                  :label="dict"
+                  :value="dict"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-descriptions-item>
           <el-descriptions-item label="附件" :span="3">
             <el-table :data="doc.commonfileListApply" border>
               <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
@@ -512,6 +529,7 @@ import { treeselect, listDept } from "@/api/system/dept";
 import { listSaiInspectors, listSaiExecutors, listStaffmgrByDeptAndTeam, getLoginStaffInfo } from "@/api/plant/staffmgr";
 import { allFileList, delCommonfile } from "@/api/common/commonfile";
 import { categoryList } from "@/api/production/category";
+import { selectDevice } from "@/api/invoice/device";
 
 export default {
   name: "sai-apply-detail",
@@ -728,6 +746,7 @@ export default {
       executeDisabled: false,
       // 是否禁用验收
       inspectDisabled: false,
+      workAreaList: [],
     }
   },
   methods: {
@@ -878,6 +897,15 @@ export default {
       this.getLoginStaffInfo();
       // 加载SAI类别字典
       this.getCategoryList();
+      this.getWorkAreaList();
+    },
+    getWorkAreaList() {
+      selectDevice().then(response => {
+        let data = response.data;
+        for (let i = 0; i < data.length; i++) {
+          this.workAreaList.push(data[i]);
+        }
+      });
     },
     /** 获取SAI类别列表数据 */
     getCategoryList() {

+ 43 - 1
ui/src/views/production/apply/all/index.vue

@@ -94,6 +94,19 @@
           value-format="yyyy-MM-dd">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="片区" prop="workArea">
+        <el-select
+          clearable
+          v-model="queryParams.workArea"
+          placeholder="请选择片区">
+          <el-option
+            v-for="dict in workAreaList"
+            :key="dict"
+            :label="dict"
+            :value="dict"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -141,6 +154,7 @@
     <el-table v-loading="loading" :data="applyList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="问题描述" align="center" prop="description" :show-overflow-tooltip="true" width="200"/>
+      <el-table-column label="片区" align="center" prop="workArea" :show-overflow-tooltip="true"/>
       <el-table-column label="申请状态" align="center" prop="applyStatus" :show-overflow-tooltip="true">
         <template slot-scope="scope">
           <span v-if="scope.row.applyStatus == 0"><el-tag type="info">未提交</el-tag></span>
@@ -325,7 +339,7 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
-          <el-descriptions-item label="SAI类别" :span="2">
+          <el-descriptions-item label="SAI类别" :span="1">
             <el-form-item prop="category">
               <el-select
                 @change="handleSaiCategoryChange"
@@ -342,6 +356,23 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
+          <el-descriptions-item label="片区" :span="1">
+            <el-form-item prop="workArea">
+              <el-select
+                @change="handleSaiCategoryChange"
+                filterable
+                clearable
+                v-model="form.workArea"
+                placeholder="请选择片区">
+                <el-option
+                  v-for="dict in workAreaList"
+                  :key="dict"
+                  :label="dict"
+                  :value="dict"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-descriptions-item>
           <el-descriptions-item label="隐患" :span="3">
             <el-radio v-model="unsafeChoice" label="1" @change="handleUnsafeChoiceChange" style="margin-right: 10px;">不安全状态</el-radio>
             <el-form-item prop="unsafeStatus" style="display: inline-block;">
@@ -658,6 +689,7 @@ import { listStaffmgrByDeptAndTeam, getLoginStaffInfo } from "@/api/plant/staffm
 import { allFileList, delCommonfile } from "@/api/common/commonfile";
 import { categoryList } from "@/api/production/category";
 import { listFile } from "@/api/production/saiApproveFile";
+import { selectDevice } from "@/api/invoice/device";
 
 export default {
   name: "Apply",
@@ -905,6 +937,7 @@ export default {
       unsafeActionDisabled: true,
       // 是否禁用班组下拉框
       applicantTeamDisabled: false,
+      workAreaList: [],
     };
   },
   watch: {
@@ -943,8 +976,17 @@ export default {
     // 加载当前登录员工信息
     this.getLoginStaffInfo();
     this.getCategoryList();
+    this.getWorkAreaList();
   },
   methods: {
+    getWorkAreaList() {
+      selectDevice().then(response => {
+        let data = response.data;
+        for (let i = 0; i < data.length; i++) {
+          this.workAreaList.push(data[i]);
+        }
+      });
+    },
     // 处理SAI级别下拉框选中事件
     handleSaiLevelChange() {
       this.saiCategoryOptions2 = [];

+ 44 - 1
ui/src/views/production/apply/mine/index.vue

@@ -94,6 +94,19 @@
           value-format="yyyy-MM-dd">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="片区" prop="workArea">
+        <el-select
+          clearable
+          v-model="queryParams.workArea"
+          placeholder="请选择片区">
+          <el-option
+            v-for="dict in workAreaList"
+            :key="dict"
+            :label="dict"
+            :value="dict"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -141,6 +154,7 @@
     <el-table v-loading="loading" :data="applyList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="问题描述" align="center" prop="description" :show-overflow-tooltip="true" width="200"/>
+      <el-table-column label="片区" align="center" prop="workArea" :show-overflow-tooltip="true"/>
       <el-table-column label="申请状态" align="center" prop="applyStatus" :show-overflow-tooltip="true">
         <template slot-scope="scope">
           <span v-if="scope.row.applyStatus == 0"><el-tag type="info">未提交</el-tag></span>
@@ -325,7 +339,7 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
-          <el-descriptions-item label="SAI类别" :span="2">
+          <el-descriptions-item label="SAI类别" :span="1">
             <el-form-item prop="category">
               <el-select
                 @change="handleSaiCategoryChange"
@@ -342,6 +356,24 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
+
+          <el-descriptions-item label="片区" :span="1">
+            <el-form-item prop="workArea">
+              <el-select
+                @change="handleSaiCategoryChange"
+                filterable
+                clearable
+                v-model="form.workArea"
+                placeholder="请选择片区">
+                <el-option
+                  v-for="dict in workAreaList"
+                  :key="dict"
+                  :label="dict"
+                  :value="dict"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-descriptions-item>
           <el-descriptions-item label="隐患" :span="3">
             <el-radio v-model="unsafeChoice" label="1" @change="handleUnsafeChoiceChange" style="margin-right: 10px;">不安全状态</el-radio>
             <el-form-item prop="unsafeStatus" style="display: inline-block;">
@@ -658,6 +690,7 @@
   import { allFileList, delCommonfile } from "@/api/common/commonfile";
   import { categoryList } from "@/api/production/category";
   import { listFile } from "@/api/production/saiApproveFile";
+  import { selectDevice } from "@/api/invoice/device";
 
   export default {
     name: "Apply",
@@ -905,6 +938,7 @@
         unsafeActionDisabled: true,
         // 是否禁用班组下拉框
         applicantTeamDisabled: false,
+        workAreaList: [],
       };
     },
     watch: {
@@ -943,8 +977,17 @@
       // 加载当前登录员工信息
       this.getLoginStaffInfo();
       this.getCategoryList();
+      this.getWorkAreaList();
     },
     methods: {
+      getWorkAreaList() {
+        selectDevice().then(response => {
+          let data = response.data;
+          for (let i = 0; i < data.length; i++) {
+            this.workAreaList.push(data[i]);
+          }
+        });
+      },
       // 处理SAI级别下拉框选中事件
       handleSaiLevelChange() {
         this.saiCategoryOptions2 = [];

+ 43 - 1
ui/src/views/production/apply/pending/index.vue

@@ -94,6 +94,19 @@
           value-format="yyyy-MM-dd">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="片区" prop="workArea">
+        <el-select
+          clearable
+          v-model="queryParams.workArea"
+          placeholder="请选择片区">
+          <el-option
+            v-for="dict in workAreaList"
+            :key="dict"
+            :label="dict"
+            :value="dict"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -141,6 +154,7 @@
     <el-table v-loading="loading" :data="applyList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="问题描述" align="center" prop="description" :show-overflow-tooltip="true" width="200"/>
+      <el-table-column label="片区" align="center" prop="workArea" :show-overflow-tooltip="true"/>
       <el-table-column label="申请状态" align="center" prop="applyStatus" :show-overflow-tooltip="true">
         <template slot-scope="scope">
           <span v-if="scope.row.applyStatus == 0"><el-tag type="info">未提交</el-tag></span>
@@ -325,7 +339,7 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
-          <el-descriptions-item label="SAI类别" :span="2">
+          <el-descriptions-item label="SAI类别" :span="1">
             <el-form-item prop="category">
               <el-select
                 @change="handleSaiCategoryChange"
@@ -342,6 +356,23 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
+          <el-descriptions-item label="片区" :span="1">
+            <el-form-item prop="workArea">
+              <el-select
+                @change="handleSaiCategoryChange"
+                filterable
+                clearable
+                v-model="form.workArea"
+                placeholder="请选择片区">
+                <el-option
+                  v-for="dict in workAreaList"
+                  :key="dict"
+                  :label="dict"
+                  :value="dict"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-descriptions-item>
           <el-descriptions-item label="隐患" :span="3">
             <el-radio v-model="unsafeChoice" label="1" @change="handleUnsafeChoiceChange" style="margin-right: 10px;">不安全状态</el-radio>
             <el-form-item prop="unsafeStatus" style="display: inline-block;">
@@ -658,6 +689,7 @@
   import { allFileList, delCommonfile } from "@/api/common/commonfile";
   import { categoryList } from "@/api/production/category";
   import { listFile } from "@/api/production/saiApproveFile";
+  import { selectDevice } from "@/api/invoice/device";
 
   export default {
     name: "Apply",
@@ -905,6 +937,7 @@
         unsafeActionDisabled: true,
         // 是否禁用班组下拉框
         applicantTeamDisabled: false,
+        workAreaList: [],
       };
     },
     watch: {
@@ -943,8 +976,17 @@
       // 加载当前登录员工信息
       this.getLoginStaffInfo();
       this.getCategoryList();
+      this.getWorkAreaList();
     },
     methods: {
+      getWorkAreaList() {
+        selectDevice().then(response => {
+          let data = response.data;
+          for (let i = 0; i < data.length; i++) {
+            this.workAreaList.push(data[i]);
+          }
+        });
+      },
       // 处理SAI级别下拉框选中事件
       handleSaiLevelChange() {
         this.saiCategoryOptions2 = [];