分包统计和bug修复
This commit is contained in:
parent
80d224160f
commit
cfe3528d82
|
|
@ -0,0 +1,166 @@
|
||||||
|
package com.bonus.bmw.controller;
|
||||||
|
|
||||||
|
import com.bonus.bmw.domain.po.HomePagePo;
|
||||||
|
import com.bonus.bmw.domain.po.PmAttDevice;
|
||||||
|
import com.bonus.bmw.domain.po.PmSub;
|
||||||
|
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||||
|
import com.bonus.bmw.service.SubStatisticsService;
|
||||||
|
import com.bonus.common.core.web.controller.BaseController;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
import com.bonus.common.log.annotation.SysLog;
|
||||||
|
import com.bonus.common.log.enums.OperaType;
|
||||||
|
import com.bonus.common.security.annotation.InnerAuth;
|
||||||
|
import com.bonus.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计
|
||||||
|
* @author 马三炮
|
||||||
|
* @date 2025/10/9
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/subStatistics")
|
||||||
|
public class SubStatisticsController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SubStatisticsService subStatisticsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计列表
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubStatisticsTable")
|
||||||
|
@SysLog(title = "分包统计列表", businessType = OperaType.QUERY, logType = 0, module = "分包统计->分包统计列表", details = "分包统计列表")
|
||||||
|
public TableDataInfo getSubStatisticsTable(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<PmSub> list = subStatisticsService.getSubStatisticsTable(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-数据概览
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubDataOverview")
|
||||||
|
@SysLog(title = "数据概览", businessType = OperaType.QUERY, logType = 0, module = "分包统计->数据概览", details = "数据概览")
|
||||||
|
public AjaxResult getDataOverview(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
return subStatisticsService.getProDataOverview(homePagePo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return error("系统异常,请联系管理员");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包工程信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubProMsg")
|
||||||
|
@SysLog(title = "分包工程信息", businessType = OperaType.QUERY, logType = 0, module = "分包统计->分包工程信息", details = "分包工程信息")
|
||||||
|
public TableDataInfo getSubProMsg(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<HomePageSubProVo> list = subStatisticsService.getSubProMsg(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubTeamMsg")
|
||||||
|
@SysLog(title = "班组信息", businessType = OperaType.QUERY, logType = 0, module = "分包统计->班组信息", details = "班组信息")
|
||||||
|
public TableDataInfo getSubTeamMsg(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<HomePageSubProVo> list = subStatisticsService.getSubTeamMsg(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤机信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubDeviceMsg")
|
||||||
|
@SysLog(title = "考勤机信息", businessType = OperaType.QUERY, logType = 0, module = "分包统计->考勤机信息", details = "考勤机信息")
|
||||||
|
public TableDataInfo getSubDeviceMsg(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<PmAttDevice> list = subStatisticsService.getSubDeviceMsg(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出入场信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubInOutMsg")
|
||||||
|
@SysLog(title = "出入场信息", businessType = OperaType.QUERY, logType = 0, module = "分包统计->出入场信息", details = "出入场信息")
|
||||||
|
public TableDataInfo getSubInOutMsg(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<HomePageSubProVo> list = subStatisticsService.getSubInOutMsg(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("sub:statistics:query"))
|
||||||
|
@GetMapping("/getSubAttMsg")
|
||||||
|
@SysLog(title = "考勤信息", businessType = OperaType.QUERY, logType = 0, module = "分包统计->考勤信息", details = "考勤信息")
|
||||||
|
public TableDataInfo getSubAttMsg(HomePagePo homePagePo) {
|
||||||
|
try {
|
||||||
|
startPage();
|
||||||
|
List<HomePageSubProVo> list = subStatisticsService.getSubAttMsg(homePagePo);
|
||||||
|
return getDataTable(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return getDataTableError(new ArrayList<>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -115,4 +115,19 @@ public class PmSub {
|
||||||
* 删除文件id集合
|
* 删除文件id集合
|
||||||
*/
|
*/
|
||||||
List<String> fileIdList;
|
List<String> fileIdList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目数量
|
||||||
|
*/
|
||||||
|
private Integer proNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组数量
|
||||||
|
*/
|
||||||
|
private Integer teamNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在场人数
|
||||||
|
*/
|
||||||
|
private Integer einNum;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package com.bonus.bmw.domain.vo;
|
package com.bonus.bmw.domain.vo;
|
||||||
|
|
||||||
|
import com.bonus.system.api.model.UploadFileVo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class HomePageSubProVo {
|
public class HomePageSubProVo {
|
||||||
|
|
||||||
|
|
@ -65,4 +68,14 @@ public class HomePageSubProVo {
|
||||||
private String teamExitTime;
|
private String teamExitTime;
|
||||||
private Long attNumHis;
|
private Long attNumHis;
|
||||||
private Long repairNumHis;
|
private Long repairNumHis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包合同编号
|
||||||
|
*/
|
||||||
|
private Integer subContractId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件列表
|
||||||
|
*/
|
||||||
|
List<UploadFileVo> contractFile;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
package com.bonus.bmw.mapper;
|
||||||
|
|
||||||
|
import com.bonus.bmw.domain.po.HomePagePo;
|
||||||
|
import com.bonus.bmw.domain.po.PmAttDevice;
|
||||||
|
import com.bonus.bmw.domain.po.PmSub;
|
||||||
|
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||||
|
import com.bonus.bmw.domain.vo.ProStatisticsPo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SubStatisticsMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计列表
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PmSub> getSubStatisticsTable(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-累计入场
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ProStatisticsPo getEinNumByHis(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-在场灯状态
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ProStatisticsPo getEinWorkerLight(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-考勤
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ProStatisticsPo getWorkerAttAndRepair(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-申请补卡次数
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getProRepairNum(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-工资
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ProStatisticsPo getWorkerWage(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-发放工资人数
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getWorkerSalaryNum(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包工程信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubProMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubTeamMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤机信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PmAttDevice> getSubDeviceMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出入场信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubInOutMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubAttMsg(HomePagePo homePagePo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
package com.bonus.bmw.service;
|
||||||
|
|
||||||
|
import com.bonus.bmw.domain.po.HomePagePo;
|
||||||
|
import com.bonus.bmw.domain.po.PmAttDevice;
|
||||||
|
import com.bonus.bmw.domain.po.PmSub;
|
||||||
|
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SubStatisticsService {
|
||||||
|
/**
|
||||||
|
* 分包统计列表
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PmSub> getSubStatisticsTable(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-数据概览
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult getProDataOverview(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包工程信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubProMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubTeamMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤机信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PmAttDevice> getSubDeviceMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出入场信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubInOutMsg(HomePagePo homePagePo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomePageSubProVo> getSubAttMsg(HomePagePo homePagePo);
|
||||||
|
}
|
||||||
|
|
@ -38,13 +38,13 @@ public class PmAttDeviceServiceImpl implements PmAttDeviceService {
|
||||||
@Override
|
@Override
|
||||||
public List<PmAttDeviceVo> selectPmAttDeviceList(PmAttDevice pmAttDevice) {
|
public List<PmAttDeviceVo> selectPmAttDeviceList(PmAttDevice pmAttDevice) {
|
||||||
List<PmAttDeviceVo> pmAttDeviceVoList = pmAttDeviceMapper.selectPmAttDeviceList(pmAttDevice);
|
List<PmAttDeviceVo> pmAttDeviceVoList = pmAttDeviceMapper.selectPmAttDeviceList(pmAttDevice);
|
||||||
if (pmAttDeviceVoList.size()>0){
|
/*if (pmAttDeviceVoList.size()>0){
|
||||||
//获取缓存中设备状态
|
//获取缓存中设备状态
|
||||||
for (PmAttDeviceVo pmAttDeviceVo:pmAttDeviceVoList) {
|
for (PmAttDeviceVo pmAttDeviceVo:pmAttDeviceVoList) {
|
||||||
String onLine = redisService.getCacheObject("att_dev:status:"+pmAttDeviceVo.getDeviceCode());
|
String onLine = redisService.getCacheObject("att_dev:status:"+pmAttDeviceVo.getDeviceCode());
|
||||||
pmAttDeviceVo.setOnLine(onLine);
|
pmAttDeviceVo.setOnLine(onLine);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
return pmAttDeviceVoList;
|
return pmAttDeviceVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 马三炮
|
* @author 马三炮
|
||||||
|
|
@ -48,7 +49,6 @@ public class PmProjectServiceImpl implements PmProjectService {
|
||||||
@Resource
|
@Resource
|
||||||
private RepairCardApplyService repairCardApplyService;
|
private RepairCardApplyService repairCardApplyService;
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FileUploadUtils fileUploadUtils;
|
private FileUploadUtils fileUploadUtils;
|
||||||
|
|
||||||
|
|
@ -224,7 +224,12 @@ public class PmProjectServiceImpl implements PmProjectService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<UserWagePayVo> getUserWagePayList(UserWagePayVo userWagePayVo) {
|
public List<UserWagePayVo> getUserWagePayList(UserWagePayVo userWagePayVo) {
|
||||||
return pmProjectMapper.getUserWagePayList(userWagePayVo);
|
List<UserWagePayVo> list = pmProjectMapper.getUserWagePayList(userWagePayVo);
|
||||||
|
// 过滤掉attendanceNum为0的元素
|
||||||
|
List<UserWagePayVo> filteredList = list.stream()
|
||||||
|
.filter(vo -> vo.getAttendanceNum() != 0)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
return filteredList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,193 @@
|
||||||
|
package com.bonus.bmw.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.bmw.domain.po.HomePagePo;
|
||||||
|
import com.bonus.bmw.domain.po.PmAttDevice;
|
||||||
|
import com.bonus.bmw.domain.po.PmSub;
|
||||||
|
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||||
|
import com.bonus.bmw.domain.vo.ProStatisticsPo;
|
||||||
|
import com.bonus.bmw.mapper.SubStatisticsMapper;
|
||||||
|
import com.bonus.bmw.service.SubStatisticsService;
|
||||||
|
import com.bonus.common.core.constant.Constants;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.system.api.model.UploadFileVo;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 马三炮
|
||||||
|
* @date 2025/10/9
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class SubStatisticsServiceImpl implements SubStatisticsService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SubStatisticsMapper subStatisticsMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FileUploadUtils fileUploadUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计列表
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PmSub> getSubStatisticsTable(HomePagePo homePagePo) {
|
||||||
|
List<PmSub> pmSubList = subStatisticsMapper.getSubStatisticsTable(homePagePo);
|
||||||
|
if (pmSubList.size()>0){
|
||||||
|
for (PmSub pmSubRes:pmSubList) {
|
||||||
|
List<UploadFileVo> contractFile = fileUploadUtils.getFileList("", pmSubRes.getId().toString(), Constants.PM_SUB, "");
|
||||||
|
pmSubRes.setContractFile(contractFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pmSubList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包统计-数据概览
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult getProDataOverview(HomePagePo homePagePo) {
|
||||||
|
Map<String,Object> map = new HashMap<>();
|
||||||
|
List<PmSub> list = subStatisticsMapper.getSubStatisticsTable(homePagePo);
|
||||||
|
if(list != null && !list.isEmpty()){
|
||||||
|
map.put("proNum",list.get(0).getProNum());
|
||||||
|
map.put("teamNum",list.get(0).getTeamNum());
|
||||||
|
map.put("einNum",list.get(0).getEinNum());
|
||||||
|
}else{
|
||||||
|
map.put("proNum",0);
|
||||||
|
map.put("teamNum",0);
|
||||||
|
map.put("einNum",0);
|
||||||
|
}
|
||||||
|
//累计入场
|
||||||
|
ProStatisticsPo einNum = subStatisticsMapper.getEinNumByHis(homePagePo);
|
||||||
|
if(einNum != null){
|
||||||
|
map.put("einNumHis",einNum.getEinNumHis());
|
||||||
|
map.put("exitNum",einNum.getEinNumHis() - Long.parseLong((String) map.get("einNum")) );
|
||||||
|
map.put("einTime",einNum.getEinTime());
|
||||||
|
map.put("exitTime",einNum.getExitTime());
|
||||||
|
map.put("exitUploadFile",einNum.getExitUploadFile());
|
||||||
|
map.put("noExitUploadFile",einNum.getNoExitUploadFile());
|
||||||
|
}else{
|
||||||
|
map.put("einNumHis",0);
|
||||||
|
map.put("exitNum",0);
|
||||||
|
map.put("einTime","");
|
||||||
|
map.put("exitTime","");
|
||||||
|
map.put("exitUploadFile",0);
|
||||||
|
map.put("noExitUploadFile",0);
|
||||||
|
}
|
||||||
|
//在场灯状态
|
||||||
|
ProStatisticsPo lightStatus = subStatisticsMapper.getEinWorkerLight(homePagePo);
|
||||||
|
if(lightStatus != null){
|
||||||
|
map.put("yellowNum",lightStatus.getYellowNum());
|
||||||
|
map.put("greenNum",lightStatus.getGreenNum());
|
||||||
|
map.put("yellowThanSevenDayNum",lightStatus.getYellowThanSevenDayNum());
|
||||||
|
}else{
|
||||||
|
map.put("yellowNum",0);
|
||||||
|
map.put("greenNum",0);
|
||||||
|
map.put("yellowThanSevenDayNum",0);
|
||||||
|
}
|
||||||
|
//考勤
|
||||||
|
ProStatisticsPo attAndRepair = subStatisticsMapper.getWorkerAttAndRepair(homePagePo);
|
||||||
|
if(attAndRepair != null){
|
||||||
|
map.put("attNumHis",attAndRepair.getAttNumHis());
|
||||||
|
map.put("repairPersonNum",attAndRepair.getRepairPersonNum());
|
||||||
|
map.put("repairNumHis",attAndRepair.getRepairNumHis());
|
||||||
|
}else{
|
||||||
|
map.put("attNumHis",0);
|
||||||
|
map.put("repairPersonNum",0);
|
||||||
|
map.put("repairNumHis",0);
|
||||||
|
}
|
||||||
|
//申请补卡次数
|
||||||
|
int proRepairNum = subStatisticsMapper.getProRepairNum(homePagePo);
|
||||||
|
map.put("proRepairNum",proRepairNum);
|
||||||
|
//工资
|
||||||
|
ProStatisticsPo workerWage = subStatisticsMapper.getWorkerWage(homePagePo);
|
||||||
|
if(workerWage != null){
|
||||||
|
map.put("salaryMoneyNum",workerWage.getSalaryMoneyNum());
|
||||||
|
map.put("payrollNum",workerWage.getPayrollNum());
|
||||||
|
map.put("payrollWorkerTime",workerWage.getPayrollWorkerTime());
|
||||||
|
}else{
|
||||||
|
map.put("salaryMoneyNum",0);
|
||||||
|
map.put("payrollNum",0);
|
||||||
|
map.put("payrollWorkerTime",0);
|
||||||
|
}
|
||||||
|
//发放工资人数
|
||||||
|
int workerSalaryNum = subStatisticsMapper.getWorkerSalaryNum(homePagePo);
|
||||||
|
map.put("workerSalaryNum",workerSalaryNum);
|
||||||
|
|
||||||
|
return AjaxResult.success(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包工程信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<HomePageSubProVo> getSubProMsg(HomePagePo homePagePo) {
|
||||||
|
List<HomePageSubProVo> pmSubList = subStatisticsMapper.getSubProMsg(homePagePo);
|
||||||
|
if (pmSubList.size()>0){
|
||||||
|
for (HomePageSubProVo pmSubRes:pmSubList) {
|
||||||
|
List<UploadFileVo> contractFile = fileUploadUtils.getFileList("", pmSubRes.getSubContractId().toString(), Constants.BM_SUB_CONTRACT, "");
|
||||||
|
pmSubRes.setContractFile(contractFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pmSubList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<HomePageSubProVo> getSubTeamMsg(HomePagePo homePagePo) {
|
||||||
|
List<HomePageSubProVo> PmSubTeamContractList = subStatisticsMapper.getSubTeamMsg(homePagePo);
|
||||||
|
if (PmSubTeamContractList.size()>0){
|
||||||
|
for (HomePageSubProVo homePageSubProVo:PmSubTeamContractList) {
|
||||||
|
List<UploadFileVo> contractFile = fileUploadUtils.getFileList("", homePageSubProVo.getTeamId(), Constants.PM_SUB_TEAM_CONTRACT, "");
|
||||||
|
homePageSubProVo.setContractFile(contractFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PmSubTeamContractList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤机信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PmAttDevice> getSubDeviceMsg(HomePagePo homePagePo) {
|
||||||
|
return subStatisticsMapper.getSubDeviceMsg(homePagePo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出入场信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<HomePageSubProVo> getSubInOutMsg(HomePagePo homePagePo) {
|
||||||
|
return subStatisticsMapper.getSubInOutMsg(homePagePo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考勤信息
|
||||||
|
* @param homePagePo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<HomePageSubProVo> getSubAttMsg(HomePagePo homePagePo) {
|
||||||
|
return subStatisticsMapper.getSubAttMsg(homePagePo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,7 +13,7 @@ public class OwnPermissionUtil {
|
||||||
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
if("公司级".equals(sysUser.getRoleLevel())){
|
if("公司级".equals(sysUser.getRoleLevel())){
|
||||||
// map.put("comId",sysUser.getCompanyId().toString());
|
// map.put("comId",sysUser.getCompanyId().toString());
|
||||||
map.put("comId","");
|
// map.put("comId","");
|
||||||
}else if("分公司级".equals(sysUser.getRoleLevel())){
|
}else if("分公司级".equals(sysUser.getRoleLevel())){
|
||||||
map.put("subComId", sysUser.getBandId());
|
map.put("subComId", sysUser.getBandId());
|
||||||
}else if("项目部级".equals(sysUser.getRoleLevel())){
|
}else if("项目部级".equals(sysUser.getRoleLevel())){
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,8 @@
|
||||||
pad2.sub_id as subId,
|
pad2.sub_id as subId,
|
||||||
pad2.team_id as teamId,
|
pad2.team_id as teamId,
|
||||||
ps.sub_name as subName,
|
ps.sub_name as subName,
|
||||||
pst.team_name as teamName
|
pst.team_name as teamName,
|
||||||
|
pad2.on_line as onLine
|
||||||
from pm_att_device pad2
|
from pm_att_device pad2
|
||||||
left join pm_project pp on pp.id = pad2.pro_id
|
left join pm_project pp on pp.id = pad2.pro_id
|
||||||
left join pm_sub ps on ps.id = pad2.sub_id
|
left join pm_sub ps on ps.id = pad2.sub_id
|
||||||
|
|
@ -55,7 +56,7 @@
|
||||||
and pp.is_shanghai LIKE CONCAT('%', #{isShanghai}, '%')
|
and pp.is_shanghai LIKE CONCAT('%', #{isShanghai}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="onLine!=null and onLine!=''">
|
<if test="onLine!=null and onLine!=''">
|
||||||
and pp.on_line = #{onLine}
|
and pad2.on_line = #{onLine}
|
||||||
</if>
|
</if>
|
||||||
<if test="proId!=null ">
|
<if test="proId!=null ">
|
||||||
and (pad2.pro_id = #{proId} or pad2.pro_id is null)
|
and (pad2.pro_id = #{proId} or pad2.pro_id is null)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,260 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bonus.bmw.mapper.SubStatisticsMapper">
|
||||||
|
|
||||||
|
<select id="getSubStatisticsTable" resultType="com.bonus.bmw.domain.po.PmSub">
|
||||||
|
select
|
||||||
|
ps.id as subId,
|
||||||
|
ps.sub_name as subName,
|
||||||
|
ps.legal_person as
|
||||||
|
count(DISTINCT bsc.pro_id) as proNum,
|
||||||
|
count(DISTINCT pstc.id) as teamNum,
|
||||||
|
count(DISTINCT bwem.worker_id) as einNum
|
||||||
|
from pm_sub ps
|
||||||
|
left join bm_sub_contract bsc on ps.id = bsc.sub_id and bsc.is_active='1' and bsc.sub_ein_status = '1'
|
||||||
|
left join pm_sub_team_contract pstc on ps.id = pstc.sub_id and pstc.is_active = '1' and pstc.team_ein_status = '1'
|
||||||
|
left join bm_worker_ein_msg bwem on ps.id =bwem.sub_id and bwem.is_active = '1' and bwem.ein_status ='1'
|
||||||
|
where ps.is_active = '1'
|
||||||
|
<if test="subName !=null and subName!= ''" >
|
||||||
|
and ps.sub_name like concat('%', #{subName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
ps.id
|
||||||
|
</select>
|
||||||
|
<select id="getEinNumByHis" resultType="com.bonus.bmw.domain.vo.ProStatisticsPo">
|
||||||
|
SELECT
|
||||||
|
count(DISTINCT pp.worker_id) AS einNumHis,
|
||||||
|
min(pp.ein_time) as einTime,
|
||||||
|
max(pp.exit_time) as exitTime,
|
||||||
|
sum(if(ein_status=2 and is_upload_file = 1,1,0)) as exitUploadFile,
|
||||||
|
sum(if(ein_status=2 and is_upload_file = 0,1,0)) as noExitUploadFile
|
||||||
|
FROM
|
||||||
|
bm_worker_ein_pro_record pp
|
||||||
|
where
|
||||||
|
pp.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getEinWorkerLight" resultType="com.bonus.bmw.domain.vo.ProStatisticsPo">
|
||||||
|
SELECT
|
||||||
|
sum(if(light_status=1,1,0)) as yellowNum,
|
||||||
|
sum(if(light_status=2,1,0)) as greenNum,
|
||||||
|
COUNT(DISTINCT IF(light_status = 1 AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) > IF(yellow_date is null, CURRENT_DATE, yellow_date), worker_id, null)) as yellowThanSevenDayNum
|
||||||
|
|
||||||
|
FROM
|
||||||
|
bm_worker_ein_msg pp
|
||||||
|
where
|
||||||
|
pp.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getWorkerAttAndRepair" resultType="com.bonus.bmw.domain.vo.ProStatisticsPo">
|
||||||
|
SELECT
|
||||||
|
count(pp.worker_id) AS attNumHis,
|
||||||
|
count(DISTINCT if(pp.is_repair = 1,pp.worker_id,null)) AS repairPersonNum,
|
||||||
|
sum(if(pp.is_repair = 1,1,0)) AS repairNumHis
|
||||||
|
FROM
|
||||||
|
bm_att_person pp
|
||||||
|
WHERE
|
||||||
|
pp.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getProRepairNum" resultType="java.lang.Integer">
|
||||||
|
SELECT
|
||||||
|
count(bap.worker_id) AS proRepairNum
|
||||||
|
FROM
|
||||||
|
bm_att_person bap
|
||||||
|
WHERE
|
||||||
|
bap.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getWorkerWage" resultType="com.bonus.bmw.domain.vo.ProStatisticsPo">
|
||||||
|
SELECT
|
||||||
|
sum(tpmtr.actual_money) AS salaryMoneyNum,
|
||||||
|
count(DISTINCT tpmtr.month_id) as payrollNum,
|
||||||
|
sum(tpmtr.id) AS payrollWorkerTime
|
||||||
|
FROM
|
||||||
|
tb_pro_month_table_roster tpmtr
|
||||||
|
WHERE
|
||||||
|
tpmtr.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getWorkerSalaryNum" resultType="java.lang.Integer">
|
||||||
|
SELECT
|
||||||
|
count(distinct pp.user_id) AS workerSalaryNum
|
||||||
|
FROM
|
||||||
|
tb_pro_month_table_roster pp
|
||||||
|
WHERE
|
||||||
|
pp.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getSubProMsg" resultType="com.bonus.bmw.domain.vo.HomePageSubProVo">
|
||||||
|
SELECT
|
||||||
|
pp.id AS proId,
|
||||||
|
pp.pro_name,
|
||||||
|
bsc.sub_contract_code,
|
||||||
|
bsc.sub_contract_name,
|
||||||
|
bsc.sub_ein_status,
|
||||||
|
count(bwem.worker_id) as einNum,
|
||||||
|
count(DISTINCT bwer.worker_id) as einNumHis,
|
||||||
|
bsc.sub_ein_time,
|
||||||
|
bsc.sub_exit_time,
|
||||||
|
bsc.id as subContractId
|
||||||
|
FROM
|
||||||
|
pm_sub ps
|
||||||
|
INNER JOIN bm_sub_contract bsc ON ps.id = bsc.sub_id
|
||||||
|
And bsc.is_active = 1
|
||||||
|
INNER JOIN pm_project pp ON pp.id = bsc.pro_id and pp.is_active = 1
|
||||||
|
LEFT JOIN bm_worker_ein_msg bwem ON ps.id = bwem.sub_id
|
||||||
|
AND pp.id = bwem.pro_id
|
||||||
|
AND bwem.is_active = 1
|
||||||
|
LEFT JOIN bm_worker_ein_day_record bwer ON pp.id = bwer.pro_id
|
||||||
|
AND ps.id = bwer.sub_id
|
||||||
|
WHERE
|
||||||
|
ps.is_active = 1 AND ps.id = #{subId}
|
||||||
|
GROUP BY pp.id
|
||||||
|
</select>
|
||||||
|
<select id="getSubTeamMsg" resultType="com.bonus.bmw.domain.vo.HomePageSubProVo">
|
||||||
|
SELECT
|
||||||
|
pst.team_name,
|
||||||
|
pst.team_leader,
|
||||||
|
pst.phone,
|
||||||
|
pstc.team_ein_status,
|
||||||
|
pstc.team_ein_time,
|
||||||
|
pstc.team_exit_time,
|
||||||
|
pstc.id as teamId,
|
||||||
|
ps.sub_name,
|
||||||
|
count(DISTINCT bwem.worker_id) as einNum,
|
||||||
|
count(DISTINCT bwer.worker_id) as einNumHis
|
||||||
|
FROM
|
||||||
|
pm_sub ps
|
||||||
|
INNER JOIN bm_sub_contract bsc ON ps.id = bsc.sub_id
|
||||||
|
AND bsc.is_active = 1
|
||||||
|
INNER JOIN pm_project pp ON pp.id = bsc.pro_id
|
||||||
|
AND pp.is_active = 1
|
||||||
|
INNER JOIN pm_sub_team_contract pstc ON ps.id = pstc.sub_id
|
||||||
|
AND pstc.is_active = 1
|
||||||
|
INNER JOIN pm_sub_team pst ON pst.id = pstc.team_id
|
||||||
|
AND pst.is_active = 1
|
||||||
|
LEFT JOIN bm_worker_ein_msg bwem ON pp.id = bwem.pro_id
|
||||||
|
AND ps.id = bwem.sub_id and bwem.team_id = pst.id
|
||||||
|
AND bwem.is_active = 1
|
||||||
|
LEFT JOIN bm_worker_ein_day_record bwer ON pp.id = bwer.pro_id
|
||||||
|
AND ps.id = bwer.sub_id and bwer.team_id = pst.id
|
||||||
|
WHERE
|
||||||
|
ps.is_active = 1 AND ps.id = #{subId}
|
||||||
|
GROUP BY pp.id,pst.id
|
||||||
|
</select>
|
||||||
|
<select id="getSubDeviceMsg" resultType="com.bonus.bmw.domain.po.PmAttDevice">
|
||||||
|
SELECT
|
||||||
|
pad2.device_code,
|
||||||
|
pad2.device_name,
|
||||||
|
pad2.`on_line`,
|
||||||
|
pad2.update_user,
|
||||||
|
pad2.update_time,
|
||||||
|
pp.pro_name as proName
|
||||||
|
FROM
|
||||||
|
pm_att_device pad2
|
||||||
|
left join pm_project pp on pad2.pro_id = pp.id and pp.is_active='1'
|
||||||
|
WHERE
|
||||||
|
pad2.is_active = 1 AND pad2.sub_id = #{subId}
|
||||||
|
</select>
|
||||||
|
<select id="getSubInOutMsg" resultType="com.bonus.bmw.domain.vo.HomePageSubProVo">
|
||||||
|
Select * from (
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
bwepr.id,
|
||||||
|
bwepr.worker_id,
|
||||||
|
pw.`name`,
|
||||||
|
pw.`id_number`,
|
||||||
|
pw.phone,
|
||||||
|
bwepr.post_id,
|
||||||
|
bwepr.post_name,
|
||||||
|
'/' AS light_status,
|
||||||
|
bwepr.ein_status,
|
||||||
|
bwepr.ein_time,
|
||||||
|
bwepr.exit_time,
|
||||||
|
bwepr.is_upload_file,
|
||||||
|
if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) as days_since_exit,
|
||||||
|
bwepr.sub_id,
|
||||||
|
bwepr.sub_name,
|
||||||
|
bwepr.team_id,
|
||||||
|
bwepr.team_name
|
||||||
|
FROM
|
||||||
|
pm_worker pw
|
||||||
|
INNER JOIN bm_worker_ein_pro_record bwepr ON pw.id = bwepr.worker_id
|
||||||
|
WHERE
|
||||||
|
bwepr.sub_id = #{subId}
|
||||||
|
AND bwepr.ein_status = 2
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
0 as id,
|
||||||
|
bwem.worker_id,
|
||||||
|
pw.`name`,
|
||||||
|
pw.`id_number`,
|
||||||
|
pw.phone,
|
||||||
|
bwem.post_id,
|
||||||
|
bwem.post_name,
|
||||||
|
bwem.light_status,
|
||||||
|
bwem.ein_status,
|
||||||
|
bwem.ein_time,
|
||||||
|
'/' AS exit_time,
|
||||||
|
'/' AS is_upload_file,
|
||||||
|
'/' AS days_since_exit,
|
||||||
|
bwem.sub_id,
|
||||||
|
bwem.sub_name,
|
||||||
|
bwem.team_id,
|
||||||
|
bwem.team_name
|
||||||
|
FROM
|
||||||
|
pm_worker pw
|
||||||
|
INNER JOIN bm_worker_ein_msg bwem ON pw.id = bwem.worker_id
|
||||||
|
WHERE
|
||||||
|
bwem.sub_id = #{subId}
|
||||||
|
|
||||||
|
) aaa
|
||||||
|
<where>
|
||||||
|
<if test="name != null">
|
||||||
|
and aaa.name = #{name}
|
||||||
|
</if>
|
||||||
|
<if test="postId != null">
|
||||||
|
and aaa.post_id = #{postId}
|
||||||
|
</if>
|
||||||
|
<if test="subId != null">
|
||||||
|
and aaa.sub_id = #{subId}
|
||||||
|
</if>
|
||||||
|
<if test="teamId != null">
|
||||||
|
and aaa.team_id = #{teamId}
|
||||||
|
</if>
|
||||||
|
<if test="lightStatus != null">
|
||||||
|
and aaa.light_status = #{lightStatus}
|
||||||
|
</if>
|
||||||
|
<if test="einStatus != null">
|
||||||
|
and aaa.ein_status = #{einStatus}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
<select id="getSubAttMsg" resultType="com.bonus.bmw.domain.vo.HomePageSubProVo">
|
||||||
|
SELECT
|
||||||
|
pw.`name` as workerName,
|
||||||
|
pw.id_number,
|
||||||
|
bap.sub_id,
|
||||||
|
bap.sub_name,
|
||||||
|
bap.team_id,
|
||||||
|
bap.team_name,
|
||||||
|
count(bap.worker_id) AS attNumHis,
|
||||||
|
sum(IF(bap.is_repair = 1, 1, 0)) AS repairNumHis
|
||||||
|
FROM
|
||||||
|
bm_att_person bap
|
||||||
|
INNER JOIN pm_worker pw ON pw.id = bap.worker_id
|
||||||
|
WHERE
|
||||||
|
bap.sub_id = #{subId}
|
||||||
|
<if test="name != null">
|
||||||
|
and pw.name = #{name}
|
||||||
|
</if>
|
||||||
|
<if test="teamId != null">
|
||||||
|
and bap.team_id = #{teamId}
|
||||||
|
</if>
|
||||||
|
<if test="subId != null">
|
||||||
|
and bap.sub_id = #{subId}
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
pro_id,
|
||||||
|
team_id,
|
||||||
|
pw.id
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue