From b000f4a8417b8ea753495864b67d0da76791fb28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Fri, 26 Sep 2025 10:00:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProStatisticsController.java | 74 +++++++++++ .../bonus/bmw/domain/vo/HomePageSubProVo.java | 1 + .../bonus/bmw/domain/vo/ProStatisticsPo.java | 101 ++++++++++++++ .../bonus/bmw/mapper/ProStatisticsMapper.java | 27 ++++ .../bmw/service/ProStatisticsService.java | 24 ++++ .../impl/ProStatisticsServiceImpl.java | 100 ++++++++++++++ .../mapper/bmw/ProStatisticsMapper.xml | 123 ++++++++++++++++++ 7 files changed, 450 insertions(+) create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/ProStatisticsController.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProStatisticsPo.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/ProStatisticsMapper.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/ProStatisticsService.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/ProStatisticsServiceImpl.java create mode 100644 bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/ProStatisticsMapper.xml diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/ProStatisticsController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/ProStatisticsController.java new file mode 100644 index 0000000..72a899f --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/ProStatisticsController.java @@ -0,0 +1,74 @@ +package com.bonus.bmw.controller; + +import com.bonus.bmw.domain.po.HomePagePo; +import com.bonus.bmw.domain.vo.HomePageSubProVo; +import com.bonus.bmw.service.ProStatisticsService; +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.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** +* 工程统计 +* @author fly +*/ +@RestController +@RequestMapping("/proStatistics") +public class ProStatisticsController extends BaseController { +/** +* 服务对象 +*/ + @Autowired + private ProStatisticsService service; + + /** + * 工程统计 + * @param o + * @return + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false), requiresPermissions = @RequiresPermissions("pro:statistics:query")) + @GetMapping("/getProStatisticsTable") + @SysLog(title = "工程统计", businessType = OperaType.QUERY, logType = 0, module = "工程统计->工程统计", details = "工程统计") + public TableDataInfo getProStatisticsTable(HomePagePo o) { + try { + startPage(); + List list = service.getProStatisticsTable(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + /** + * 工程-数据概览 + * @param o + * @return + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false), requiresPermissions = @RequiresPermissions("pro:statistics:query")) + @GetMapping("/getProDataOverview") + @SysLog(title = "数据概览", businessType = OperaType.QUERY, logType = 0, module = "工程统计->数据概览", details = "数据概览") + public AjaxResult getDataOverview(HomePagePo o) { + try { + return service.getProDataOverview(o); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + + + +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/HomePageSubProVo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/HomePageSubProVo.java index 7aa430b..0feffb7 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/HomePageSubProVo.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/HomePageSubProVo.java @@ -52,4 +52,5 @@ public class HomePageSubProVo { private String attTime; + private String proAddress; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProStatisticsPo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProStatisticsPo.java new file mode 100644 index 0000000..c81990f --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProStatisticsPo.java @@ -0,0 +1,101 @@ +package com.bonus.bmw.domain.vo; + +import lombok.Data; + +@Data +public class ProStatisticsPo { + + /** + * 项目总数 + */ + private Integer proNum; + + private String proId; + private String proName; + private String subCompanyName; + private String proType; + private String volLevel; + private String proStatus; + + /** + * 入场 + */ + private String einNum; + /** + * 考勤 + */ + private String attNum; + /** + * 黄灯状态 + */ + private String yellowNum; + /** + * 绿灯状态 + */ + private String greenNum; + /** + * 黄灯超七天状态 + */ + private String yellowThanSevenDayNum; + /** + * 分包数 + */ + private String subNum; + /** + * 班组数 + */ + private String teamNum; + /** + * 是否考勤 + */ + private String isAtt; + /** + * 入场时间 + */ + private String einTime; + /** + * 出场时间 + */ + private String exitTime; + + /** + * 考勤时间 + */ + private String attTime; + /** + * 出场有文件人数 + */ + private String exitUploadFile; + /** + * 出场无文件人数 + */ + private String noExitUploadFile; + /** + * 累计入场 + */ + private Long einNumHis; + /** + * 累计考勤 + */ + private Long attNumHis; + /** + * 申请补卡次数 + */ + private Long repairPersonNum; + /** + * 累计补卡次数 + */ + private Long repairNumHis; + /** + * 累计工资总数 + */ + private Double salaryMoneyNum; + /** + * 工资册数量 + */ + private Double payrollNum; + /** + * 发放工资人次 + */ + private Double payrollWorkerTime; +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/ProStatisticsMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/ProStatisticsMapper.java new file mode 100644 index 0000000..686661b --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/ProStatisticsMapper.java @@ -0,0 +1,27 @@ +package com.bonus.bmw.mapper; + +import com.bonus.bmw.domain.po.HomePagePo; +import com.bonus.bmw.domain.vo.HomePageSubProVo; +import com.bonus.bmw.domain.vo.ProStatisticsPo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ProStatisticsMapper { + + + List getProStatisticsTable(HomePagePo o); + + ProStatisticsPo getEinNumByHis(HomePagePo o); + + ProStatisticsPo getEinWorkerLight(HomePagePo o); + + ProStatisticsPo getWorkerAttAndRepair(HomePagePo o); + + int getProRepairNum(HomePagePo o); + + ProStatisticsPo getWorkerWage(HomePagePo o); + + int getWorkerSalaryNum(HomePagePo o); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/ProStatisticsService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/ProStatisticsService.java new file mode 100644 index 0000000..cc24422 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/ProStatisticsService.java @@ -0,0 +1,24 @@ +package com.bonus.bmw.service; + +import com.bonus.bmw.domain.po.HomePagePo; +import com.bonus.bmw.domain.vo.HomePageSubProVo; +import com.bonus.common.core.web.domain.AjaxResult; + +import java.util.List; + +public interface ProStatisticsService { + + /** + * 获取工程统计 + * @param o + * @return + */ + List getProStatisticsTable(HomePagePo o); + + /** + * 获取工程数据概览 + * @param o + * @return + */ + AjaxResult getProDataOverview(HomePagePo o); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/ProStatisticsServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/ProStatisticsServiceImpl.java new file mode 100644 index 0000000..558d0ef --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/ProStatisticsServiceImpl.java @@ -0,0 +1,100 @@ +package com.bonus.bmw.service.impl; + +import com.bonus.bmw.domain.po.HomePagePo; +import com.bonus.bmw.domain.vo.HomePageSubProVo; +import com.bonus.bmw.domain.vo.ProStatisticsPo; +import com.bonus.bmw.mapper.ProStatisticsMapper; +import com.bonus.bmw.service.ProStatisticsService; +import com.bonus.common.core.web.domain.AjaxResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ProStatisticsServiceImpl implements ProStatisticsService { + + @Autowired + private ProStatisticsMapper mapper; + + + @Override + public List getProStatisticsTable(HomePagePo o) { + return mapper.getProStatisticsTable(o); + } + + @Override + public AjaxResult getProDataOverview(HomePagePo o) { + Map map = new HashMap<>(); + List list = mapper.getProStatisticsTable(o); + if(list != null && !list.isEmpty()){ + map.put("subNum",list.get(0).getSubNum()); + map.put("teamNum",list.get(0).getTeamNum()); + map.put("einNum",list.get(0).getEinNum()); + }else{ + map.put("subNum",0); + map.put("teamNum",0); + map.put("einNum",0); + } + //累计入场 + ProStatisticsPo einNum = mapper.getEinNumByHis(o); + 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 = mapper.getEinWorkerLight(o); + 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 = mapper.getWorkerAttAndRepair(o); + 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 = mapper.getProRepairNum(o); + map.put("proRepairNum",proRepairNum); + //工资 + ProStatisticsPo workerWage = mapper.getWorkerWage(o); + 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 = mapper.getWorkerSalaryNum(o); + map.put("workerSalaryNum",workerSalaryNum); + + return AjaxResult.success(map); + } +} diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/ProStatisticsMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/ProStatisticsMapper.xml new file mode 100644 index 0000000..011f289 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/ProStatisticsMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + +