Преглед на файлове

执法调整定时任务数据处理
住建修改样式

Memory_LG преди 8 месеца
родител
ревизия
1b4a0ed1e6

+ 38 - 27
lawenforcement-ui/src/views/lawenforcement/record/index.vue

@@ -45,12 +45,12 @@
           <dict-tag :options="dict.type.lawenforcement_type" :value="scope.row.recordStatus"/>
         </template>
       </el-table-column>
-<!--      <el-table-column label="检查对象类型" align="center" prop="checkObjectType"/>-->
+      <!--      <el-table-column label="检查对象类型" align="center" prop="checkObjectType"/>-->
       <el-table-column label="检查对象代码" align="center" prop="checkObjectCode"/>
       <el-table-column label="检查对象名称" align="center" prop="checkObjectName"/>
       <el-table-column label="检查开始时间" align="center" prop="checkStartTime" :formatter="formatDate"/>
       <el-table-column label="检查结束时间" align="center" prop="checkEndTime" :formatter="formatDate"/>
-<!--      <el-table-column label="检查子项数量" align="center" prop="subitemCount"/>-->
+      <!--      <el-table-column label="检查子项数量" align="center" prop="subitemCount"/>-->
       <el-table-column label="创建方式" align="center">
         <template v-slot="scope">
           <span v-if="scope.row.createMethod === 1">平台对接</span>
@@ -69,23 +69,26 @@
                      size="mini" type="text" icon="el-icon-paper-plus" @click="distributeShow(scope.row)">
             派发
           </el-button>
-          <el-button
+<!--          <el-button
             v-if="scope.row.recordStatus === 'lawenforcement_type_3' || (scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod === 1)"
             size="mini" type="text" icon="el-icon-paper-plus" @click="showBindDeviceDialog(scope.row)">
             绑定设备
-          </el-button>
-          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']"
+          </el-button>-->
+          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
+                       v-hasPermi="['system:role:edit']"
                        v-if="(scope.row.recordStatus === 'lawenforcement_type_2' || scope.row.recordStatus === 'lawenforcement_type_5') && scope.row.isRegister ==='0'
                                || (scope.row.createMethod === 4 && scope.row.recordStatus === 'lawenforcement_type_1')">
             <span class="el-dropdown-link">
               <i class="el-icon-d-arrow-right el-icon--right"></i>更多
             </span>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item v-if="(scope.row.recordStatus === 'lawenforcement_type_2' || scope.row.recordStatus === 'lawenforcement_type_5') && scope.row.isRegister ==='0'"
+              <el-dropdown-item
+                v-if="(scope.row.recordStatus === 'lawenforcement_type_2' || scope.row.recordStatus === 'lawenforcement_type_5') && scope.row.isRegister ==='0'"
                 command="register" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 立案
               </el-dropdown-item>
-              <el-dropdown-item v-if="(scope.row.recordStatus === 'lawenforcement_type_2' || scope.row.recordStatus === 'lawenforcement_type_5') && scope.row.isRegister ==='0'"
+              <el-dropdown-item
+                v-if="(scope.row.recordStatus === 'lawenforcement_type_2' || scope.row.recordStatus === 'lawenforcement_type_5') && scope.row.isRegister ==='0'"
                 command="fillForm" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 填报
               </el-dropdown-item>
@@ -215,8 +218,8 @@
           <el-row :gutter="24">
             <el-col :span="24">
               <el-form-item label="备注" prop="remark" class="xinzeng">
-                <el-input type="textarea" rows = "5" v-model="form.remark" placeholder="请输入备注" class="gdbz"/>
-<!--                <el-input v-model="form.remark" placeholder="请输入备注"/>-->
+                <el-input type="textarea" rows="5" v-model="form.remark" placeholder="请输入备注" class="gdbz"/>
+                <!--                <el-input v-model="form.remark" placeholder="请输入备注"/>-->
               </el-form-item>
             </el-col>
           </el-row>
