feat:人员类型统计

ln_ry20250512
wangxy 4 days ago
parent 8f2ac2271e
commit fb91261b9f

@ -1,40 +1,23 @@
package com.ruoyi.web.controller.system.count; package com.ruoyi.web.controller.system.count;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.StrPool; import cn.hutool.core.text.StrPool;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysPostVO;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ObtainLastSixMonthsUtil; import com.ruoyi.common.utils.ObtainLastSixMonthsUtil;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.apply.TdApplyInfoList; import com.ruoyi.system.domain.apply.TdApplyInfoList;
import com.ruoyi.system.domain.apply.dto.ApplyCountDTO; import com.ruoyi.system.domain.apply.dto.ApplyCountDTO;
import com.ruoyi.system.domain.apply.dto.ApplySmCountDTO; import com.ruoyi.system.domain.apply.dto.ApplySmCountDTO;
import com.ruoyi.system.domain.check.TdCheckReport; import com.ruoyi.system.domain.apply.dto.TdApplyInfoListDTO;
import com.ruoyi.system.domain.count.UserCountDTO;
import com.ruoyi.system.domain.count.UserSmCountDTO;
import com.ruoyi.system.service.*;
import com.ruoyi.system.service.apply.TdApplyInfoListService; import com.ruoyi.system.service.apply.TdApplyInfoListService;
import com.ruoyi.web.controller.manager.ApplyInfoListManager;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
@ -44,28 +27,23 @@ import java.util.stream.Collectors;
/** /**
* *
* @author Administrator
*/ */
@Controller @Controller
@RequestMapping("/system/usernum") @RequestMapping("/system/usernum")
public class SysUsernumController extends BaseController { public class SysUsernumController extends BaseController {
private String prefix = "system/usernum";
@Autowired private String prefix = "system/usernum";
private ISysUserService userService;
@Autowired
private ISysPostService postService;
@Autowired
private ISysRoleService roleService;
@Autowired
private ISysDeptService deptService;
@Autowired private String prefixPre = "system/newdev/person";
private SysUserPostService sysUserPostService;
@Resource @Resource
private TdApplyInfoListService applyInfoListService; private TdApplyInfoListService applyInfoListService;
@Resource
private ApplyInfoListManager applyInfoListManager;
@RequiresPermissions("system:usernum:view") @RequiresPermissions("system:usernum:view")
@GetMapping() @GetMapping()
public String user() { public String user() {
@ -75,66 +53,28 @@ public class SysUsernumController extends BaseController {
/** /**
* *
* *
* @param user * @param applyInfoListDTO
* @return * @return
*/ */
@RequiresPermissions("system:usernum:list") @RequiresPermissions("system:usernum:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @ResponseBody
public TableDataInfo list(SysUser user, SysDept dept) { public TableDataInfo list(TdApplyInfoListDTO applyInfoListDTO) {
startPage(); startPage();
List<SysUser> sysuser = new ArrayList<>(); List<TdApplyInfoList> tdApplyInfoLists = applyInfoListManager.selectPersonList(applyInfoListDTO);
List<SysUser> list = userService.selectUserGroupBydept(user); return getDataTable(tdApplyInfoLists);
List<SysDept> sysDepts = deptService.selectDeptList(dept);
for (SysDept sysDept : sysDepts) {
for (SysUser user1 : list) {
if (sysDept.getDeptId().equals(user1.getDept().getDeptId())) {
sysuser.add(user1);
}
}
}
return getDataTable(sysuser);
} }
/** /**
* *
*
* @param user
* @return
*/
@Log(title = "用户统计", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:usernum:export")
@PostMapping("/export")
@ResponseBody
public AjaxResult export(SysUser user) {
List<SysUser> list = userService.selectUserList(user);
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
return util.exportExcel(list, "用户统计数据");
}
/**
*
*/ */
@RequiresPermissions("system:usernum:detail") @RequiresPermissions("system:usernum:detail")
@GetMapping("/print/{deptId}") @GetMapping("/detail/{applyId}")
public String print(@PathVariable("deptId") Long deptId, SysUser user, ModelMap mmap) { public String detail(@PathVariable("applyId") String applyId, ModelMap mmap) {
List<SysUser> list = userService.lambdaQuery().eq(SysUser::getDeptId, deptId) TdApplyInfoListDTO applyInfoList = applyInfoListManager.getTdApplyInfoList(applyId);
.eq(SysUser::getDelFlag, '0') mmap.put("applyInfoList", applyInfoList);
.ne(SysUser::getUserId, 1)
.list(); return prefixPre + "/detail";
list.forEach(sysuser -> {
List<SysUserPost> postList = sysUserPostService.lambdaQuery().
eq(SysUserPost::getUserId, sysuser.getUserId()).list();
List<Long> postIds = postList.stream().map(SysUserPost::getPostId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(postIds)) {
List<SysPost> sysPostList = postService.lambdaQuery().in(SysPost::getPostId, postIds).list();
sysuser.setPosts(Convert.toList(SysPostVO.class, sysPostList));
}
});
mmap.put("list", list);
mmap.put("dept", deptService.selectDeptById(deptId));
mmap.put("sysuser", getSysUser());
return prefix + "/print";
} }

@ -45,30 +45,26 @@
<div class="select-list"> <div class="select-list">
<ul> <ul>
<li> <li>
<label>单位名称</label> <label style="width: 80px">姓名</label>
<input type="text" name="deptName"/> <input type="text" name="name"/>
</li> </li>
<li> <li>
<label>所属市州:</label> <label>身份证号:</label>
<select id="City" name="framework" @change="getAreaList()" v-model="City"> <input type="text" name="cerno"/>
<option value="">请选择</option> </li>
<option v-for="option in CityList" :value="option.id" :key="option.id"> <li>
{{ option.name }} <label>联系方式:</label>
</option> <input type="text" name="phone"/>
</select>
</li> </li>
<li> <li>
<label>所属区县:</label> 状态:<select name="applyStatus" th:with="type=${@dict.getType('sys_user_apply_status')}">
<select id="Area" name="area" v-model="Area"> <option value="">所有</option>
<option value="">请选择</option> <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
<option v-for="option in AreaList" :value="option.id" :key="option.id">
{{ option.name }}
</option>
</select> </select>
</li> </li>
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -87,10 +83,9 @@
<th:block th:include="include :: echarts-js" /> <th:block th:include="include :: echarts-js" />
<script th:inline="javascript"> <script th:inline="javascript">
var detailFlag = [[${@permission.hasPermi('system:usernum:detail')}]]; var detailFlag = [[${@permission.hasPermi('system:usernum:detail')}]];
var politics = [[${@dict.getType('sys_user_politics')}]]; var applyState = [[${@dict.getType('sys_user_apply_status')}]];
var shemichengdu = [[${@dict.getType('sys_user_shemi')}]];
var examineState = [[${@dict.getType('sys_examine_state')}]];
var prefix = ctx + "system/usernum"; var prefix = ctx + "system/usernum";
var prefixPer = ctx + "system/personList";
let datas = [] let datas = []
$.ajax({ $.ajax({
url: ctx + "system/area/getAllList", url: ctx + "system/area/getAllList",
@ -120,49 +115,96 @@
function queryUserList() { function queryUserList() {
var options = { var options = {
url: prefix + "/list", url: prefix + "/list",
createUrl: prefix + "/add", detailUrl:prefix + "/detail/{id}",
detail: prefix + "/detail/{id}", modalName: "涉密人员",
print: prefix + "/print/{id}", type: 0,
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "用户",
pageSize:'5',
columns: [ columns: [
{ {
field : 'dept.deptid', field: 'applyId',
title : '编号', title: 'id',
visible: false visible: false
}, },
{ {
field: 'dept.framework', field: 'name',
title: '所属市州', title: '姓名'
formatter: function(value, row, index) { },
return getCity(datas, value) {
} field: 'sex',
title: '性别'
},
{
field: 'nationality',
title: '民族',
},
{
field: 'maritalStatus',
title: '婚姻状况',
},
{
field: 'cerno',
title: '身份证号',
}, },
{ {
field: 'dept.area', field: 'phone',
title: '所属区县', title: '联系方式',
},
{
field: 'smPost',
title: '已(拟)任涉密岗位',
},
{
field: 'smGrade',
title: '涉密等级',
},
{
title: '状态',
align: 'center',
field: 'applyStatus',
formatter: function(value, row, index) { formatter: function(value, row, index) {
return getCity(datas, value) return $.table.selectDictLabel(applyState, value);
} }
}, },
{ {
field: 'dept.deptName', field: 'createTime',
title: '所在单位' title: '创建时间',
sortable: true
}, },
{ {
title: '操作', title: '操作',
align: 'center', align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-info btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="print(\'' + row.deptId + '\')"><i class="fa fa-download"></i>打印</a> '); if(row.remark == '1') {
return actions.join(''); } actions.push('<a class="btn btn-info btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="handleDetail(\'' + row.applyId + '\')"><i class="fa fa-edit"></i>调岗记录</a> ');
actions.push('<a class="btn btn-info btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.applyId + '\')"><i class="fa fa-edit"></i>查看</a> ');
}else{
actions.push('<a class="btn btn-info btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.applyId + '\')"><i class="fa fa-edit"></i>查看</a> ');
}
return actions.join('');
}
}] }]
}; };
$.table.init(options); $.table.init(options);
} }
function handleDetail(applyId){
table.set();
var _url = prefixPer + '/getApplyRecord/' + applyId;
var options = {
title:'调岗记录',
width: '900',
height: '900',
url: _url,
skin: 'layui-layer-gray',
btn: ['关闭'],
yes: function (index, layero) {
$.modal.close(index);
}
};
$.modal.openOptions(options);
}
/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */ /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
function resetPre() { function resetPre() {
resetDate(); resetDate();

Loading…
Cancel
Save