ソースを参照

优化样式;完善流程;修改工单启动关闭业务

Memory_LG 7 ヶ月 前
コミット
4c37d6a8b0

+ 2 - 1
lawenforcement-ui/src/api/lawenforcement/record.js

@@ -51,6 +51,7 @@ export function getPersonsList(data){
   })
 }
 
+
 export function getDeivceList(){
   return request({
     url: '/sooka-sponest-lawenforcement/record/getDeivceList',
@@ -60,7 +61,7 @@ export function getDeivceList(){
 
 export function addRecordLog(data){
   return request({
-    url: '/sooka-sponest-lawenforcement/record/addRecordLog',
+    url: '/sooka-sponest-lawenforcement/record/bindDevice',
     method: 'post',
     data: data
   })

+ 9 - 5
lawenforcement-ui/src/views/lawenforcement/record/bindDevice.vue

@@ -3,10 +3,10 @@
     <div style="padding:20px 30px;">
       <el-form>
         <el-form-item label="任务名称" prop="jobName">
-          <el-input style="width: 80%" v-model="form.jobName" placeholder="请输入任务名称"/>
+          <el-input v-model="form.jobName" placeholder="请输入任务名称" style="width: 370px"/>
         </el-form-item>
         <el-form-item label="设备信息" prop="deviceId">
-          <el-select v-model="form.deviceId" @change="onDeviceChange" placeholder="请选择设备">
+          <el-select v-model="form.deviceId" @change="onDeviceChange" placeholder="请选择设备" class="sbxx">
             <el-option
               v-for="item in deviceList"
               :key="item.cameraCode"
@@ -74,7 +74,7 @@ export default {
     submitBindHandle() {
       this.form.recordStatus = "lawenforcement_type_6"
       addRecordLog(this.form).then(res => {
-        this.$modal.msgSuccess("绑定成功, 开始执法!");
+        this.$modal.msgSuccess("绑定成功!");
         this.bindDeviceDialog = false;
         this.$emit("get-list")
       })
@@ -89,7 +89,7 @@ export default {
     bindDeviceRecordId: {
       handler(newVal) {
         if (newVal) {
-          this.form.id=newVal
+          this.form.recordId = newVal
         }
       },
       immediate: true,
@@ -105,4 +105,8 @@ export default {
   },
 }
 </script>
-
+<style>
+.sbxx .el-input__inner{
+  width: 370px !important;
+}
+</style>

+ 1 - 1
lawenforcement-ui/src/views/lawenforcement/record/distribute.vue

@@ -126,7 +126,7 @@ export default {
     },
     /** 派发工单提交 */
     handleDispatch() {
-      console.log(this.distributeData)
+      this.distributeData.recordStatus = 'lawenforcement_type_9'
       // 处理派发逻辑,这里可以写你的逻辑,比如保存数据或者提交请求
       distributeRecord(this.distributeData).then(res => {
         this.$modal.msgSuccess("派发成功");

+ 1 - 1
lawenforcement-ui/src/views/lawenforcement/record/fillForm.vue

@@ -90,7 +90,7 @@ export default {
     fillFormRecordId: {
       handler(newVal) {
         if (newVal) {
-          this.form.id=newVal
+          this.form.recordId=newVal
         }
       },
       immediate: true,

+ 24 - 5
lawenforcement-ui/src/views/lawenforcement/record/index.vue

@@ -56,6 +56,7 @@
           <span v-if="scope.row.createMethod === 1">自建</span>
           <span v-else-if="scope.row.createMethod === 2">API对接</span>
           <span v-else-if="scope.row.createMethod === 3">数据同步</span>
+          <span v-else-if="scope.row.createMethod === 4">平台自建</span>
           <span v-else>未知方式</span>
         </template>
       </el-table-column>
@@ -64,12 +65,12 @@
           <el-button size="mini" type="text" icon="el-icon-paper-plus" @click="detailShow(scope.row)">
             详情
           </el-button>
-          <el-button v-if="scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod === 1"
+          <el-button v-if="(scope.row.recordStatus === 'lawenforcement_type_1' || scope.row.recordStatus === 'lawenforcement_type_9') && scope.row.createMethod === 4"
                      size="mini" type="text" icon="el-icon-paper-plus" @click="distributeShow(scope.row)">
             派发
           </el-button>
           <el-button
-            v-if="scope.row.recordStatus === 'lawenforcement_type_3'  || (scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod !== 1)"
+            v-if="scope.row.recordStatus === 'lawenforcement_type_9' || 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>
@@ -86,12 +87,12 @@
                 填报
               </el-dropdown-item>
               <el-dropdown-item
-                v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'" command="edit"
+                v-if="scope.row.createMethod === 4 && scope.row.recordStatus === 'lawenforcement_type_1'" command="edit"
                 icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 修改
               </el-dropdown-item>
               <el-dropdown-item
-                v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'"
+                v-if="scope.row.createMethod === 4 && scope.row.recordStatus === 'lawenforcement_type_1'"
                 command="remove" icon="el-icon-delete" v-hasPermi="['lawenforcement:record:remove']">
                 删除
               </el-dropdown-item>
@@ -442,9 +443,10 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
+      this.form.createMethod = 4
       this.$refs["form"].validate(valid => {
         if (valid) {
-          if (this.form.id != null) {
+          if (this.title==="修改任务数据") {
             updateRecord(this.form).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
@@ -543,6 +545,23 @@ export default {
       this.fillFormRecordName = row.jobName
       this.fillFormDialog = true;
     },
+  },
+  watch:{
+    form: {
+      handler(val) {
+        if (val.checkStartTime && val.checkEndTime) {
+          if (new Date(val.checkStartTime) > new Date(val.checkEndTime)) {
+            this.$message({
+              message: '检查开始时间时间不允许大于检查结束时间',
+              type: 'warning',
+              duration: 3000,
+            })
+            this.form.checkEndTime = undefined
+          }
+        }
+      },
+      deep: true
+    }
   }
 };
 </script>

+ 1 - 1
src/main/java/com/sooka/sponest/lawenforcement/device/controller/DeviceController.java

@@ -82,7 +82,7 @@ public class DeviceController extends BaseController {
         //设备关机先尝试删除定时任务
         deviceService.cancelTask(bo.getCode());
         //设置任务结束时间和任务状态为完成
-        recordService.updateRecordLogEndTime(bo);
+//        recordService.updateRecordLogEndTime(bo);
         return AjaxResult.success();
     }
 

+ 10 - 4
src/main/java/com/sooka/sponest/lawenforcement/record/controller/LawenforcementRecordController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecord;
+import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementBindDeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementFillFormBO;
 import com.sooka.sponest.lawenforcement.record.service.ILawenforcementRecordService;
 import com.sooka.sponest.monitor.api.RemoteDeviceService;
@@ -114,11 +115,16 @@ public class LawenforcementRecordController extends BaseController {
     }
 
     /**
-     * 创建工单执行日志
+     * 绑定设备
      */
-    @PostMapping("/addRecordLog")
-    public AjaxResult addRecordLog(@RequestBody LawenforcementRecord record){
-        return toAjax(lawenforcementRecordService.addRecordLog(record));
+    @PostMapping("/bindDevice")
+    public AjaxResult addRecordLog(@RequestBody LawenforcementBindDeviceBO bindDeviceBO){
+        return toAjax(lawenforcementRecordService.addRecordLog(bindDeviceBO));
+    }
+
+    @PostMapping("/closeRecord")
+    public AjaxResult closeRecord(@RequestBody LawenforcementBindDeviceBO bindDeviceBO){
+        return toAjax(lawenforcementRecordService.updateRecordLogEndTime(bindDeviceBO));
     }
 
     /**

+ 2 - 1
src/main/java/com/sooka/sponest/lawenforcement/record/domain/LawenforcementRecordLog.java

@@ -23,11 +23,12 @@ public class LawenforcementRecordLog extends BaseEntity {
     private Date endTime;
     private String deptName;
 
-    public LawenforcementRecordLog(String id, String personCode, String recordId, String deviceId, Date startTime, Date endTime) {
+    public LawenforcementRecordLog(String id, String personCode, String recordId, String deviceId, String deviceName, Date startTime, Date endTime) {
         this.id = id;
         this.personCode = personCode;
         this.recordId = recordId;
         this.deviceId = deviceId;
+        this.deviceName = deviceName;
         this.startTime = startTime;
         this.endTime = endTime;
     }

+ 16 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/domain/bo/LawenforcementBindDeviceBO.java

@@ -0,0 +1,16 @@
+package com.sooka.sponest.lawenforcement.record.domain.bo;
+
+import lombok.*;
+
+@Setter
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class LawenforcementBindDeviceBO {
+    private String recordId;
+    private String personCode;
+    private String deviceId;
+    private String deviceName;
+    private String userId;
+}

+ 9 - 3
src/main/java/com/sooka/sponest/lawenforcement/record/mapper/LawenforcementRecordMapper.java

@@ -3,6 +3,7 @@ package com.sooka.sponest.lawenforcement.record.mapper;
 import com.sooka.sponest.lawenforcement.device.domain.DeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecord;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecordLog;
+import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementBindDeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementFillFormBO;
 import com.sooka.sponest.lawenforcement.record.domain.vo.LawenforcementPersonDetailVO;
 import com.sooka.sponest.lawenforcement.record.domain.vo.LawenforcementRecordDetailVO;
@@ -99,7 +100,7 @@ public interface LawenforcementRecordMapper {
      * @param lawenforcementRecord 任务数据
      * @return 结果
      */
-    int updateLawenforcementRecord(LawenforcementRecord lawenforcementRecord);
+    int bindDeviceToPerson(LawenforcementBindDeviceBO lawenforcementRecord);
 
     Map<String, String> getPersonCode(String id);
 
@@ -109,6 +110,8 @@ public interface LawenforcementRecordMapper {
 
     int recordFillForm(LawenforcementFillFormBO bo);
 
+    int updateLawenforcementRecord(LawenforcementRecord lawenforcementRecord);
+
     /**
      * 批量删除任务数据
      *
@@ -117,8 +120,11 @@ public interface LawenforcementRecordMapper {
      */
     int deleteLawenforcementRecordByIds(String[] ids);
 
-    void updateRecordLogEndTime(DeviceBO bo);
+    int updateRecordLogEndTime(LawenforcementBindDeviceBO bo);
+
+    void updateRecordStatus(LawenforcementBindDeviceBO bo);
 
-    void updateRecordStatus(DeviceBO bo);
+    Map<String, Object> getIsMainPerson(LawenforcementBindDeviceBO record);
 
+    void startRecord(LawenforcementBindDeviceBO record);
 }

+ 5 - 4
src/main/java/com/sooka/sponest/lawenforcement/record/service/ILawenforcementRecordService.java

@@ -1,13 +1,12 @@
 package com.sooka.sponest.lawenforcement.record.service;
 
 import com.alibaba.fastjson.JSONArray;
-import com.sooka.sponest.lawenforcement.device.domain.DeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecord;
+import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementBindDeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementFillFormBO;
 import com.sooka.sponest.lawenforcement.record.domain.vo.LawenforcementRecordDetailVO;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 任务数据Service接口
@@ -68,7 +67,7 @@ public interface ILawenforcementRecordService {
      * @param record
      * @return
      */
-    int addRecordLog(LawenforcementRecord record);
+    int addRecordLog(LawenforcementBindDeviceBO record);
 
     /**
      * 派发工单
@@ -94,8 +93,10 @@ public interface ILawenforcementRecordService {
 
     /**
      * 工单执行结束
+     *
      * @param bo
+     * @return
      */
-    void updateRecordLogEndTime(DeviceBO bo);
+    int updateRecordLogEndTime(LawenforcementBindDeviceBO bo);
 
 }

+ 54 - 17
src/main/java/com/sooka/sponest/lawenforcement/record/service/impl/LawenforcementRecordServiceImpl.java

@@ -2,15 +2,19 @@ package com.sooka.sponest.lawenforcement.record.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.sooka.sponest.lawenforcement.device.domain.DeviceBO;
+import com.ruoyi.system.api.RemoteConfigService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.model.LoginUser;
 import com.sooka.sponest.lawenforcement.device.service.IDeviceService;
 import com.sooka.sponest.lawenforcement.person.domain.LawenforcementPerson;
 import com.sooka.sponest.lawenforcement.person.mapper.LawenforcementPersonMapper;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecord;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecordLog;
+import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementBindDeviceBO;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementFillFormBO;
 import com.sooka.sponest.lawenforcement.record.domain.vo.LawenforcementPersonDetailVO;
 import com.sooka.sponest.lawenforcement.record.domain.vo.LawenforcementRecordDetailVO;
@@ -20,6 +24,7 @@ import com.sooka.sponest.lawenforcement.record.mapper.LawenforcementRecordMapper
 import com.sooka.sponest.lawenforcement.record.service.ILawenforcementRecordService;
 import com.sooka.sponest.lawenforcement.record.setter.RecordIdSetter;
 import com.sooka.sponest.lawenforcement.user.domain.LawenforcementUser;
+import com.sooka.sponest.lawenforcement.user.mapper.LawenforcementUserMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,6 +57,9 @@ public class LawenforcementRecordServiceImpl implements ILawenforcementRecordSer
     @Autowired
     private LawenforcementPersonMapper personMapper;
 
+    @Autowired
+    private LawenforcementUserMapper userMapper;
+
 
     /**
      * 对接省平台数据
@@ -146,7 +154,7 @@ public class LawenforcementRecordServiceImpl implements ILawenforcementRecordSer
         record.setDeptName(SecurityUtils.getLoginUser().getSysUser().getDeptNames());
         record.setRecordStatus("lawenforcement_type_1");
         record.setCreateTime(String.valueOf(System.currentTimeMillis()));
-        record.setCreateMethod(1);
+        record.setIsLast(0);
         return recordMapper.insertLawenforcementRecord(record);
     }
 
@@ -183,17 +191,28 @@ public class LawenforcementRecordServiceImpl implements ILawenforcementRecordSer
      * @return
      */
     @Override
-    public int addRecordLog(LawenforcementRecord record) {
-        //更新工单数据中的设备id和设备名称,以及任务开始时间
-        int i = recordMapper.updateLawenforcementRecord(record);
-        Map<String, String> personCode = recordMapper.getPersonCode(record.getId());
+    public int addRecordLog(LawenforcementBindDeviceBO record) {
+        if(null == record.getUserId() || record.getUserId().isEmpty()){
+            record.setUserId(SecurityUtils.getUserId().toString());
+        }
+        Map<String, Object> userCodeByUserId = userMapper.getUserCodeByUserId(record.getUserId());
+        record.setPersonCode(MapUtils.getString(userCodeByUserId,"personCode"));
+
+        //检查当前绑定设备的执法人是否为主办人
+        Map<String, Object> isMainPerson = recordMapper.getIsMainPerson(record);
+        //将设备与人员绑定
+        int i = recordMapper.bindDeviceToPerson(record);
 
-        LawenforcementRecordLog lawenforcementRecordLog = new LawenforcementRecordLog(IdUtils.fastSimpleUUID(), MapUtils.getString(personCode, "personCode"), record.getId(), record.getDeviceId(), new Date(), null);
+        LawenforcementRecordLog lawenforcementRecordLog = new LawenforcementRecordLog(IdUtils.fastSimpleUUID(), record.getPersonCode(), record.getRecordId(), record.getDeviceId(), record.getDeviceName(), new Date(), null);
         //将工单执行记录,写入到日志表中:数据id、任务id、执法人编号、设备编号、开始时间
         recordMapper.addRecordLog(lawenforcementRecordLog);
-        //绑定设备后关闭定时任务
-        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;
     }
 
@@ -252,16 +271,34 @@ public class LawenforcementRecordServiceImpl implements ILawenforcementRecordSer
 
     /**
      * 结束工单
-     * @param bo
+     *
+     * @param record
+     * @return
      */
     @Override
-    public void updateRecordLogEndTime(DeviceBO bo) {
-        //设置任务完成状态
-        recordMapper.updateRecordStatus(bo);
+    public int updateRecordLogEndTime(LawenforcementBindDeviceBO record) {
+        if(null == record.getUserId() || record.getUserId().isEmpty()){
+            record.setUserId(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        }
+        Map<String, Object> userCodeByUserId = userMapper.getUserCodeByUserId(record.getUserId());
+        record.setPersonCode(MapUtils.getString(userCodeByUserId,"personCode"));
+
+        //检查当前绑定设备的执法人是否为主办人
+        Map<String, Object> isMainPerson = recordMapper.getIsMainPerson(record);
+        if("1".equals(MapUtils.getString(isMainPerson,"mainPerson"))){
+            //设置任务完成状态
+            recordMapper.updateRecordStatus(record);
+        }
+
         //设置任务结束时间
-        recordMapper.updateRecordLogEndTime(bo);
-        //从正在执行任务的设备集合中移除信息
-        deviceService.removeOpenedDevice(bo.getCode());
+        int i = recordMapper.updateRecordLogEndTime(record);
+
+        Boolean isOpen = Boolean.valueOf(SpringUtils.getBean(RemoteConfigService.class).remotegetConfigKey("lawenforcement_open").getData());
+        if(isOpen){
+            //从正在执行任务的设备集合中移除信息
+            deviceService.removeOpenedDevice(record.getDeviceId());
+        }
+        return i;
     }
 
     /**

+ 3 - 0
src/main/java/com/sooka/sponest/lawenforcement/user/mapper/LawenforcementUserMapper.java

@@ -3,6 +3,7 @@ package com.sooka.sponest.lawenforcement.user.mapper;
 import com.sooka.sponest.lawenforcement.user.domain.LawenforcementUser;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 人员信息管理Mapper接口
@@ -60,4 +61,6 @@ public interface LawenforcementUserMapper {
     public int deleteLawenforcementUserByUserIds(String[] userIds);
 
     List<LawenforcementUser> getUserListByDeptId(String[] deptId);
+
+    Map<String,Object> getUserCodeByUserId(String string);
 }

+ 70 - 56
src/main/resources/mapper/lawenforcement/LawenforcementRecordMapper.xml

@@ -446,54 +446,9 @@
         where lr.id = #{id}
     </select>
 
-    <update id="updateLawenforcementRecord" parameterType="LawenforcementRecord">
-        update lawenforcement_record
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="jobType != null">job_type = #{jobType},</if>
-            <if test="creatorId != null">creator_id = #{creatorId},</if>
-            <if test="creatorName != null">creator_name = #{creatorName},</if>
-            <if test="deptId != null">dept_id = #{deptId},</if>
-            <if test="deptName != null">dept_name = #{deptName},</if>
-            <if test="areaId != null">area_id = #{areaId},</if>
-            <if test="jobName != null">job_name = #{jobName},</if>
-            <if test="checkType != null">check_type = #{checkType},</if>
-            <if test="checkObjectType != null">check_object_type = #{checkObjectType},</if>
-            <if test="checkObjectId != null">check_object_id = #{checkObjectId},</if>
-            <if test="checkObjectCode != null">check_object_code = #{checkObjectCode},</if>
-            <if test="checkObjectName != null">check_object_name = #{checkObjectName},</if>
-            <if test="checkObjectPhone != null">check_object_phone = #{checkObjectPhone},</if>
-            <if test="checkStartTime != null">check_start_time = #{checkStartTime},</if>
-            <if test="checkEndTime != null">check_end_time = #{checkEndTime},</if>
-            <if test="subitemCount != null">subitem_count = #{subitemCount},</if>
-            <if test="remark != null">remark = #{remark},</if>
-            <if test="verify != null">verify = #{verify},</if>
-            <if test="unableVerifyReason != null">unable_verify_reason = #{unableVerifyReason},</if>
-            <if test="scanId != null">scan_id = #{scanId},</if>
-            <if test="scanName != null">scan_name = #{scanName},</if>
-            <if test="scanTime != null">scan_time = #{scanTime},</if>
-            <if test="verifyPeopleId != null">verify_people_id = #{verifyPeopleId},</if>
-            <if test="verifyPeopleName != null">verify_people_name = #{verifyPeopleName},</if>
-            <if test="verifyTime != null">verify_time = #{verifyTime},</if>
-            <if test="evaluation != null">evaluation = #{evaluation},</if>
-            <if test="evaluationContent != null">evaluation_content = #{evaluationContent},</if>
-            <if test="evaluationTime != null">evaluation_time = #{evaluationTime},</if>
-            <if test="result != null">result = #{result},</if>
-            <if test="resultTime != null">result_time = #{resultTime},</if>
-            <if test="resultPersonId != null">result_person_id = #{resultPersonId},</if>
-            <if test="status != null">status = #{status},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="isLast != null">is_last = #{isLast},</if>
-            <if test="jobId != null">job_id = #{jobId},</if>
-            <if test="lastJobType != null">last_job_type = #{lastJobType},</if>
-            <if test="source != null">source = #{source},</if>
-            <if test="createMethod != null">create_method = #{createMethod},</if>
-            <if test="isCrossDept != null">is_cross_dept = #{isCrossDept},</if>
-            <if test="deviceId != null">device_id = #{deviceId},</if>
-            <if test="deviceName != null">device_name = #{deviceName},</if>
-            <if test="recordStatus != null">record_status = #{recordStatus},</if>
-        </trim>
-        where id = #{id}
+    <update id="bindDeviceToPerson" parameterType="LawenforcementBindDeviceBO">
+        update lawenforcement_person set device_id = #{deviceId}, device_name = #{deviceName}
+        where record_id = #{recordId} and person_code = #{personCode}
     </update>
 
     <select id="getPersonCode" parameterType="string" resultType="map">
@@ -507,6 +462,7 @@
             <if test="personCode != null">person_code,</if>
             <if test="recordId != null">record_id,</if>
             <if test="deviceId != null">device_id,</if>
+            <if test="deviceName != null">device_name,</if>
             <if test="startTime != null">start_time,</if>
             <if test="endTime != null">end_time,</if>
         </trim>
@@ -515,6 +471,7 @@
             <if test="personCode != null">#{personCode},</if>
             <if test="recordId != null">#{recordId},</if>
             <if test="deviceId != null">#{deviceId},</if>
+            <if test="deviceName != null">#{deviceName},</if>
             <if test="startTime != null">#{startTime},</if>
             <if test="endTime != null">#{endTime},</if>
         </trim>
@@ -556,18 +513,75 @@
         </foreach>
     </delete>
 
-    <update id="updateRecordStatus" parameterType="DeviceBO">
+    <update id="updateRecordStatus" parameterType="LawenforcementBindDeviceBO">
         update lawenforcement_record
         set record_status = 'lawenforcement_type_2'
-        where id = (
-            select record_id
-            from lawenforcement_record_log
-            where device_id = #{code} and end_time is null
-        )
+        where id = #{recordId}
+    </update>
+
+    <update id="updateRecordLogEndTime" parameterType="LawenforcementBindDeviceBO">
+        update lawenforcement_record_log set end_time = NOW()
+        WHERE end_time is null and record_id = #{recordId} and person_code = #{personCode}
     </update>
 
-    <update id="updateRecordLogEndTime" parameterType="DeviceBO">
-        update lawenforcement_record_log set end_time = NOW() WHERE device_id = #{code} and end_time is null
+    <select id="getIsMainPerson" parameterType="LawenforcementBindDeviceBO" resultType="map">
+        select main_person as mainPerson from lawenforcement_person
+        WHERE person_code = #{personCode} AND record_id = #{recordId}
+    </select>
+
+    <update id="startRecord" parameterType="LawenforcementBindDeviceBO">
+        update lawenforcement_record set record_status = 'lawenforcement_type_6'
+        where id = #{recordId}
+    </update>
+
+    <update id="updateLawenforcementRecord" parameterType="LawenforcementRecord">
+        update lawenforcement_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="jobType != null">job_type = #{jobType},</if>
+            <if test="creatorId != null">creator_id = #{creatorId},</if>
+            <if test="creatorName != null">creator_name = #{creatorName},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="areaId != null">area_id = #{areaId},</if>
+            <if test="jobName != null">job_name = #{jobName},</if>
+            <if test="checkType != null">check_type = #{checkType},</if>
+            <if test="checkObjectType != null">check_object_type = #{checkObjectType},</if>
+            <if test="checkObjectId != null">check_object_id = #{checkObjectId},</if>
+            <if test="checkObjectCode != null">check_object_code = #{checkObjectCode},</if>
+            <if test="checkObjectName != null">check_object_name = #{checkObjectName},</if>
+            <if test="checkObjectPhone != null">check_object_phone = #{checkObjectPhone},</if>
+            <if test="checkStartTime != null">check_start_time = #{checkStartTime},</if>
+            <if test="checkEndTime != null">check_end_time = #{checkEndTime},</if>
+            <if test="subitemCount != null">subitem_count = #{subitemCount},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="verify != null">verify = #{verify},</if>
+            <if test="unableVerifyReason != null">unable_verify_reason = #{unableVerifyReason},</if>
+            <if test="scanId != null">scan_id = #{scanId},</if>
+            <if test="scanName != null">scan_name = #{scanName},</if>
+            <if test="scanTime != null">scan_time = #{scanTime},</if>
+            <if test="verifyPeopleId != null">verify_people_id = #{verifyPeopleId},</if>
+            <if test="verifyPeopleName != null">verify_people_name = #{verifyPeopleName},</if>
+            <if test="verifyTime != null">verify_time = #{verifyTime},</if>
+            <if test="evaluation != null">evaluation = #{evaluation},</if>
+            <if test="evaluationContent != null">evaluation_content = #{evaluationContent},</if>
+            <if test="evaluationTime != null">evaluation_time = #{evaluationTime},</if>
+            <if test="result != null">result = #{result},</if>
+            <if test="resultTime != null">result_time = #{resultTime},</if>
+            <if test="resultPersonId != null">result_person_id = #{resultPersonId},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="isLast != null">is_last = #{isLast},</if>
+            <if test="jobId != null">job_id = #{jobId},</if>
+            <if test="lastJobType != null">last_job_type = #{lastJobType},</if>
+            <if test="source != null">source = #{source},</if>
+            <if test="createMethod != null">create_method = #{createMethod},</if>
+            <if test="isCrossDept != null">is_cross_dept = #{isCrossDept},</if>
+            <if test="deviceId != null">device_id = #{deviceId},</if>
+            <if test="deviceName != null">device_name = #{deviceName},</if>
+            <if test="recordStatus != null">record_status = #{recordStatus},</if>
+        </trim>
+        where id = #{id}
     </update>
 
 </mapper>

+ 4 - 0
src/main/resources/mapper/lawenforcement/LawenforcementUserMapper.xml

@@ -147,4 +147,8 @@
             #{deptId}
         </foreach>
     </select>
+
+    <select id="getUserCodeByUserId" parameterType="string" resultType="map">
+        select certificate_number as personCode from lawenforcement_user where user_id = #{userId}
+    </select>
 </mapper>