分包统计和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集合
|
||||
*/
|
||||
List<String> fileIdList;
|
||||
|
||||
/**
|
||||
* 项目数量
|
||||
*/
|
||||
private Integer proNum;
|
||||
|
||||
/**
|
||||
* 班组数量
|
||||
*/
|
||||
private Integer teamNum;
|
||||
|
||||
/**
|
||||
* 在场人数
|
||||
*/
|
||||
private Integer einNum;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.bonus.bmw.domain.vo;
|
||||
|
||||
import com.bonus.system.api.model.UploadFileVo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class HomePageSubProVo {
|
||||
|
||||
|
|
@ -65,4 +68,14 @@ public class HomePageSubProVo {
|
|||
private String teamExitTime;
|
||||
private Long attNumHis;
|
||||
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
|
||||
public List<PmAttDeviceVo> selectPmAttDeviceList(PmAttDevice pmAttDevice) {
|
||||
List<PmAttDeviceVo> pmAttDeviceVoList = pmAttDeviceMapper.selectPmAttDeviceList(pmAttDevice);
|
||||
if (pmAttDeviceVoList.size()>0){
|
||||
/*if (pmAttDeviceVoList.size()>0){
|
||||
//获取缓存中设备状态
|
||||
for (PmAttDeviceVo pmAttDeviceVo:pmAttDeviceVoList) {
|
||||
String onLine = redisService.getCacheObject("att_dev:status:"+pmAttDeviceVo.getDeviceCode());
|
||||
pmAttDeviceVo.setOnLine(onLine);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
return pmAttDeviceVoList;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import java.util.Date;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author 马三炮
|
||||
|
|
@ -48,7 +49,6 @@ public class PmProjectServiceImpl implements PmProjectService {
|
|||
@Resource
|
||||
private RepairCardApplyService repairCardApplyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private FileUploadUtils fileUploadUtils;
|
||||
|
||||
|
|
@ -224,7 +224,12 @@ public class PmProjectServiceImpl implements PmProjectService {
|
|||
*/
|
||||
@Override
|
||||
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();
|
||||
if("公司级".equals(sysUser.getRoleLevel())){
|
||||
// map.put("comId",sysUser.getCompanyId().toString());
|
||||
map.put("comId","");
|
||||
// map.put("comId","");
|
||||
}else if("分公司级".equals(sysUser.getRoleLevel())){
|
||||
map.put("subComId", sysUser.getBandId());
|
||||
}else if("项目部级".equals(sysUser.getRoleLevel())){
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@
|
|||
pad2.sub_id as subId,
|
||||
pad2.team_id as teamId,
|
||||
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
|
||||
left join pm_project pp on pp.id = pad2.pro_id
|
||||
left join pm_sub ps on ps.id = pad2.sub_id
|
||||
|
|
@ -55,7 +56,7 @@
|
|||
and pp.is_shanghai LIKE CONCAT('%', #{isShanghai}, '%')
|
||||
</if>
|
||||
<if test="onLine!=null and onLine!=''">
|
||||
and pp.on_line = #{onLine}
|
||||
and pad2.on_line = #{onLine}
|
||||
</if>
|
||||
<if test="proId!=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