Переглянути джерело

案件受理研判, 指定部门

Memory_LG 18 годин тому
батько
коміт
26a9ab8b20

+ 3 - 2
lawenforcement-ui/src/api/lawenforcement/provincialDept.js

@@ -43,9 +43,10 @@ export function delProvincialDept(deptId) {
   })
 }
 
-export function getDept(){
+export function getDept(query){
   return request({
     url: '/sooka-sponest-lawenforcement/provincialDept/getDeptList',
-    method: 'get'
+    method: 'get',
+    params: query
   })
 }

+ 171 - 112
lawenforcement-ui/src/views/lawenforcement/case/index.vue

@@ -86,7 +86,7 @@
     <!-- 详情 -->
     <el-dialog :title="title" :visible.sync="open" width="1200px" class="form-style gdla">
       <div style="height: 700px;overflow-y: auto; padding:20px 30px;">
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="案件名称" prop="caseName" class="duanInput">
@@ -128,13 +128,14 @@
           <el-row :gutter="20">
             <el-col :span="12" style="padding-left:20px;padding-right:40px">
               <el-form-item label="上报单位" prop="reportunitName" class="duanInput">
-                <treeselect v-model="form.reportunitId" :options="deptOptions" :disabled ="disabled" multiple:false :show-count="true"
+                <treeselect v-model="form.reportunitId" :options="deptOptions" :disabled="disabled" multiple:false
+                            :show-count="true"
                             :noResultsText="'空'" :noOptionsText="'空'" placeholder="请选择上报单位" @select="hx"/>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="上报人" prop="createName" class="duanInput">
-                <el-select v-model="form.createName" placeholder="请选择上报人" :disabled ="disabled" @change="setVal">
+                <el-select v-model="form.createName" placeholder="请选择上报人" :disabled="disabled" @change="setVal">
                   <el-option v-for="dict in renOptions" :key="dict.userId" :label="dict.nickName"
                              :value="{value:dict.userId,label:dict.nickName}"></el-option>
                 </el-select>
@@ -163,88 +164,114 @@
           <el-row :gutter="20">
             <el-col :span="24">
               <el-form-item label="案件描述" prop="describe">
-                <el-input type="textarea" rows="5" v-model="form.describe" placeholder="请输入案件描述" disabled class="ajms"/>
+                <el-input type="textarea" rows="5" v-model="form.describe" placeholder="请输入案件描述" disabled
+                          class="ajms"/>
               </el-form-item>
             </el-col>
           </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-card>
-              <div class="form-item-title">1.法制审核机构出具的审核意见书</div>
-              <br>
-              <el-col :span="24">
-                <el-form-item label="附件" label-width="50px" prop="dataOne">
-                  <fileUpload v-model="dataOne" disabled class="fjList"></fileUpload>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="说明" label-width="50px" prop="describe">
-                  <el-input v-model="describe1" disabled  class="shuoming"/>
-                </el-form-item>
-              </el-col>
-            </el-card>
-          </el-col>
-          <el-col :span="24">
-            <el-card>
-              <div class="form-item-title">2.落实行政处罚裁量基准和包容审慎监管执法“四张清单”相关材料</div>
-              <br>
-              <el-col :span="24">
-                <el-form-item label="附件" label-width="50px" prop="dataTwo">
-                  <fileUpload v-model="dataTwo" disabled class="fjList"></fileUpload>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="说明" label-width="50px" prop="describe">
-                  <el-input v-model="describe2" disabled class="shuoming"/>
-                </el-form-item>
-              </el-col>
-            </el-card>
-          </el-col>
-          <el-col :span="24">
-            <el-card>
-              <div class="form-item-title">3.拟作出行政处罚决定依据的其他有关材料</div>
-              <br>
-              <el-col :span="24">
-                <el-form-item label="附件" label-width="50px" prop="dataThree">
-                  <fileUpload v-model="dataThree" disabled class="fjList"></fileUpload>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="说明" label-width="50px" prop="describe">
-                  <el-input v-model="describe3" disabled class="shuoming"/>
-                </el-form-item>
-              </el-col>
-            </el-card>
-          </el-col>
-        </el-row>
-      </el-form>
-      <el-table v-loading="loading" :data="logList" @selection-change="handleSelectionChange">
-        <el-table-column label="所属部门" align="center" prop="deptName"/>
-        <el-table-column label="操作人" align="center" prop="createName"/>
-        <el-table-column label="操作时间" align="center" prop="createTime"/>
-        <el-table-column label="状态" align="center" prop="state">
-          <template slot-scope="scope">
-            <dict-tag :options="dict.type.lawenforcement_caseState" :value="scope.row.state"/>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作内容" align="center" prop="content"/>
-      </el-table>
-    </div>
+          <el-row :gutter="20" v-if="queryParams.state === 'state_1'">
+            <el-col :span="12">
+              <el-form-item label="研判部门" prop="judgmentType">
+                <el-radio-group v-model="form.judgmentType">
+                  <el-radio :label="0" @change="handleJudgmentTypeChange">默认</el-radio>
+                  <el-radio :label="1">自定义</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <span v-if="form.judgmentType === 0"> 默认研判部门</span>
+              <el-select v-if="form.judgmentType === 1" v-model="form.deptIdList" multiple placeholder="请选择"
+                         style="width: 402px !important;">
+                <el-option
+                  v-for="item in provincialDeptOptions"
+                  :key="item.deptId"
+                  :label="item.provincialDeptName"
+                  :value="item.deptId">
+                </el-option>
+              </el-select>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="24">
+              <el-card>
+                <div class="form-item-title">1.法制审核机构出具的审核意见书</div>
+                <br>
+                <el-col :span="24">
+                  <el-form-item label="附件" label-width="50px" prop="dataOne">
+                    <fileUpload v-model="dataOne" disabled class="fjList"></fileUpload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="说明" label-width="50px" prop="describe">
+                    <el-input v-model="describe1" disabled class="shuoming"/>
+                  </el-form-item>
+                </el-col>
+              </el-card>
+            </el-col>
+            <el-col :span="24">
+              <el-card>
+                <div class="form-item-title">2.落实行政处罚裁量基准和包容审慎监管执法“四张清单”相关材料</div>
+                <br>
+                <el-col :span="24">
+                  <el-form-item label="附件" label-width="50px" prop="dataTwo">
+                    <fileUpload v-model="dataTwo" disabled class="fjList"></fileUpload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="说明" label-width="50px" prop="describe">
+                    <el-input v-model="describe2" disabled class="shuoming"/>
+                  </el-form-item>
+                </el-col>
+              </el-card>
+            </el-col>
+            <el-col :span="24">
+              <el-card>
+                <div class="form-item-title">3.拟作出行政处罚决定依据的其他有关材料</div>
+                <br>
+                <el-col :span="24">
+                  <el-form-item label="附件" label-width="50px" prop="dataThree">
+                    <fileUpload v-model="dataThree" disabled class="fjList"></fileUpload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="说明" label-width="50px" prop="describe">
+                    <el-input v-model="describe3" disabled class="shuoming"/>
+                  </el-form-item>
+                </el-col>
+              </el-card>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-table v-loading="loading" :data="logList" @selection-change="handleSelectionChange">
+          <el-table-column label="所属部门" align="center" prop="deptName"/>
+          <el-table-column label="操作人" align="center" prop="createName"/>
+          <el-table-column label="操作时间" align="center" prop="createTime"/>
+          <el-table-column label="状态" align="center" prop="state">
+            <template slot-scope="scope">
+              <dict-tag :options="dict.type.lawenforcement_caseState" :value="scope.row.state"/>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作内容" align="center" prop="content"/>
+        </el-table>
+      </div>
       <div slot="footer" class="dialog-footer">
-        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_1'" type="primary" @click="acceptance('state_2')">受理
+        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_1'" type="primary"
+                   @click="acceptance('state_2')">受理
+        </el-button>
+        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_1'" @click="noAcceptance('state_3')">不予受理
         </el-button>
-        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_1'" @click="noAcceptance('state_3')">不予受理</el-button>
         <el-button v-if="update!='update'&&type!='1'&&form.state=='state_2'&&this.logNum==0" type="primary"
                    @click="acceptance('state_6')">通 过
         </el-button>
-        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_2'&&this.logNum==0" @click="noAcceptance('state_7')">不通过
+        <el-button v-if="update!='update'&&type!='1'&&form.state=='state_2'&&this.logNum==0"
+                   @click="noAcceptance('state_7')">不通过
         </el-button>
-        <el-button v-if="update=='update'" type="primary"  @click="acceptance(state,1)">确 定</el-button>
+        <el-button v-if="update=='update'" type="primary" @click="acceptance(state,1)">确 定</el-button>
         <el-button v-if="update=='update'" @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
 
-    <el-dialog :title="title" :visible.sync="open1" width="600px" height="500px" class="form-style" >
+    <el-dialog :title="title" :visible.sync="open1" width="600px" height="500px" class="form-style">
       <div style="padding: 20px 30px">
         <el-form ref="form" :model="form" :rules="rules" label-width="80px" margin-top:30px>
           <el-form-item label="说明" prop="describe">
@@ -261,13 +288,14 @@
 </template>
 
 <script>
-import {listCase, getCase, getCaseLog, updateCase,getRenByDeptId} from "@/api/lawenforcement/case";
+import {listCase, getCase, getCaseLog, updateCase, getRenByDeptId} from "@/api/lawenforcement/case";
 import register from "@/views/lawenforcement/register/index.vue";
 import form from "element-ui/packages/form";
 import fileUpload from '@/views/components/FileUpload/index.vue';
 import {getChildrenByDeptId} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {getDept} from "@/api/lawenforcement/provincialDept";
 
 export default {
   name: "Case",
@@ -276,10 +304,11 @@ export default {
       return form
     }
   },
-  components: {register, fileUpload,Treeselect},
+  components: {register, fileUpload, Treeselect},
   dicts: ['lawenforcement_punish_target', 'lawenforcement_punish_type', 'lawenforcement_caseState'],
   data() {
     return {
+      provincialDeptOptions: [],
       dataOne: null,
       dataTwo: null,
       dataThree: null,
@@ -303,7 +332,7 @@ export default {
       // 总条数
       total: 0,
       type: 0,
-      update:null,
+      update: null,
       // 案件表格数据
       caseList: [],
       //日志列表
@@ -315,8 +344,8 @@ export default {
       open: false,
       open1: false,
       disabled: true,
-      state:null,
-      state1 :null,
+      state: null,
+      state1: null,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -340,9 +369,15 @@ export default {
         state: null
       },
       // 表单参数
-      form: {},
+      form: {
+        judgmentType: 0,
+      },
       // 表单校验
-      rules: {},
+      rules: {
+        judgmentType: [
+          {required: true, message: "研判部门不能为空", trigger: "change"}
+        ],
+      },
       selected: null,
       defaultDeptId: 100
     };
@@ -352,16 +387,25 @@ export default {
     this.type = this.$route.query.type;
     this.getList();
     this.getTreeselect();
+    this.getDeptList();
   },
   methods: {
+    handleJudgmentTypeChange() {
+      this.form.deptIdList = []
+    },
+    getDeptList() {
+      getDept().then(res => {
+        this.provincialDeptOptions = res.data
+      })
+    },
     getTreeselect() {
       getChildrenByDeptId(this.defaultDeptId).then(response => {
         this.deptOptions = response.data
       })
     },
-    getRen(id){
+    getRen(id) {
       //获取人员列表
-      getRenByDeptId({deptId:id}).then(response => {
+      getRenByDeptId({deptId: id}).then(response => {
         this.renOptions = response.data
       })
     },
@@ -426,7 +470,10 @@ export default {
         uploadTwo: null,
         dataThree: null,
         uploadThree: null,
-        state: this.queryParams.state
+        state: this.queryParams.state,
+        judgmentType: 0,
+        deptIdList: []
+
       };
       this.resetForm("form");
     },
@@ -496,21 +543,25 @@ export default {
       });
     },
     /** 受理 */
-    acceptance(state,type) {
-      this.form.state = state;
-      this.form.type = type;
-      updateCase(this.form).then(response => {
-        if (type == '1') {
-          this.$modal.msgSuccess("修改成功");
+    acceptance(state, type) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.state = state;
+          this.form.type = type;
+          updateCase(this.form).then(response => {
+            if (type == '1') {
+              this.$modal.msgSuccess("修改成功");
+            }
+            if (state == 'state_2' && type != '1') {
+              this.$modal.msgSuccess("受理成功");
+            }
+            if (state == 'state_6' && type != '1') {
+              this.$modal.msgSuccess("通过成功");
+            }
+            this.open = false;
+            this.getList();
+          });
         }
-        if (state == 'state_2' && type != '1') {
-          this.$modal.msgSuccess("受理成功");
-        }
-        if (state == 'state_6' && type != '1') {
-          this.$modal.msgSuccess("通过成功");
-        }
-        this.open = false;
-        this.getList();
       });
     },
     /* 不予受理 */
@@ -567,7 +618,7 @@ export default {
 /* .anjianxinxi{
   background: #f5f5f5;
 } */
-.gdla .el-dialog{
+.gdla .el-dialog {
   height: 820px;
   overflow: hidden;
 }
@@ -580,14 +631,15 @@ export default {
 .el-form-item {
   display: flex;
 }
-.el-form-item__label{
+
+.el-form-item__label {
   font-weight: normal !important;
-  white-space:nowrap !important;
+  white-space: nowrap !important;
 }
 
 .el-form-item__content {
   margin: 0 !important;
-  line-height:0!important;
+  line-height: 0 !important;
 }
 
 .duanInput .el-input.is-disabled .el-input__inner, .duanInput .el-input--medium .el-input__inner {
@@ -617,33 +669,40 @@ export default {
 .el-card {
   margin: 0 0 20px 0;
 }
-.el-form-item--medium .el-form-item__content .upload-file{
+
+.el-form-item--medium .el-form-item__content .upload-file {
   display: flex;
-  align-items:center ;
+  align-items: center;
 }
-.el-dialog__body .el-button--medium{
-    padding: 0 !important;
-    width: 40px;
-    height: 40px;
-    margin: 0 20px 0 0 !important;
+
+.el-dialog__body .el-button--medium {
+  padding: 0 !important;
+  width: 40px;
+  height: 40px;
+  margin: 0 20px 0 0 !important;
 }
-.el-dialog__body .el-button--medium img{
+
+.el-dialog__body .el-button--medium img {
   width: 100%;
   height: 100%;
 }
+
 /* .el-upload-list{
   width: 930px ;
 } */
-.upload-file-list .ele-upload-list__item-content{
+.upload-file-list .ele-upload-list__item-content {
   padding: 0 10px;
 }
-.shuoming{
+
+.shuoming {
   width: 1040px !important;
 }
-.shuoming input{
+
+.shuoming input {
   width: 1040px !important;
 }
-.fjList .el-upload-list{
+
+.fjList .el-upload-list {
   width: 980px !important;
 }
 </style>

+ 6 - 0
src/main/java/com/sooka/sponest/lawenforcement/lawCase/domain/LawenforcementCase.java

@@ -110,6 +110,12 @@ public class LawenforcementCase extends BaseBusinessEntity {
 
     private String type;
 
+    //研判部门类型: 0=默认;  1=自定义
+    private String judgmentType;
+
+    //研判部门类型为1时, 不为空, 存放的时部门id集合
+    private List<String> deptIdList;
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

+ 5 - 0
src/main/java/com/sooka/sponest/lawenforcement/lawCase/mapper/LawenforcementCaseLogMapper.java

@@ -4,6 +4,7 @@ import com.sooka.sponest.lawenforcement.lawCase.domain.LawenforcementCase;
 import com.sooka.sponest.lawenforcement.lawCase.domain.LawenforcementCaseLog;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 案件日志Mapper接口
@@ -75,4 +76,8 @@ public interface LawenforcementCaseLogMapper {
     * @date 2024/10/11 下午2:51
     */
     public int getCaseLog(LawenforcementCase lawenforcementCase);
+
+    void insertCaseJudgment(LawenforcementCase lawenforcementCase);
+
+    List<Map<String, Object>> getJudgmentByCaseId(String id);
 }

+ 2 - 0
src/main/java/com/sooka/sponest/lawenforcement/lawCase/mapper/LawenforcementCaseMapper.java

@@ -59,4 +59,6 @@ public interface LawenforcementCaseMapper {
      * @return 结果
      */
     public int deleteLawenforcementCaseByIds(String[] ids);
+
+    void updateCaseJudgment(LawenforcementCase lawenforcementCase);
 }

+ 61 - 22
src/main/java/com/sooka/sponest/lawenforcement/lawCase/service/impl/LawenforcementCaseServiceImpl.java

@@ -8,6 +8,7 @@ import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.ruoyi.common.datascope.base.service.BaseService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.RemoteConfigService;
+import com.ruoyi.system.api.domain.SysUser;
 import com.sooka.sponest.lawenforcement.feign.service.RemoteEnforcementConfigService;
 import com.sooka.sponest.lawenforcement.lawCase.domain.LawenforcementAttach;
 import com.sooka.sponest.lawenforcement.lawCase.domain.LawenforcementCase;
@@ -16,13 +17,19 @@ import com.sooka.sponest.lawenforcement.lawCase.mapper.LawenforcementAttachMappe
 import com.sooka.sponest.lawenforcement.lawCase.mapper.LawenforcementCaseLogMapper;
 import com.sooka.sponest.lawenforcement.lawCase.mapper.LawenforcementCaseMapper;
 import com.sooka.sponest.lawenforcement.lawCase.service.ILawenforcementCaseService;
+import com.sooka.sponest.lawenforcement.provincialDept.domain.LawenforcementProvincialDept;
+import com.sooka.sponest.lawenforcement.provincialDept.mapper.LawenforcementProvincialDeptMapper;
+import com.sooka.sponest.lawenforcement.provincialDept.service.ILawenforcementProvincialDeptService;
 import com.sooka.sponest.lawenforcement.record.domain.LawenforcementRecord;
 import com.sooka.sponest.lawenforcement.record.mapper.LawenforcementRecordMapper;
 import com.sooka.sponest.lawenforcement.utils.DataConstants;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -45,6 +52,9 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
     @Autowired
     private LawenforcementRecordMapper recordMapper;
 
+    @Autowired
+    private LawenforcementProvincialDeptMapper provincialDeptMapper;
+
     /**
      * 查询案件
      *
@@ -83,6 +93,7 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
     @Override
     public List<LawenforcementCase> selectLawenforcementCaseList(LawenforcementCase lawenforcementCase) {
         setSookaDataBase(lawenforcementCase);
+        lawenforcementCase.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
         return lawenforcementCaseMapper.selectLawenforcementCaseList(lawenforcementCase);
     }
 
@@ -111,7 +122,7 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
         lawenforcementCaseLog.setId(IdUtils.simpleUUID());
         lawenforcementCaseLog.setCreateBy(SecurityUtils.getUserId().toString());
         lawenforcementCaseLog.setCreateTime(DateUtils.getNowDate());
-        lawenforcementCaseLog.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        lawenforcementCaseLog.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         lawenforcementCaseLog.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
         lawenforcementCaseLog.setDeptName(SecurityUtils.getLoginUser().getSysUser().getDeptNames());
         lawenforcementCaseLog.setCaseId(lawenforcementCase.getId());
@@ -120,11 +131,11 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
         lawenforcementCaseLogMapper.insertLawenforcementCaseLog(lawenforcementCaseLog);
         //附件
         lawenforcementAttachMapper.deleteByBusId(lawenforcementCase.getId());//删掉旧数据
-        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesOne())||StringUtils.isNotEmpty(lawenforcementCase.getDescribeOne())){
+        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesOne()) || StringUtils.isNotEmpty(lawenforcementCase.getDescribeOne())) {
             LawenforcementAttach centerdataTFile = new LawenforcementAttach();
             centerdataTFile.setBusId(lawenforcementCase.getId());
             centerdataTFile.setFileName(lawenforcementCase.getFileNamesOne());
-            String fileUrl = lawenforcementCase.getDataOne()==null? null :getString(lawenforcementCase.getDataOne());
+            String fileUrl = lawenforcementCase.getDataOne() == null ? null : getString(lawenforcementCase.getDataOne());
             centerdataTFile.setAttachPath(fileUrl);
             centerdataTFile.setAttachSorts(1L);
             centerdataTFile.setDescribe(lawenforcementCase.getDescribeOne());
@@ -133,11 +144,11 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
             centerdataTFile.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
             lawenforcementAttachMapper.insertLawenforcementAttach(centerdataTFile);
         }
-        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesTwo())||StringUtils.isNotEmpty(lawenforcementCase.getDescribeTwo())){
+        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesTwo()) || StringUtils.isNotEmpty(lawenforcementCase.getDescribeTwo())) {
             LawenforcementAttach centerdataTFile = new LawenforcementAttach();
             centerdataTFile.setBusId(lawenforcementCase.getId());
             centerdataTFile.setFileName(lawenforcementCase.getFileNamesTwo());
-            String fileUrl = lawenforcementCase.getDataTwo()==null?null: getString(lawenforcementCase.getDataTwo());
+            String fileUrl = lawenforcementCase.getDataTwo() == null ? null : getString(lawenforcementCase.getDataTwo());
             centerdataTFile.setAttachPath(fileUrl);
             centerdataTFile.setAttachSorts(2L);
             centerdataTFile.setDescribe(lawenforcementCase.getDescribeTwo());
@@ -146,11 +157,11 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
             centerdataTFile.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
             lawenforcementAttachMapper.insertLawenforcementAttach(centerdataTFile);
         }
-        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesThree())||StringUtils.isNotEmpty(lawenforcementCase.getDescribeThree())){
+        if (StringUtils.isNotEmpty(lawenforcementCase.getFileNamesThree()) || StringUtils.isNotEmpty(lawenforcementCase.getDescribeThree())) {
             LawenforcementAttach centerdataTFile = new LawenforcementAttach();
             centerdataTFile.setBusId(lawenforcementCase.getId());
             centerdataTFile.setFileName(lawenforcementCase.getFileNamesThree());
-            String fileUrl = lawenforcementCase.getDataThree()==null?null: getString(lawenforcementCase.getDataThree());
+            String fileUrl = lawenforcementCase.getDataThree() == null ? null : getString(lawenforcementCase.getDataThree());
             centerdataTFile.setAttachPath(fileUrl);
             centerdataTFile.setAttachSorts(3L);
             centerdataTFile.setDescribe(lawenforcementCase.getDescribeThree());
@@ -188,12 +199,12 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
      */
     @Override
     public int updateLawenforcementCase(LawenforcementCase lawenforcementCase) {
-        if (StringUtils.isEmpty(lawenforcementCase.getType())){
+        if (StringUtils.isEmpty(lawenforcementCase.getType())) {
             LawenforcementCaseLog lawenforcementCaseLog = new LawenforcementCaseLog();
             lawenforcementCaseLog.setId(IdUtils.simpleUUID());
             lawenforcementCaseLog.setCreateBy(SecurityUtils.getUserId().toString());
             lawenforcementCaseLog.setCreateTime(DateUtils.getNowDate());
-            lawenforcementCaseLog.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+            lawenforcementCaseLog.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
             lawenforcementCaseLog.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
             lawenforcementCaseLog.setDeptName(SecurityUtils.getLoginUser().getSysUser().getDeptNames());
             lawenforcementCaseLog.setCaseId(lawenforcementCase.getId());
@@ -201,22 +212,50 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
             lawenforcementCaseLog.setContent(lawenforcementCase.getContent());
             lawenforcementCaseLogMapper.insertLawenforcementCaseLog(lawenforcementCaseLog);
         }
-        if (lawenforcementCase.getState().equals("state_6")){
-            List<LawenforcementCaseLog> logList = lawenforcementCaseLogMapper.getLogByCaseId(lawenforcementCase.getId());
-            long count = logList.stream().filter(obj -> obj.getState().equals("state_6")).count();
-            if (lawenforcementCase.getCaseNumber().contains("ZJ-") || count >= 5){
+        if (lawenforcementCase.getState().equals("state_6")) {
+            SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+            lawenforcementCase.setUpdateName(sysUser.getNickName());
+            lawenforcementCase.setDeptId(sysUser.getDeptId());
+            lawenforcementCaseMapper.updateCaseJudgment(lawenforcementCase);
+
+            List<Map<String, Object>> logList = lawenforcementCaseLogMapper.getJudgmentByCaseId(lawenforcementCase.getId());
+            long count = logList.size();
+            if (lawenforcementCase.getCaseNumber().contains("ZJ-") || count <= 0) {
                 lawenforcementCase.setState("state_5");
                 lawenforcementCase.setUpdateBy(SecurityUtils.getUserId());
                 lawenforcementCase.setUpdateTime(DateUtils.getNowDate());
-                lawenforcementCase.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+                lawenforcementCase.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
                 lawenforcementCaseMapper.updateLawenforcementCase(lawenforcementCase);
             }
             return 1;
-        }else {
-            lawenforcementCase.setState(lawenforcementCase.getState().equals("state_7")?"state_4": lawenforcementCase.getState());
+        } else if ("state_2".equals(lawenforcementCase.getState())) {
+            if ("0".equals(lawenforcementCase.getJudgmentType())) {
+                LawenforcementProvincialDept lawenforcementProvincialDept = new LawenforcementProvincialDept();
+                lawenforcementProvincialDept.setIsJudgment("1");
+                List<Map<String, Object>> deptList = provincialDeptMapper.getDeptList(lawenforcementProvincialDept);
+                List<String> deptIdList = new ArrayList<>();
+                deptList.forEach(dept -> {
+                    deptIdList.add(MapUtils.getString(dept, "deptId"));
+                });
+                lawenforcementCase.setDeptIdList(deptIdList);
+            }
+            if (StringUtils.isNotEmpty(lawenforcementCase.getDeptIdList())) {
+                lawenforcementCaseLogMapper.insertCaseJudgment(lawenforcementCase);
+            }
+
+            lawenforcementCaseMapper.updateLawenforcementCase(lawenforcementCase);
+            return 1;
+        } else {
+            lawenforcementCase.setState(lawenforcementCase.getState().equals("state_7") ? "state_4" : lawenforcementCase.getState());
             lawenforcementCase.setUpdateBy(SecurityUtils.getUserId());
             lawenforcementCase.setUpdateTime(DateUtils.getNowDate());
-            lawenforcementCase.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+
+
+            SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+            lawenforcementCase.setUpdateName(sysUser.getNickName());
+            lawenforcementCase.setDeptId(sysUser.getDeptId());
+            lawenforcementCaseMapper.updateCaseJudgment(lawenforcementCase);
+
             return lawenforcementCaseMapper.updateLawenforcementCase(lawenforcementCase);
         }
     }
@@ -244,11 +283,11 @@ public class LawenforcementCaseServiceImpl extends BaseService implements ILawen
     }
 
     /*
-    * 按部门查看日志
-    *
-    * @author 韩福成
-    * @date 2024/10/11 下午2:50
-    */
+     * 按部门查看日志
+     *
+     * @author 韩福成
+     * @date 2024/10/11 下午2:50
+     */
     @Override
     public int getCaseLog(LawenforcementCase lawenforcementCase) {
         return lawenforcementCaseLogMapper.getCaseLog(lawenforcementCase);

+ 11 - 0
src/main/resources/mapper/lawenforcement/LawenforcementCaseLogMapper.xml

@@ -96,4 +96,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select count(id) from lawenforcement_case_log
         where dept_id = #{deptId} and case_id = #{id} and (state = 'state_6' or state = 'state_7')
     </select>
+
+    <insert id="insertCaseJudgment" parameterType="LawenforcementCase">
+        insert into lawenforcement_case_judgment (case_id, record_id, dept_id, state) values
+        <foreach collection="deptIdList" item="deptId" open="(" separator="),(" close=")">
+            #{id}, #{recordId}, #{deptId}, 'state_2'
+        </foreach>
+    </insert>
+
+    <select id="getJudgmentByCaseId" parameterType="String" resultType="map">
+        select * from lawenforcement_case_judgment where case_id = #{id} and state != 'state_6'
+    </select>
 </mapper>

+ 17 - 1
src/main/resources/mapper/lawenforcement/LawenforcementCaseMapper.xml

@@ -38,6 +38,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectLawenforcementCaseList" parameterType="LawenforcementCase" resultMap="LawenforcementCaseResult">
         <include refid="selectLawenforcementCaseVo"/>
+        <if test="state != null and state != '' and state == 'state_2'">
+            left join lawenforcement_case_judgment cj on a.id = cj.case_id
+        </if>
         <where>
             <if test="deptName != null  and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
             <if test="recordId != null  and recordId != ''"> and record_id = #{recordId}</if>
@@ -46,7 +49,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="punishTarget != null  and punishTarget != ''"> and punish_target = #{punishTarget}</if>
             <if test="punishType != null  and punishType != ''"> and punish_type = #{punishType}</if>
             <if test="describe != null  and describe != ''"> and `describe` = #{describe}</if>
-            <if test="state != null  and state != ''"> and state = #{state}</if>
+            <if test="state != null  and state != ''">
+                <choose>
+                    <when test="state != 'state_2'">
+                        and state = #{state}
+                    </when>
+                    <otherwise>
+                        and cj.dept_id = #{deptId}
+                    </otherwise>
+                </choose>
+            </if>
         </where>
         order by a.create_time desc
     </select>
@@ -134,4 +146,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <update id="updateCaseJudgment" parameterType="LawenforcementCase">
+        update lawenforcement_case_judgment set state = #{state} where case_id = #{id} and dept_id = #{deptId}
+    </update>
 </mapper>

+ 16 - 3
src/main/resources/mapper/lawenforcement/LawenforcementProvincialDeptMapper.xml

@@ -76,10 +76,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <select id="getDeptList" parameterType="LawenforcementProvincialDept" resultType="map">
-        select dept_id deptId, provincial_dept_name provincialDeptName from lawenforcement_provincial_dept
+        select dept_id deptId, provincial_dept_name provincialDeptName, is_judgment isJudgment from lawenforcement_provincial_dept
         <where>
-            <if test="isJudgment != null and isJudgment != ''"> and is_judgment = #{isJudgment}</if>
-            <if test="deptId!= null"> and (dept_id = #{deptId} or find_in_set( #{deptId}, dept_ancestors ))</if>
+            <choose>
+                <when  test="isJudgment != null and isJudgment != ''">
+                    <if test="isJudgment == 1">
+                        and is_judgment = #{isJudgment}
+                    </if>
+                    <if test="isJudgment == 0 and deptId != null">
+                        and (dept_id = #{deptId} or find_in_set( #{deptId}, dept_ancestors ))
+                    </if>
+                </when>
+                <otherwise>
+                    <if test="deptId != null">
+                        and (dept_id = #{deptId} or find_in_set( #{deptId}, dept_ancestors ))
+                    </if>
+                </otherwise>
+            </choose>
         </where>
     </select>
 </mapper>