@@ -230,6 +233,7 @@
 
     <!--    审批-->
     <el-dialog :title="title" :visible.sync="open1" width="1000px" class="form-style">
+      <div style="padding:20px 30px;">
         <el-form ref="form" :model="form" :rules="rules" label-width="130px">
           <el-row :gutter="20">
             <el-col :span="12">
@@ -327,17 +331,19 @@
             </el-col>
           </el-row>
           <el-row :gutter="20">
-            <el-col :span="24" >
-              <el-form-item label="附件" prop="attachPath" class="margin-left: 79px !important;">
-                <fileUpload v-model="attachPath" disabled class="fjList"></fileUpload>
+            <el-col :span="24">
+              <el-form-item label="附件" prop="attachPath">
+                <fileUpload v-model="attachPath" disabled class="spfjList"></fileUpload>
               </el-form-item>
             </el-col>
           </el-row>
         </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submit(form.id,5)">通 过</el-button>
-          <el-button @click="submit(form.id,1)">不通过</el-button>
       </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submit(form.id,5)">通 过</el-button>
+        <el-button @click="submit(form.id,1)">不通过</el-button>
+      </div>
+
     </el-dialog>
 
     <!--  详情弹窗  -->
@@ -375,15 +381,15 @@ import fileUpload from '@/views/components/FileUpload/index.vue';
 
 export default {
   name: "Record",
-  components: {Treeselect, register, BindDevice, Distribute, DetailsVue, FillForm,fileUpload},
+  components: {Treeselect, register, BindDevice, Distribute, DetailsVue, FillForm, fileUpload},
   dicts: [
     'lawenforcement_type',
     'lawenforcement_jobType'
   ],
   data() {
     return {
-      attachPath:'',
-      describe:'',
+      attachPath: '',
+      describe: '',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -554,7 +560,7 @@ export default {
         isCrossDept: null,
         deviceId: null,
         deviceName: null,
-        gender:null
+        gender: null
       };
       this.resetForm("form");
     },
@@ -595,7 +601,7 @@ export default {
       this.form.createMethod = 4
       this.$refs["form"].validate(valid => {
         if (valid) {
-          if (this.title==="修改任务数据") {
+          if (this.title === "修改任务数据") {
             updateRecord(this.form).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
@@ -685,7 +691,7 @@ export default {
       this.bindDeviceRecordName = row.jobName
     },
     //审批
-    submit(id,type){
+    submit(id, type) {
       console.log(id)
       console.log(type)
       this.form.id = id
@@ -724,10 +730,10 @@ export default {
     },
     //审批
     approval(row) {
-      getFillForm({recordId:row.id}).then(res => {
-        if (res.data!==undefined){
+      getFillForm({recordId: row.id}).then(res => {
+        if (res.data !== undefined) {
           this.title = res.data.type
-          if (res.data.attachPath!==undefined){
+          if (res.data.attachPath !== undefined) {
             this.attachPath = res.data.attachPath;
           }
           this.describe = res.data.describe;
@@ -738,7 +744,7 @@ export default {
       this.form = row
     }
   },
-  watch:{
+  watch: {
     form: {
       handler(val) {
         if (val.checkStartTime && val.checkEndTime) {
@@ -755,10 +761,10 @@ export default {
       deep: true
     },
     'form.checkStartTime'(newValue) {
-      this.checkStartTimeDate = newValue? moment(newValue).format('YYYY-MM-DD') : null;
+      this.checkStartTimeDate = newValue ? moment(newValue).format('YYYY-MM-DD') : null;
     },
     'form.checkEndTime'(newValue) {
-      this.checkEndTimeDate = newValue? moment(newValue).format('YYYY-MM-DD') : null;
+      this.checkEndTimeDate = newValue ? moment(newValue).format('YYYY-MM-DD') : null;
     }
   }
 };
@@ -773,10 +779,15 @@ export default {
 .xinzeng .el-form-item--medium .el-form-item__label {
   width: 130px !important;
 }
+
 .gdbz .el-textarea__inner {
   background-color: #fff !important;
   width: 805px !important;
   height: auto;
   resize: none;
 }
+
+.spfjList .el-upload-list{
+  width: 739px !important;
+}
 </style>

+ 22 - 18
src/main/java/com/sooka/sponest/lawenforcement/record/controller/TaskHandler.java

@@ -39,23 +39,30 @@ public class TaskHandler {
     }
 
     @GetMapping("/clearMessageAll")
-    public void clearMessageAll(){
+    public void clearMessageAll() {
         //设置每次数据量
-        int pageSize = 100;
+        int pageSize = 500;
         //获取总数据量
-        int total = recordService.getTotal();//10001 /100  101
+        int total = recordService.getTotal(); //16350
         //计算页码最大值
-        int size = total / pageSize + 1;
+        int size = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
         //遍历获取数据,如果数据为空,则停止运行
-        for (int pageNum = 1; pageNum <= size; pageNum++) {
-            List<Map<String, Object>> jsonArray = recordService.getJsonDataMessageByPage(pageNum, pageSize);
-
-            if(StringUtils.isNotEmpty(jsonArray)){
-                clearMessageRecord(jsonArray);
-            }else{
-                return;
+        try {
+            for (int pageNum = 1; pageNum <= size; pageNum++) {
+                List<Map<String, Object>> jsonArray = recordService.getJsonDataMessageByPage((pageNum - 1) * pageSize, pageSize);
+
+                if (!jsonArray.isEmpty()) {
+                    clearMessageRecord(jsonArray);
+                } else {
+                    return; // 或者 return,取决于你的逻辑
+                }
             }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            // 异常处理逻辑,例如记录日志或重新抛出异常
+            e.printStackTrace();
         }
+
     }
 
 
@@ -66,12 +73,10 @@ public class TaskHandler {
         Map<String, LawenforcementRecordDetailVO> jsonMessage = new HashMap<>();
         jsonArray.forEach(map -> {
             log.info("=====>{}", MapUtils.getString(map, "id"));
-            if(!"0121eff8949481a3aaf6408f624b81ac".equals(MapUtils.getString(map, "id"))){
-                ids.add(MapUtils.getString(map, "id"));
-                JSONObject parse = JSONObject.parseObject(map.get("jsonData").toString());
-                LawenforcementRecordDetailVO javaObject = JSON.toJavaObject(parse, LawenforcementRecordDetailVO.class);
-                jsonMessage.put(MapUtils.getString(map, "id"), javaObject);
-            }
+            ids.add(MapUtils.getString(map, "id"));
+            JSONObject parse = JSONObject.parseObject(map.get("jsonData").toString());
+            LawenforcementRecordDetailVO javaObject = JSON.toJavaObject(parse, LawenforcementRecordDetailVO.class);
+            jsonMessage.put(MapUtils.getString(map, "id"), javaObject);
         });
 
         //根据id获取存在的数据  list<LawenforcementRecordDetailVO>
@@ -86,7 +91,6 @@ public class TaskHandler {
 
         list.forEach(record -> {
             String id = MapUtils.getString(record, "id");
-            System.out.println("record.getId() ====> " + id);
             LawenforcementRecordDetailVO lawenforcementRecordDetailVO = jsonMessage.get(id);
             deleteIds.add(id);
             //存储数据到list,等待批量新增

+ 24 - 78
src/main/java/com/sooka/sponest/lawenforcement/record/service/impl/LawenforcementRecordServiceImpl.java

@@ -66,63 +66,6 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
     public int insertEnforceLawInfoByList(JSONArray records) {
         //存储原始报文
         return insertJsonData(records);
-
-        /*//创建转换结果集合
-        List<LawenforcementRecordDetailVO> remoteRecordList = JSONArray.parseArray(records.toJSONString(), LawenforcementRecordDetailVO.class);
-        //创建新增集合
-        List<LawenforcementRecordDetailVO> recordAddList = new ArrayList<>();
-        List<LawenforcementStandardDetailVO> standardAddList = new ArrayList<>();
-        List<LawenforcementSubitemDetailVO> subitemAddList = new ArrayList<>();
-        List<LawenforcementPersonDetailVO> personAddList = new ArrayList<>();
-
-        //判断转换是否异常
-        if (StringUtils.isNotEmpty(remoteRecordList)) {
-            //开始遍历数据集合
-            remoteRecordList.forEach(remoteRecord -> {
-                //判断通过主键获取数据是否为空
-                if (null != selectLawenforcementRecordById(remoteRecord.getId())) {
-                    //不为空则删除旧数据,写入新数据(删除子表信息:person、subitem、standard)
-                    recordMapper.removeStandardInfoById(remoteRecord.getId());
-                    recordMapper.removeSubitemInfoById(remoteRecord.getId());
-                    recordMapper.removePersonInfoById(remoteRecord.getId());
-                    recordMapper.updateRecord(remoteRecord);
-                } else {
-                    if(StringUtils.isNotEmpty(remoteRecord.getStatus()) && "3".equals(remoteRecord.getStatus())){
-                        remoteRecord.setRecordStatus("lawenforcement_type_2");
-                    }else{
-                        remoteRecord.setRecordStatus("lawenforcement_type_1");
-                    }
-                    recordAddList.add(remoteRecord);
-                }
-                //将工单子表信息整理
-                JSONObject dataList = addRecordByRemote(remoteRecord);
-                //将工单信息放入集合,统一写入
-                standardAddList.addAll(JSONArray.parseArray(dataList.getJSONArray("standardAddList").toJSONString(), LawenforcementStandardDetailVO.class));
-                subitemAddList.addAll(JSONArray.parseArray(dataList.getJSONArray("subitemAddList").toJSONString(), LawenforcementSubitemDetailVO.class));
-                personAddList.addAll(JSONArray.parseArray(dataList.getJSONArray("personAddList").toJSONString(), LawenforcementPersonDetailVO.class));
-
-
-            });
-            int i = 0;
-            //新增子表信息
-            if (StringUtils.isNotEmpty(standardAddList)) {
-                i += recordMapper.insertStandardByList(standardAddList);
-            }
-            if (StringUtils.isNotEmpty(subitemAddList)) {
-                i += recordMapper.insertSubitemByList(subitemAddList);
-            }
-            if (StringUtils.isNotEmpty(personAddList)) {
-                i += recordMapper.insertPersonByList(personAddList);
-            }
-
-            //执行批量写入操作
-            if (StringUtils.isNotEmpty(recordAddList)) {
-                return recordMapper.insertRecordByList(recordAddList);
-            }
-            return i;
-        }
-        log.error("数据转换后为空");
-        return 0;*/
     }
 
     /**
@@ -232,12 +175,12 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
         //将工单执行记录,写入到日志表中:数据id、任务id、执法人编号、设备编号、开始时间
         recordMapper.addRecordLog(lawenforcementRecordLog);
         //判断是否为主办人,如果是主办人则开始工单
-        if ("1".equals(MapUtils.getString(isMainPerson, "mainPerson"))) {
-            recordMapper.startRecord(record);
-            //绑定设备后关闭定时任务
-            deviceService.cancelTask(lawenforcementRecordLog.getDeviceId());
-            deviceService.setOpenedDevice(lawenforcementRecordLog.getDeviceId());
-        }
+//        if ("1".equals(MapUtils.getString(isMainPerson, "mainPerson"))) {
+        recordMapper.startRecord(record);
+        //绑定设备后关闭定时任务
+        deviceService.cancelTask(lawenforcementRecordLog.getDeviceId());
+        deviceService.setOpenedDevice(lawenforcementRecordLog.getDeviceId());
+//        }
         return i;
     }
 
@@ -312,10 +255,10 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
 
         //检查当前绑定设备的执法人是否为主办人
         Map<String, Object> isMainPerson = recordMapper.getIsMainPerson(record);
-        if ("1".equals(MapUtils.getString(isMainPerson, "mainPerson"))) {
-            //设置任务完成状态
-            recordMapper.updateRecordStatus(record);
-        }
+//        if ("1".equals(MapUtils.getString(isMainPerson, "mainPerson"))) {
+        //设置任务完成状态
+        recordMapper.updateRecordStatus(record);
+//        }
 
         //设置任务结束时间
         int i = recordMapper.updateRecordLogEndTime(record);
@@ -341,10 +284,11 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
 
     /**
      * 报文处理
+     *
      * @param messageArray
      */
     private int insertJsonData(JSONArray messageArray) {
-        try{
+        try {
             //格式化时间
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
@@ -374,12 +318,12 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
             List<Map<String, Object>> existMessage = recordMapper.getExistMessage(idArray);
 
             //对存在的数据进行遍历更新;并且在recordMap中移除已经更新的数据
-            existMessage.forEach(existMap->{
+            existMessage.forEach(existMap -> {
                 //取出本次报文中id存在的数据
                 JSONObject message = recordMap.get(MapUtils.getString(existMap, "id"));
 
                 //报文数据的更新时间不是空,证明有更新
-                if(!Objects.equals(MapUtils.getLong(existMap, "dataUpdateTime"), Long.parseLong(message.getString("updateTime")))){
+                if (!Objects.equals(MapUtils.getLong(existMap, "dataUpdateTime"), Long.parseLong(message.getString("updateTime")))) {
                     Map<String, Object> addMessage = new HashMap<>();
                     addMessage.put("id", message.getString("id"));
                     addMessage.put("jsonData", message.toString());
@@ -396,7 +340,7 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
             //创建List用于新增报文
             List<Map<String, Object>> addMessageList = new ArrayList<>();
             //遍历剩余的map数据,用于新增报文
-            recordMap.keySet().forEach(messageId->{
+            recordMap.keySet().forEach(messageId -> {
                 JSONObject jsonObject = recordMap.get(messageId);
 
                 Date date = new Date();
@@ -414,7 +358,7 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
                 recordMapper.batchInsert(addMessageList);
             }
             return 1;
-        }catch (Exception e){
+        } catch (Exception e) {
             log.error(e.getMessage());
             return 0;
         }
@@ -426,16 +370,17 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
     }
 
     @Override
-    public void updateRecord(LawenforcementRecordDetailVO remoteRecord){
+    public void updateRecord(LawenforcementRecordDetailVO remoteRecord) {
         recordMapper.updateRecord(remoteRecord);
     }
 
     /**
      * 定时任务批量删除
+     *
      * @param ids 要删除的工单id集合
      */
     @Override
-    public void deleteSSPToList(List<String> ids){
+    public void deleteSSPToList(List<String> ids) {
         recordMapper.removeStandardInfoById(ids);
         recordMapper.removeSubitemInfoById(ids);
         recordMapper.removePersonInfoById(ids);
@@ -443,13 +388,14 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
 
     /**
      * 定时任务批量新增
+     *
      * @param standardAddList 子项的子集集合
-     * @param subitemAddList 子项集合
-     * @param personAddList 执法人员集合
-     * @param recordAddList 工单集合
+     * @param subitemAddList  子项集合
+     * @param personAddList   执法人员集合
+     * @param recordAddList   工单集合
      */
     @Override
-    public void insertSSPToList(List<LawenforcementStandardDetailVO> standardAddList, List<LawenforcementSubitemDetailVO> subitemAddList, List<LawenforcementPersonDetailVO> personAddList, List<LawenforcementRecordDetailVO> recordAddList){
+    public void insertSSPToList(List<LawenforcementStandardDetailVO> standardAddList, List<LawenforcementSubitemDetailVO> subitemAddList, List<LawenforcementPersonDetailVO> personAddList, List<LawenforcementRecordDetailVO> recordAddList) {
         if (StringUtils.isNotEmpty(standardAddList)) {
             recordMapper.insertStandardByList(standardAddList);
         }