package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.bstek.dorado.data.provider.Page; import com.fzzy.common.constant.BizTypeEnum; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.data.PatrolSuperData; import com.fzzy.igds.domain.Dept; import com.fzzy.igds.domain.Patrol; import com.fzzy.igds.domain.PatrolConf; import com.fzzy.igds.service.CoreDeptService; import com.fzzy.igds.service.PatrolService; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; /** * @Description 巡更监管统计 * @Author CZT * @Date 2025/12/17 11:32 */ @Component public class PatrolPR { @Resource private PatrolService patrolService; @Resource private CoreDeptService coreDeptService; /*-------------------巡检监管统计信息--------------------*/ /** * patrolPR#getData 巡检监管统计 * * @return * @throws Exception */ @DataProvider public List getData() { //查询当前用户下属的所有库区 List deptList = coreDeptService.getDeptData(); if(null == deptList || deptList.isEmpty()){ return null; } //库区转换 Map map = new HashMap<>(); for (Dept dept : deptList) { map.put(dept.getId(), new PatrolSuperData(dept.getId().substring(0,(dept.getId().length()-3)), dept.getId())); } List weekList = patrolService.getWeekList(); if(null != weekList && weekList.size() > 0){ PatrolSuperData patrolSuperData; Date start = DateUtil.getCurZero(DateUtil.getNewByDay(new Date(), -1)); //昨天零点零分 Date end = DateUtil.getCurZero(new Date()); //今天零点零分 for (Patrol patrol : weekList) { patrolSuperData = map.get(patrol.getDeptId()); //7天内统计 patrolSuperData.setWeekNum(patrolSuperData.getWeekNum() + 1); //当天统计 if(patrol.getCreateTime().after(end)){ patrolSuperData.setCurNum(patrolSuperData.getCurNum() + 1); patrolSuperData.setIsPatrol("Y"); } //昨天统计 if(patrol.getCreateTime().after(start) && patrol.getCreateTime().before(end)){ patrolSuperData.setYesterdayNum(patrolSuperData.getYesterdayNum() + 1); } } } ArrayList list = new ArrayList<>(map.values()); Collections.sort(list, new Comparator() { @Override public int compare(PatrolSuperData o1, PatrolSuperData o2) { return o1.getDeptId().compareTo(o2.getDeptId()); } }); return list; } /*-------------------电子巡更记录主表信息--------------------*/ /** * patrolPR#pagePatrolData 获取巡检记录信息 * * @param param * @return */ @DataProvider public void pagePatrolData(Page page, IgdsBaseParam param) { if(null == param) { param = new IgdsBaseParam(); } com.baomidou.mybatisplus.extension.plugins.pagination.Page corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize()); patrolService.pagePatrolData(corePage, param); // 重新封装 page.setEntities(corePage.getRecords()); page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal()))); } /*-------------------电子巡更配置信息--------------------*/ /** * patrolPR#listPatrolConf * 银行列表 */ @DataProvider public List listPatrolConf(IgdsBaseParam param) { return patrolService.listPatrolConf(param); } /** * 保存/更新 * patrolPR#saveUpdateConf * @param bank * @return */ @Transactional @DataResolver public BaseResp saveUpdateConf(PatrolConf bank){ if(StringUtils.isEmpty(bank.getId())){ return patrolService.addPatrolConf(bank); }else { return patrolService.updatePatrolConf(bank); } } /** * 删除 * patrolPR#deletePatrolConf * @param bank * @return */ @Expose @Log(title = "巡检配置", businessType = BusinessType.DELETE,bizType = BizTypeEnum.SECURITY) public BaseResp deletePatrolConf(PatrolConf bank){ if(StringUtils.isNotEmpty(bank.getId())) return patrolService.deletePatrolConf(bank); return BaseResp.success(); } }