全所统计

This commit is contained in:
zhangqinlin
2021-09-26 15:50:49 +08:00
parent 6fe35ff788
commit a7bff83a21
12 changed files with 183 additions and 45 deletions
@@ -28,6 +28,10 @@ public interface constant {
* 超级管理员
*/
public static final String ADMIN="admin";
/**
* 企业信息维护人员
*/
public static final String QYXXWHRY="qyxxwhry";
/**
* 用户角色(企业人员)
@@ -131,7 +131,7 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
if (ObjectUtil.isNotEmpty(payMailBillSearch.getProjectName())){
queryWrapper.like("project_name",payMailBillSearch.getProjectName());
}
queryWrapper.orderByDesc("create_time");
IPage<PayMailBill> pageList = payMailBillService.pageList(page, queryWrapper);
if (!CollectionUtils.isEmpty(pageList.getRecords())) {
try {
@@ -64,6 +64,7 @@ public class PayMailContractController extends JeroController<PayMailContract, I
HttpServletRequest req) {
QueryWrapper<PayMailBillList> queryWrapper = QueryGenerator.initQueryWrapper(payMailBillList, req.getParameterMap());
Page<PayMailBillList> page = new Page<>(pageNo, pageSize);
queryWrapper.orderByAsc("post_status");
queryWrapper.orderByDesc("pc.create_time");
IPage<PayMailBillList> pageList = payMailContractService.pageContract(page, queryWrapper);
return Result.OK(pageList);
@@ -58,5 +58,7 @@
contact_name as contactName,contact_mobile as contactMobile,post_status as postStatus,send_method as sendMethod ,create_time from pay_mail_bill pmb left join pay_mail_bill_project pmbp
on(pmb.id=pmbp.bill_id)
${ew.customSqlSegment}
group by pmb.id ORDER BY post_status ASC,create_time DESC
</select>
</mapper>
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.ComboModel;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.mail.commont.constant;
import com.jero.modules.system.entity.SysUser;
@@ -21,7 +23,9 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.hssf.record.DVALRecord;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -81,7 +85,7 @@ public class PayWorkingGroupStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
@@ -156,7 +160,7 @@ public class PayWorkingGroupStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
@@ -79,6 +79,15 @@ public interface PayWorkingGroupMapper extends BaseMapper<PayWorkingGroup> {
* @Exception
*/
List<AllProjectStatistics> queryPageList3(@Param(value = "allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch);
/**
* @Description 企业来款查询
* @Author zql
* @Date 2021/9/17
* @Param
* @Return
* @Exception
*/
IPage<AllProjectStatistics> queryPageList3( Page<AllProjectStatistics> page,@Param(value = "allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch,@Param("idList") List<String> idList);
/**
* @Description 全所统计
@@ -195,4 +195,13 @@ public interface IPayWorkingGroupService extends IService<PayWorkingGroup> {
* @return
*/
List<DepartStatistics> queryPageListForDepartFirstPage();
/**
* 企业来款统计
* @param page
* @param allProjectStatisticsSearch
* @param idList
* @return
*/
IPage<AllProjectStatistics> queryPageListForProject(Page<AllProjectStatistics> page, AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList);
}
@@ -297,6 +297,11 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
return payWorkingGroupMapper.queryPageListForDepartFirstPage();
}
@Override
public IPage<AllProjectStatistics> queryPageListForProject(Page<AllProjectStatistics> page, AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) {
return payWorkingGroupMapper.queryPageList3(page,allProjectStatisticsSearch,idList);
}
/**
* @Description 校验是存在关联合同的项目
* @Author lqt
@@ -1,11 +1,26 @@
package com.jero.statistics.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.mail.commont.constant;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkGroupSubletStatistics;
import com.jero.project.entity.PayWorkingGroupStatistics;
import com.jero.project.entity.PayWorkingGroupSubletSearch;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.statistics.entity.AllProjectStatistics;
import com.jero.statistics.entity.AllProjectStatisticsSearch;
import com.jero.util.AmountUtil;
@@ -18,10 +33,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author zql
@@ -32,7 +50,8 @@ import java.util.List;
@RequestMapping("/statistics/allProjectStatistics")
@Slf4j
public class AllProjectStatisticsController {
@Resource
private SysUserMapper userMapper;
@Autowired
private ISysBaseAPI sysBaseAPI;
@Autowired
@@ -54,7 +73,7 @@ public class AllProjectStatisticsController {
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal();
String roleCode = sysUser.getRoleCode();
// if(constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)) {
if(constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
if (allProjectStatisticsSearch.getYear() == null || allProjectStatisticsSearch.getYear().equals("")) {
Calendar calendar = Calendar.getInstance();
String year = String.valueOf(calendar.get(Calendar.YEAR));
@@ -91,9 +110,78 @@ public class AllProjectStatisticsController {
hashMap.put("sumOfReallyMoney", sum2==0.0?sum2:df.format(sum2));
hashMap.put("pageList",pageList);
return Result.OK(hashMap);
// }else {
// return Result.OK("权限不足");
// }
}else {
return Result.OK("权限不足");
}
}
/**
* 企业项目统计——分页列表查询
*
* @param allProjectStatisticsSearch 企业项目统计
* @param pageNo 页数
* @param pageSize 条数
*/
@ApiOperation(value = "企业项目统计-分页列表查询", notes = "企业项目统计-详情分页列表查询")
@GetMapping(value = "/listProject")
public Result<?> listProject(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
//根据不同角色加载不同列表的参数
List<String> idList = new ArrayList<>();
//判断登录角色,显示特定工作组内容,判断依据为登录用户的角色和机构编码
LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal();
String roleCode = sysUser.getRoleCode();
//科长
if(constant.BMFZR.equals(roleCode)) {
String orgCode = sysUser.getOrgCode();
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
String userId = sysUser.getId();
idList.add(userId);
}
if (allProjectStatisticsSearch.getYear() == null || allProjectStatisticsSearch.getYear().equals("")) {
Calendar calendar = Calendar.getInstance();
String year = String.valueOf(calendar.get(Calendar.YEAR));
allProjectStatisticsSearch.setYear(year);
}
Page<AllProjectStatistics> page = new Page<>(pageNo, pageSize);
IPage<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListForProject(page,allProjectStatisticsSearch,idList);
HashMap<String, Object> hashMap = new HashMap<>();
double sum=0;
double sum2 =0;
if(ObjectUtils.isNotEmpty(pageList.getRecords())) {
sum = pageList.getRecords() != null ? pageList.getRecords().stream().mapToDouble(t -> Double.parseDouble(t.getAllMoney() == null || t.getAllMoney().equals("") ? "0" : t.getAllMoney())).sum() : 0;
sum2 = pageList.getRecords() != null ? pageList.getRecords().stream().mapToDouble(t -> Double.parseDouble(t.getComeAllMoney() == null || t.getComeAllMoney().equals("") ? "0" : t.getComeAllMoney())).sum() : 0;
}
DecimalFormat df = new DecimalFormat("#.00");
if (pageList.getRecords() != null) {
for(AllProjectStatistics s: pageList.getRecords()){
String key = String.valueOf(s.getChargeUse());
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
}
}
//处理为空数据为0
for(AllProjectStatistics s: pageList.getRecords()){
if(s.getAllMoney()== null || s.getAllMoney().equals("") ){
s.setAllMoney("0.00");
}
if(s.getComeAllMoney()== null || s.getComeAllMoney().equals("") ) {
s.setComeAllMoney("0.00");
}
}
hashMap.put("sumOfMoney", sum==0.0?sum:df.format(sum));
hashMap.put("sumOfReallyMoney", sum2==0.0?sum2:df.format(sum2));
hashMap.put("pageList",pageList);
return Result.OK(hashMap);
}
/**
@@ -105,7 +193,7 @@ public class AllProjectStatisticsController {
public ModelAndView excel( AllProjectStatisticsSearch allProjectStatisticsSearch) {
LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal();
String roleCode = sysUser.getRoleCode();
// if(constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)) {
if(constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
if (allProjectStatisticsSearch.getYear() == null || allProjectStatisticsSearch.getYear().equals("")) {
Calendar calendar = Calendar.getInstance();
String year = String.valueOf(calendar.get(Calendar.YEAR));
@@ -114,8 +202,25 @@ public class AllProjectStatisticsController {
List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcel(allProjectStatisticsSearch);
return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "统计");
// }else {
// return new ModelAndView();
// }
}else {
return new ModelAndView();
}
}
/**
*企业来款统计
*
*/
@GetMapping(value = "/statistics/excelProject")
@ApiOperation(value = "企业来款统计-导出统计", notes = "企业来款统计-导出统计")
public ModelAndView excelProject( AllProjectStatisticsSearch allProjectStatisticsSearch) {
if (allProjectStatisticsSearch.getYear() == null || allProjectStatisticsSearch.getYear().equals("")) {
Calendar calendar = Calendar.getInstance();
String year = String.valueOf(calendar.get(Calendar.YEAR));
allProjectStatisticsSearch.setYear(year);
}
List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcel(allProjectStatisticsSearch);
return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "统计");
}
}
@@ -77,14 +77,12 @@ public class CompanyComeMoneyStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
String userId = sysUser.getId();
idList.add(userId);
}else {
idList=null;
}
Page<CompanyComeMoneyList> page = new Page<>(pageNo, pageSize);
IPage<CompanyComeMoneyList> pageList = payWorkingGroupService.queryPageListForCompany(page,companyComeMoneySearch,idList);
@@ -143,7 +141,7 @@ public class CompanyComeMoneyStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
@@ -208,7 +206,7 @@ public class CompanyComeMoneyStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
@@ -1,5 +1,6 @@
package com.jero.statistics.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,8 +10,10 @@ import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.vo.ProjectDetailVO;
import com.jero.mail.commont.constant;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.entity.PayWorkGroupSubletStatistics;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.statistics.entity.*;
import com.jero.util.AmountUtil;
@@ -80,16 +83,14 @@ public class PrincipalPeopleStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)||constant.QYXXWHRY.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
String userId = sysUser.getId();
idList.add(userId);
}
else {
idList=null;
}
Page<PrincipalPeopleList> page = new Page<>(pageNo, pageSize);
IPage<PrincipalPeopleList> pageList = payWorkingGroupService.queryPageListForPrincipal(page,principalPeopleSearch,idList);
HashMap<String, Object> hashMap = new HashMap<>();
@@ -211,7 +212,7 @@ public class PrincipalPeopleStatisticsController {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", orgCode));
idList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
//所领导或者超级管理员
} else if (constant.SLD.equals(roleCode)|| constant.ADMIN.equals(roleCode)) {
} else if (constant.SLD.equals(roleCode)||constant.ADMIN.equals(roleCode)) {
idList=null;
//企业职员项目负责人
}else if( constant.QYRY.equals(roleCode)){
@@ -124,29 +124,29 @@ public class LoginController {
}
// 若用户名有效,则查询该账号的登陆失败次数是否符合等保要求
// int retryCount = 0;
// if (redisUtil.get(RETRY_LOGIN_PREFIX + username) != null) {
// retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + username);
// }
// if (retryCount >= RETRY_LOGIN_MAX_COUNT) {
// result.error500("密码错误次数过多,请稍后重试");
// return result;
// }
// //2. 校验用户名或密码是否正确
// String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
// String syspassword = sysUser.getPassword();
// if (!syspassword.equals(userpassword)) {
// // 重试登录次数加一
// retryCount++;
// if (retryCount == 1) {
// redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, 60 * 30);
// } else {
// redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, redisUtil.getExpire(RETRY_LOGIN_PREFIX + username));
// }
// String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试" : "用户名或密码错误,剩余可登录次数:" + (RETRY_LOGIN_MAX_COUNT - retryCount);
// result.error500(msg);
// return result;
// }
int retryCount = 0;
if (redisUtil.get(RETRY_LOGIN_PREFIX + username) != null) {
retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + username);
}
if (retryCount >= RETRY_LOGIN_MAX_COUNT) {
result.error500("密码错误次数过多,请稍后重试");
return result;
}
//2. 校验用户名或密码是否正确
String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
String syspassword = sysUser.getPassword();
if (!syspassword.equals(userpassword)) {
// 重试登录次数加一
retryCount++;
if (retryCount == 1) {
redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, 60 * 30);
} else {
redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, redisUtil.getExpire(RETRY_LOGIN_PREFIX + username));
}
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试" : "用户名或密码错误,剩余可登录次数:" + (RETRY_LOGIN_MAX_COUNT - retryCount);
result.error500(msg);
return result;
}
//登录成功,清除错误登录次数
redisUtil.del(RETRY_LOGIN_PREFIX + username);
//如果用初始密码登录,前端就跳转到修改密码界面