Merge branch 'dev_xd' of http://62.234.3.186:3000/jiangyq/YZProjectCloud into dev_xd
commit
06ceddbd15
|
@ -4,10 +4,24 @@
|
|||
<el-col :span="8" style="margin-left:20px;width:calc(33.33% - 20px);">
|
||||
<div class="head-title-tab">
|
||||
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doNav(1)" v-if="1==2">项目概况</div>
|
||||
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)">项目详情</div>
|
||||
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)">劳务管理</div>
|
||||
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)" v-if="1==2">项目详情</div>
|
||||
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)" v-if="1==2">劳务管理</div>
|
||||
|
||||
<div :class="(nav >= 100 && nav < 200) || nav == 1 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
|
||||
<div>项目概况</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
|
||||
<button type="button" :class="nav == 101 ? 'active' : ''" class="sub-btn" @click="doNav(101)">项目详情</button>
|
||||
<button type="button" :class="nav == 102 ? 'active' : ''" class="sub-btn" @click="doNav(102)">劳务管理</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
|
||||
<div @click="doNav(3)">安全管理</div>
|
||||
<div>安全管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
|
@ -32,7 +46,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
|
||||
<div @click="doNav(4)">质量管理</div>
|
||||
<div>质量管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
|
@ -50,7 +64,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
|
||||
<div @click="doNav(5)">进度管理</div>
|
||||
<div>进度管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
|
@ -179,11 +193,11 @@ export default {
|
|||
case 1:
|
||||
this.$router.push('/index')
|
||||
break
|
||||
case 2:
|
||||
case 101:
|
||||
this.$router.push('/detail')
|
||||
break
|
||||
case 3:
|
||||
this.$router.push('/prjSafety')
|
||||
//this.$router.push('/prjSafety')
|
||||
break
|
||||
case 309:
|
||||
this.$router.push('/videoMonitor')
|
||||
|
@ -204,15 +218,15 @@ export default {
|
|||
this.$router.push('/aiWarning')
|
||||
break
|
||||
case 4:
|
||||
this.$router.push('/prjQuality')
|
||||
//this.$router.push('/prjQuality')
|
||||
break
|
||||
case 5:
|
||||
this.$router.push('/prjProgress')
|
||||
//this.$router.push('/prjProgress')
|
||||
break
|
||||
case 6:
|
||||
this.$router.push('/greenCarbon')
|
||||
break
|
||||
case 7:
|
||||
case 102:
|
||||
this.$router.push('/labor')
|
||||
break
|
||||
case 501:
|
||||
|
|
|
@ -14,14 +14,14 @@ const routes = [
|
|||
{
|
||||
path: "/detail",
|
||||
name: "detail",
|
||||
meta: { nav: 2 },
|
||||
meta: { nav: 101 },
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "detail" */ "../views/projectDetail.vue"),
|
||||
},
|
||||
{
|
||||
path: "/labor",
|
||||
name: "labor",
|
||||
meta: { nav: 7 },
|
||||
meta: { nav: 102 },
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "labor" */ "../views/projectLabor.vue"),
|
||||
},
|
||||
|
|
|
@ -542,7 +542,7 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
window.detailApp = this
|
||||
this.$store.dispatch('ChangeNav', 2)
|
||||
this.$store.dispatch('ChangeNav', 101)
|
||||
this.$bus.$on(
|
||||
'projectChange',
|
||||
debounce((prj) => {
|
||||
|
|
|
@ -532,7 +532,7 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$store.dispatch('ChangeNav', 7)
|
||||
this.$store.dispatch('ChangeNav', 102)
|
||||
this.$bus.$on(
|
||||
'projectChange',
|
||||
debounce((prj) => {
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package com.yanzhu.manage.mapper;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.yanzhu.manage.domain.AttendanceUbiData;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 考勤管理Mapper接口
|
||||
|
@ -78,4 +80,19 @@ public interface AttendanceUbiDataMapper
|
|||
*/
|
||||
List<Map<String,Object>> statsAttendanceView(AttendanceUbiData where);
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
List<AttendanceUbiData> groupAttendanceLastWeek(@Param("prjId") Long prjId,@Param("dateStart") Date dateStart,@Param("dateEnd") Date dateEnd);
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<AttendanceUbiData> getRealAttendance(@Param("prjId") Long prjId);
|
||||
}
|
||||
|
|
|
@ -170,4 +170,25 @@ public interface ProProjectInfoSubdeptsUsersMapper
|
|||
* @return
|
||||
*/
|
||||
public List<Map<String,Object>> fileGroupLeaderUsers(@Param("subDeptId")Long subDeptId, @Param("craftPost")String craftPost);
|
||||
|
||||
/**
|
||||
* 分组统计人员年龄,省份统计信息
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
List<ProProjectInfoSubdeptsUsers> groupWorkderNative(@Param("projectId") Long projectId);
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
List<ProProjectInfoSubdeptsUsers> getWorkerCountGroupByType(@Param("projectId") Long projectId);
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<ProProjectInfoSubdeptsUsers> getAttendanceAlert(@Param("projectId")Long prjId);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.yanzhu.manage.mapper;
|
|||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -136,4 +137,21 @@ public interface SurProjectAttendanceDataMapper
|
|||
List<SurProjectAttendanceData> selectSurProjectAttendanceDataListByMonth(SurProjectAttendanceData attWhere);
|
||||
|
||||
List<SurProjectAttendanceData> selectSurProjectAttendanceDataListByDate(SurProjectAttendanceData attWhere);
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceData> groupAttendanceLastWeek(@Param("prjId") Long prjId,@Param("dateStart") Date dateStart,@Param("dateEnd") Date dateEnd,@Param("year") int year);
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceData> getRealAttendance(@Param("prjId") Long prjId,@Param("year") int year);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,10 @@ package com.yanzhu.manage.mapper;
|
|||
|
||||
|
||||
import com.yanzhu.manage.domain.AttendanceCfg;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -167,4 +169,25 @@ public interface SurProjectAttendanceUserMapper
|
|||
*/
|
||||
List<SurProjectAttendanceUser> queryWorkerByState(SurProjectAttendanceUser where);
|
||||
|
||||
/**
|
||||
* 获取项目人员年龄,地域分组信息
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> groupWorkderNative(@Param("projectId") Long projectId);
|
||||
|
||||
/**
|
||||
*劳务人员工种占比
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> getWorkerCountGroupByType(@Param("projectId")Long prjId);
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> getAttendanceAlert(@Param("projectId")Long prjId, @Param("year")int year);
|
||||
}
|
||||
|
|
|
@ -249,4 +249,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
)days
|
||||
</select>
|
||||
|
||||
<select id="groupAttendanceLastWeek" resultMap="AttendanceUbiDataResult">
|
||||
SELECT dt comName, count(1) comId
|
||||
from (SELECT DISTINCT userid, date (ifnull(inTime, outTime)) dt from attendance_ubi_data
|
||||
where is_del!=1
|
||||
and projectid=#{prjId}
|
||||
AND (date (inTime) >= date (#{dateStart})
|
||||
or date (outTime) >= date (#{dateStart}))
|
||||
AND (date (inTime) <= date (#{dateEnd})
|
||||
or date (outTime) <= date (#{dateEnd}))
|
||||
) tmp
|
||||
GROUP BY dt
|
||||
</select>
|
||||
|
||||
<select id="getRealAttendance" resultMap="AttendanceUbiDataResult">
|
||||
<include refid="selectAttendanceUbiDataVo"/>
|
||||
where
|
||||
is_del!=1
|
||||
and projectid=#{prjId}
|
||||
and date(inTime)=date(now()) or date(outTime)=date(now())
|
||||
order by ifnull(inTime,outTime) DESC
|
||||
LIMIT 4
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -420,4 +420,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
)
|
||||
</select>
|
||||
|
||||
<select id="groupWorkderNative" resultMap="ProProjectInfoSubdeptsUsersResult">
|
||||
select psu.card_code cardCode,nav.address comName
|
||||
from pro_project_info_subdepts_users psu
|
||||
left join sys_native nav on left(psu.card_code,6)=nav.id
|
||||
where psu.project_id = #{projectId}
|
||||
and psu.user_post != '66'
|
||||
and psu.approve_status >= 100
|
||||
and psu.is_del != 2
|
||||
</select>
|
||||
<select id="getWorkerCountGroupByType" resultMap="ProProjectInfoSubdeptsUsersResult">
|
||||
select dic2.dict_label as craft_post_name,
|
||||
count(1) comId
|
||||
from pro_project_info_subdepts_users psu
|
||||
join sys_dict_data dic2 on psu.`craft_post` = dic2.`dict_value` and dic2.`dict_type` = 'pro_craft_post'
|
||||
where psu.is_del!=2
|
||||
and psu.project_id=#{projectId}
|
||||
GROUP BY dic2.dict_label
|
||||
order by count(1) desc
|
||||
</select>
|
||||
|
||||
<select id="getAttendanceAlert" resultMap="ProProjectInfoSubdeptsUsersResult">
|
||||
select us.*,TIMESTAMPDIFF(Day, att.dt,now()) com_id from (
|
||||
SELECT
|
||||
psu.id, psu.par_id,psu.project_id, pi.project_name, psu.sub_dept_id, psu.sub_dept_type,
|
||||
pdept.sub_dept_name, psu.sub_dept_group_name, psu.user_name
|
||||
from pro_project_info_subdepts_users psu
|
||||
left join pro_project_info pi on pi.id = psu.project_id
|
||||
join pro_project_info_subdepts pdept on psu.sub_dept_id=pdept.id
|
||||
where psu.is_del!=2 and psu.use_status=0 and psu.project_id=#{projectId}
|
||||
) us
|
||||
join (
|
||||
select userId,max(ifnull(inTime,outTime)) dt from attendance_ubi_data
|
||||
where projectid=#{projectId} and is_del!=1
|
||||
group by userId
|
||||
order by max(ifnull(inTime,outTime)) ) att on us.id=att.userId
|
||||
</select>
|
||||
</mapper>
|
|
@ -641,11 +641,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
select '3' as type, DATE_FORMAT(days.attendanceTime, '%m-%d') as attendanceTime,days.total from(
|
||||
select date(d.attendance_time) as attendanceTime, DATE_FORMAT(d.attendance_time, '%m-%d'),count(1) as total from sur_project_attendance_data_${year} d
|
||||
where d.cfgid in (select cfg.id from attendance_cfg cfg where cfg.project_id=#{projectId} and cfg.is_del=0)
|
||||
and d.is_del=0
|
||||
and d.is_del=0 and state=0
|
||||
and date(d.attendance_time) between #{attendanceTime} and #{attendanceOutTime}
|
||||
group by date(d.attendance_time)
|
||||
order by date(d.attendance_time)
|
||||
)days
|
||||
</select>
|
||||
|
||||
<select id="groupAttendanceLastWeek" resultMap="SurProjectAttendanceDataResult">
|
||||
SELECT dt deptName,count(1) deptId
|
||||
from (
|
||||
select DISTINCT workerId, date(ifnull(attendance_time,attendance_out_time)) dt
|
||||
from sur_project_attendance_data_${year} where
|
||||
is_del !=1 and state=0
|
||||
and projectid=#{prjId}
|
||||
AND (date(attendance_time) >= date(#{dateStart}) or date(attendance_out_time) >= date(#{dateStart}))
|
||||
AND (date(attendance_time) <= date(#{dateEnd}) or date(attendance_out_time) <= date(#{dateEnd}))
|
||||
|
||||
) tmp
|
||||
group by dt
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getRealAttendance" resultMap="SurProjectAttendanceDataResult">
|
||||
select * from sur_project_attendance_data_${year}
|
||||
where date(attendance_time)=date(now()) or date(attendance_out_time)=date(now())
|
||||
and is_del!=1
|
||||
and projectid=#{prjId} and state=0
|
||||
order by ifnull(attendance_time,attendance_out_time) DESC
|
||||
LIMIT 4
|
||||
</select>
|
||||
</mapper>
|
|
@ -809,4 +809,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
</select>
|
||||
|
||||
<select id="groupWorkderNative" resultMap="SurProjectAttendanceUserResult">
|
||||
select birthDate,nativePlace
|
||||
from sur_project_attendance_user
|
||||
where cfgid in (select id from attendance_cfg where project_id= #{projectId}) and is_del!=1 and state=0
|
||||
</select>
|
||||
|
||||
<select id="getWorkerCountGroupByType" resultMap="SurProjectAttendanceUserResult">
|
||||
select workTypeName,count(1) id from sur_project_attendance_user
|
||||
where cfgid in (select id from attendance_cfg where project_id= #{projectId}) and is_del!=1 and state=0
|
||||
group by workTypeName
|
||||
order by count(1) DESC
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getAttendanceAlert" resultMap="SurProjectAttendanceUserResult">
|
||||
|
||||
select u.*,TIMESTAMPDIFF(Day, att.dt,now()) id
|
||||
from (
|
||||
select su.workerId,su.name,pi.project_name companyName, pdept.sub_dept_name teamName
|
||||
from sur_project_attendance_user su
|
||||
left join attendance_cfg cfg on su.cfgId=cfg.ID
|
||||
left join pro_project_info pi on pi.id = cfg.project_id
|
||||
join pro_project_info_subdepts pdept on cfg.dept_id=pdept.id
|
||||
where
|
||||
su.is_del!=1 and su.state=0
|
||||
and cfg.project_id=#{projectId} ) u
|
||||
join
|
||||
|
||||
(
|
||||
|
||||
select workerId,max(ifnull(attendance_time,attendance_out_time)) dt
|
||||
from sur_project_attendance_data_${year}
|
||||
where projectid=#{projectId} and is_del!=1
|
||||
GROUP BY workerId
|
||||
order by max(ifnull(attendance_time,attendance_out_time))
|
||||
) att on u.workerId=att.workerId
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,122 @@
|
|||
package com.yanzhu.manage.controller.bigscreen;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.common.core.web.controller.BaseController;
|
||||
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||
import com.yanzhu.manage.domain.AttendanceUbiData;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceUser;
|
||||
import com.yanzhu.manage.service.IAttendanceUbiDataService;
|
||||
import com.yanzhu.manage.service.IProProjectInfoSubdeptsUsersService;
|
||||
import com.yanzhu.manage.service.ISurProjectAttendanceDataService;
|
||||
import com.yanzhu.manage.service.ISurProjectAttendanceUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 劳务管理-大屏
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/bgscreen/tower")
|
||||
public class LaborController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceUserService surProjectAttendanceUserService;
|
||||
|
||||
@Autowired
|
||||
IAttendanceUbiDataService attendanceUbiDataService;
|
||||
|
||||
@Autowired
|
||||
IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceDataService surProjectAttendanceDataService;
|
||||
|
||||
/**
|
||||
* 分组统计人员年龄,省份统计信息
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/groupByWorker/{type}/{prjId}")
|
||||
public AjaxResult groupByWorker(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){
|
||||
if("uni".equals(type.toLowerCase())){
|
||||
JSONObject pList=proProjectInfoSubdeptsUsersService.groupWorkderNative(prjId);
|
||||
return AjaxResult.success(pList);
|
||||
}else{
|
||||
JSONObject sList=surProjectAttendanceUserService.groupWorkderNative(prjId);
|
||||
return AjaxResult.success(sList);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
*/
|
||||
@GetMapping("/groupAttendanceLastWeek/{type}/{prjId}")
|
||||
public AjaxResult groupAttendanceLastWeek(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){
|
||||
Date dateEnd=new DateTime();
|
||||
Date dateStart=DateUtil.offsetDay(dateEnd,7);
|
||||
if("uni".equals(type.toLowerCase())){
|
||||
JSONArray sList=attendanceUbiDataService.groupAttendanceLastWeek(prjId,dateStart,dateEnd);
|
||||
return AjaxResult.success(sList);
|
||||
}else{
|
||||
JSONArray pList=surProjectAttendanceDataService.groupAttendanceLastWeek(prjId,dateStart,dateEnd,DateUtil.year(dateEnd));
|
||||
return AjaxResult.success(pList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
*/
|
||||
@GetMapping("/getWorkerCountGroupByType/{type}/{prjId}")
|
||||
public AjaxResult getWorkerCountGroupByType(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){
|
||||
if("uni".equals(type.toLowerCase())){
|
||||
List<ProProjectInfoSubdeptsUsers> sList=proProjectInfoSubdeptsUsersService.getWorkerCountGroupByType(prjId);
|
||||
return AjaxResult.success(sList);
|
||||
}else{
|
||||
List<SurProjectAttendanceUser> pList=surProjectAttendanceUserService.getWorkerCountGroupByType(prjId);
|
||||
return AjaxResult.success(pList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
*/
|
||||
@GetMapping("/getRealAttendance/{type}/{prjId}")
|
||||
public AjaxResult getRealAttendance(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){
|
||||
if("uni".equals(type.toLowerCase())){
|
||||
List<AttendanceUbiData> sList=attendanceUbiDataService.getRealAttendance(prjId);
|
||||
return AjaxResult.success(sList);
|
||||
}else{
|
||||
Date dateEnd=new DateTime();
|
||||
List<SurProjectAttendanceData> pList=surProjectAttendanceDataService.getRealAttendance(prjId,DateUtil.year(dateEnd));
|
||||
return AjaxResult.success(pList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
*/
|
||||
@GetMapping("/getAttendanceAlert/{type}/{prjId}")
|
||||
public AjaxResult getAttendanceAlert(@PathVariable("type")String type, @PathVariable("prjId") Long prjId){
|
||||
if("uni".equals(type.toLowerCase())){
|
||||
List<ProProjectInfoSubdeptsUsers> sList=proProjectInfoSubdeptsUsersService.getAttendanceAlert(prjId);
|
||||
return AjaxResult.success(sList);
|
||||
}else{
|
||||
Date dateEnd=new DateTime();
|
||||
List<SurProjectAttendanceUser> pList=surProjectAttendanceUserService.getAttendanceAlert(prjId,DateUtil.year(dateEnd));
|
||||
return AjaxResult.success(pList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -4,7 +4,10 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.manage.domain.AttendanceUbiData;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
|
||||
/**
|
||||
* 考勤管理Service接口
|
||||
|
@ -97,4 +100,20 @@ public interface IAttendanceUbiDataService
|
|||
*/
|
||||
List<AttendanceUbiData> findUsersAttendanceView(Long proId);
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
JSONArray groupAttendanceLastWeek(Long prjId, Date dateStart, Date dateEnd);
|
||||
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<AttendanceUbiData> getRealAttendance(Long prjId);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.manage.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SignetFileVo;
|
||||
|
||||
|
@ -7,7 +8,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 分包单位工人Service接口
|
||||
* 分包单位工人Service接口 泾河
|
||||
*
|
||||
* @author JiangYuQi
|
||||
* @date 2024-08-25
|
||||
|
@ -238,4 +239,25 @@ public interface IProProjectInfoSubdeptsUsersService
|
|||
* @return
|
||||
*/
|
||||
List<Map<String,Object>> fileGroupLeaderUsers(Long subDeptId,String craftPost);
|
||||
|
||||
/**
|
||||
* 分组统计人员年龄,省份统计信息
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
JSONObject groupWorkderNative(Long prjId);
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<ProProjectInfoSubdeptsUsers> getWorkerCountGroupByType(Long prjId);
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<ProProjectInfoSubdeptsUsers> getAttendanceAlert(Long prjId);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.yanzhu.manage.service;
|
||||
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -137,4 +140,21 @@ public interface ISurProjectAttendanceDataService
|
|||
List<SurProjectAttendanceData> selectSurProjectAttendanceDataListByMonth(SurProjectAttendanceData attWhere);
|
||||
|
||||
List<SurProjectAttendanceData> selectSurProjectAttendanceDataListByDate(SurProjectAttendanceData attWhere);
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
JSONArray groupAttendanceLastWeek(Long prjId, Date dateStart, Date dateEnd, int year);
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceData> getRealAttendance(Long prjId, int year);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.yanzhu.manage.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceUser;
|
||||
|
||||
|
@ -159,4 +161,26 @@ public interface ISurProjectAttendanceUserService
|
|||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> queryWorkerByState(SurProjectAttendanceUser where);
|
||||
|
||||
/**
|
||||
* 获取项目人员年龄,地域分组信息
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
JSONObject groupWorkderNative(Long prjId);
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> getWorkerCountGroupByType(Long prjId);
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
List<SurProjectAttendanceUser> getAttendanceAlert(Long prjId, int year);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.enums.ShiFouEnums;
|
||||
import com.yanzhu.common.core.enums.UserTypeEnums;
|
||||
|
@ -11,6 +14,7 @@ import com.yanzhu.common.core.utils.StringUtils;
|
|||
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||
import com.yanzhu.manage.domain.AttendanceUbiData;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.manage.enums.SubDeptsEnums;
|
||||
import com.yanzhu.manage.enums.UserPostEnums;
|
||||
import com.yanzhu.manage.mapper.AttendanceUbiDataMapper;
|
||||
|
@ -274,4 +278,46 @@ public class AttendanceUbiDataServiceImpl implements IAttendanceUbiDataService
|
|||
attendanceQuery.setIsDel(ShiFouEnums.FOU.getCode());
|
||||
return attendanceUbiDataMapper.selectAttendanceUbiDataList(attendanceQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONArray groupAttendanceLastWeek(Long prjId, Date dateStart, Date dateEnd) {
|
||||
List<AttendanceUbiData> list=attendanceUbiDataMapper.groupAttendanceLastWeek(prjId,dateStart,dateEnd);
|
||||
JSONArray jArr = new JSONArray();
|
||||
for(int i=0;i<7;i++){
|
||||
String dt=DateUtil.format(DateUtil.offsetDay(dateStart,1*i),"yyyy-MM-dd");
|
||||
List<AttendanceUbiData> sub=list.stream().filter(item->item.getComName().equals(dt)).collect(Collectors.toList());
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("dt",dt);
|
||||
if(sub.size()>0){
|
||||
Long cnt=sub.get(0).getComId();
|
||||
if(cnt!=null){
|
||||
jo.put("cnt",cnt);
|
||||
}
|
||||
}
|
||||
if(!jo.containsKey("cnt")){
|
||||
jo.put("cnt",0);
|
||||
}
|
||||
jArr.add(jo);
|
||||
}
|
||||
return jArr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<AttendanceUbiData> getRealAttendance(Long prjId) {
|
||||
return attendanceUbiDataMapper.getRealAttendance(prjId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.common.core.constant.SecurityConstants;
|
||||
import com.yanzhu.common.core.enums.*;
|
||||
import com.yanzhu.common.core.exception.ServiceException;
|
||||
|
@ -35,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 分包单位工人Service业务层处理
|
||||
|
@ -1694,4 +1698,84 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
|||
return proProjectInfoSubdeptsUsersMapper.fileGroupLeaderUsers(subDeptId,craftPost);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分组统计人员年龄,省份统计信息
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject groupWorkderNative(Long prjId) {
|
||||
List<ProProjectInfoSubdeptsUsers> list=proProjectInfoSubdeptsUsersMapper.groupWorkderNative(prjId);
|
||||
list.stream().forEach(d->{
|
||||
String nav=d.getComName();
|
||||
if(nav.contains("省")){
|
||||
nav=nav.substring(0,nav.indexOf("省"));
|
||||
}
|
||||
if(nav.contains("市")){
|
||||
nav=nav.substring(0,nav.indexOf("市"));
|
||||
}
|
||||
if(nav.contains("区")){
|
||||
nav=nav.substring(0,nav.indexOf("区"));
|
||||
}
|
||||
d.setComName(nav);
|
||||
String code=d.getCardCode();
|
||||
if(StringUtils.isNotEmpty(code) && code.length()>=10){
|
||||
String strY=code.substring(6-10);
|
||||
if(NumberUtil.isNumber(strY)){
|
||||
int y=DateUtils.calculatedAgeByBirthDay(strY+"-1-1");
|
||||
// 1.18-30 2.30-40 3.40-55 4.55
|
||||
if(y>=18 && y<30){
|
||||
d.setId(1L);
|
||||
}else if(y>=30 && y<40){
|
||||
d.setId(2L);
|
||||
}else if(y>=40 && y<55){
|
||||
d.setId(3L);
|
||||
}else{
|
||||
d.setId(4L);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
Map<String,List<ProProjectInfoSubdeptsUsers>> subMap= list.stream().collect(Collectors.groupingBy(ProProjectInfoSubdeptsUsers::getComName));
|
||||
JSONObject joOut=new JSONObject();
|
||||
JSONArray arrNav=new JSONArray();
|
||||
subMap.forEach((k,v)->{
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("nativePlace",k);
|
||||
jo.put("count",v.size());
|
||||
arrNav.add(jo);
|
||||
});
|
||||
joOut.put("native",arrNav);
|
||||
Map<Long,List<ProProjectInfoSubdeptsUsers>> subMap2= list.stream().collect(Collectors.groupingBy(ProProjectInfoSubdeptsUsers::getId));
|
||||
JSONArray arrAge=new JSONArray();
|
||||
subMap2.forEach((k,v)->{
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("age",k);
|
||||
jo.put("count",v.size());
|
||||
arrNav.add(jo);
|
||||
});
|
||||
joOut.put("age",arrAge);
|
||||
return joOut;
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ProProjectInfoSubdeptsUsers> getWorkerCountGroupByType(Long prjId) {
|
||||
return proProjectInfoSubdeptsUsersMapper.getWorkerCountGroupByType(prjId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ProProjectInfoSubdeptsUsers> getAttendanceAlert(Long prjId) {
|
||||
return proProjectInfoSubdeptsUsersMapper.getAttendanceAlert(prjId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import cn.hutool.core.date.CalendarUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.common.core.utils.StringUtils;
|
||||
import com.yanzhu.manage.domain.AttendanceCfg;
|
||||
|
@ -16,10 +20,7 @@ import com.yanzhu.manage.service.ISurProjectAttendanceDataService;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
/**
|
||||
* 劳务实名制管理Service业务层处理
|
||||
|
@ -289,4 +290,56 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListByDate(attWhere);
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员七天出勤趋势
|
||||
* @param prjId 项目ID
|
||||
* @param dateStart 开始日期(7天前)
|
||||
* @param dateEnd 结束日期(今天)
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONArray groupAttendanceLastWeek(Long prjId, Date dateStart, Date dateEnd,int year) {
|
||||
List<SurProjectAttendanceData> list=surProjectAttendanceDataMapper.groupAttendanceLastWeek(prjId,dateStart,dateEnd,year);
|
||||
JSONArray jArr = new JSONArray();
|
||||
for(int i=0;i<7;i++){
|
||||
String dt=DateUtil.format(DateUtil.offsetDay(dateStart,1*i),"yyyy-MM-dd");
|
||||
List<SurProjectAttendanceData> sub=list.stream().filter(item->item.getDeptName().equals(dt)).collect(Collectors.toList());
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("dt",dt);
|
||||
if(sub.size()>0){
|
||||
Long cnt=sub.get(0).getDeptId();
|
||||
if(cnt!=null){
|
||||
jo.put("cnt",cnt);
|
||||
}
|
||||
}
|
||||
if(!jo.containsKey("cnt")){
|
||||
jo.put("cnt",0);
|
||||
}
|
||||
jArr.add(jo);
|
||||
}
|
||||
return jArr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时考勤进出
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SurProjectAttendanceData> getRealAttendance(Long prjId, int year) {
|
||||
return surProjectAttendanceDataMapper.getRealAttendance(prjId,year);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Date dateEnd=new DateTime();
|
||||
Date dateStart=DateUtil.offsetDay(dateEnd,-7);
|
||||
System.out.println(dateEnd);
|
||||
System.out.println(dateStart);
|
||||
for(int i=0;i<7;i++){
|
||||
String dt=DateUtil.format(DateUtil.offsetDay(dateStart,1*i),"yyyy-MM-dd");
|
||||
System.out.println(dt);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.common.core.utils.StringUtils;
|
||||
import com.yanzhu.manage.domain.AttendanceCfg;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.manage.domain.SurProjectAttendanceUser;
|
||||
import com.yanzhu.manage.mapper.SurProjectAttendanceUserMapper;
|
||||
|
@ -14,6 +18,8 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 考勤人员基本属性Service业务层处理
|
||||
*
|
||||
|
@ -298,6 +304,82 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
|
|||
return surProjectAttendanceUserMapper.queryWorkerByState(where);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目人员年龄,地域分组信息
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject groupWorkderNative(Long prjId) {
|
||||
List<SurProjectAttendanceUser> list=surProjectAttendanceUserMapper.groupWorkderNative(prjId);
|
||||
list.stream().forEach(d->{
|
||||
String nav=d.getNativePlace();
|
||||
if(nav.contains("省")){
|
||||
nav=nav.substring(0,nav.indexOf("省"));
|
||||
}
|
||||
if(nav.contains("市")){
|
||||
nav=nav.substring(0,nav.indexOf("市"));
|
||||
}
|
||||
if(nav.contains("区")){
|
||||
nav=nav.substring(0,nav.indexOf("区"));
|
||||
}
|
||||
Long birthDay=d.getBirthDate();
|
||||
long y=birthDay!=null? new DateTime(birthDay).between(new Date()).betweenYear(true):0;
|
||||
// 1.18-30 2.30-40 3.40-55 4.55
|
||||
if(y>=18 && y<30){
|
||||
d.setId(1L);
|
||||
}else if(y>=30 && y<40){
|
||||
d.setId(2L);
|
||||
}else if(y>=40 && y<55){
|
||||
d.setId(3L);
|
||||
}else{
|
||||
d.setId(4L);
|
||||
}
|
||||
d.setNativePlace(nav);
|
||||
});
|
||||
Map<String,List<SurProjectAttendanceUser>> subMap= list.stream().collect(Collectors.groupingBy(SurProjectAttendanceUser::getNativePlace));
|
||||
JSONObject joOut=new JSONObject();
|
||||
JSONArray arrNav=new JSONArray();
|
||||
subMap.forEach((k,v)->{
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("nativePlace",k);
|
||||
jo.put("count",v.size());
|
||||
arrNav.add(jo);
|
||||
});
|
||||
joOut.put("native",arrNav);
|
||||
Map<Long,List<SurProjectAttendanceUser>> subMap2= list.stream().collect(Collectors.groupingBy(SurProjectAttendanceUser::getId));
|
||||
JSONArray arrAge=new JSONArray();
|
||||
subMap2.forEach((k,v)->{
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("age",k);
|
||||
jo.put("count",v.size());
|
||||
arrNav.add(jo);
|
||||
});
|
||||
joOut.put("age",arrAge);
|
||||
return joOut;
|
||||
}
|
||||
|
||||
/**
|
||||
* 劳务人员工种占比
|
||||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SurProjectAttendanceUser> getWorkerCountGroupByType(Long prjId) {
|
||||
return surProjectAttendanceUserMapper.getWorkerCountGroupByType(prjId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 考勤预警
|
||||
* @param prjId
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SurProjectAttendanceUser> getAttendanceAlert(Long prjId, int year) {
|
||||
return surProjectAttendanceUserMapper.getAttendanceAlert(prjId,year);
|
||||
}
|
||||
|
||||
private Date findDate(List<SurProjectAttendanceUser> datas, SurProjectAttendanceUser u, String type) {
|
||||
for (SurProjectAttendanceUser user:datas) {
|
||||
if(user.getWorkerId().equals(u.getWorkerId()) && user.getName().equals(type)){
|
||||
|
|
|
@ -457,7 +457,7 @@ function makeSelectData(users, type) {
|
|||
arr.push({
|
||||
label: k,
|
||||
options: objs[k].map((it) => {
|
||||
let pos = type ? `[${it.userPost == 2 ? '项目经理' : it.userPost == 3 ? '班组长' : ''}]` : ''
|
||||
let pos = type ? `[${it.userPost == 2 ? '项目经理' : it.userPost == 3 ? '班组长' : it.userPost == 8 ? '安全员' : ''}]` : ''
|
||||
return {
|
||||
value: it.userId,
|
||||
label: it.userName + pos,
|
||||
|
@ -492,7 +492,9 @@ function getUserTree() {
|
|||
let users = d.rows || []
|
||||
data.users = users
|
||||
data.modUserList = makeSelectData(
|
||||
users.filter((it) => it.subDeptType == 4 || it.subDeptType == 5).filter((it) => it.userPost == 2 || it.userPost == 3),
|
||||
users
|
||||
.filter((it) => it.subDeptType == 4 || it.subDeptType == 5)
|
||||
.filter((it) => it.userPost == 2 || it.userPost == 3 || it.userPost == 8),
|
||||
true
|
||||
)
|
||||
data.ccUserList = makeSelectData(users.filter((it) => it.userPost != 4 && it.userPost != 5))
|
||||
|
|
Loading…
Reference in New Issue