Commit 22f5136d by wangjian

2025-09-26 wj 整体修改4

parent c9148cfb
......@@ -119,4 +119,12 @@ public class SjBzxxController extends BaseController
/** 查询统计 单位班组人数统计信息 */
@GetMapping("/dwbzrstjList")
public List<SjBzxx> dwbzrstjList(SjBzxx sjBzxx)
{
List<SjBzxx> list = sjBzxxService.dwbzrstjList(sjBzxx);
return list;
}
}
......@@ -26,15 +26,15 @@ public class SjBzxx extends BaseEntity
@Excel(name = "单位名称")
private String deptName;
/** 班组名称 */
/** 基层班组 班组名称 */
@Excel(name = "班组名称")
private String bzmc;
/** 班组类型 */
/** 基层班站分类 班组类型 */
@Excel(name = "班组类型")
private String bzlx;
/** 人数 */
/** 全部用工人数 */
@Excel(name = "人数")
private String rs;
......@@ -52,5 +52,23 @@ public class SjBzxx extends BaseEntity
//传入参数
private String ids;//批量ids 例如6,7,8 只有一个传入6
private String zsdw;//直属单位
private String zsdwfl;//直属单位分类
private String zsdwRowSpan;//直属单位 合并单元格 行数量 合并几行的单元格
private String zsdwIsFirst;//直属单位 内部 是否是第一条 第一条合并单元格 其他条 不显示
private String jcdw;//基层单位
private String jcdwfl;//基层单位分类
private String jcdwRowSpan;//基层单位 合并单元格 行数量 合并几行的单元格
private String jcdwIsFirst;//基层单位 内部 是否是第一条 第一条合并单元格 其他条 不显示
private String bzsl1;//管理类班组(室中心)数量
private String bzsl2;//一线生产班组数量
private String bzsl3;//研究类班组(室中心)数量
private String bzsl4;//后勤服务类班组数量
private String bzsl5;//其他
private String ygrsxj;//用工人数小计
}
......@@ -27,6 +27,7 @@ public interface ISjBzxxService
* @return 班组信息集合
*/
public List<SjBzxx> selectSjBzxxList(SjBzxx sjBzxx);
public List<SjBzxx> dwbzrstjList(SjBzxx sjBzxx);
/**
* 新增班组信息
......
package com.qianhe.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.qianhe.common.annotation.DataScope;
import com.qianhe.common.core.domain.entity.SysDept;
import com.qianhe.common.utils.DateUtils;
import com.qianhe.common.utils.SecurityUtils;
import com.qianhe.system.domain.SysDeptCb;
import com.qianhe.system.mapper.SysDeptMapper;
import com.qianhe.system.service.ISysDeptCbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.qianhe.mapper.SjBzxxMapper;
......@@ -22,6 +28,10 @@ public class SjBzxxServiceImpl implements ISjBzxxService
{
@Autowired
private SjBzxxMapper sjBzxxMapper;
@Autowired
private SysDeptMapper sysDeptMapper;
@Autowired
private ISysDeptCbService sysDeptCbService;
/**
* 查询班组信息
......@@ -119,4 +129,105 @@ public class SjBzxxServiceImpl implements ISjBzxxService
}
/** 查询统计 单位班组人数统计信息 */
@Override
@DataScope(deptAlias = "d")
public List<SjBzxx> dwbzrstjList(SjBzxx sjBzxx)
{
List<SysDept> deptList = sysDeptMapper.selectDeptList(new SysDept());
List<SjBzxx> bzs = sjBzxxMapper.selectSjBzxxList(new SjBzxx());//班组
List<SysDeptCb> cbs = sysDeptCbService.selectSysDeptCbList(new SysDeptCb());//单位从表
List<SysDept> zss = deptList.stream().filter(e->"3".equals(e.getDwjb())).collect(Collectors.toList());//直属单位
List<SysDept> jcs = deptList.stream().filter(e->"4".equals(e.getDwjb())).collect(Collectors.toList());//基层单位
List<SjBzxx> rts = new ArrayList<>();//返回结果
for(int i = 0; i < zss.size(); i++){//循环直属单位
SysDept zs = zss.get(i);
Long zsdwId = zs.getDeptId();
String zsdw = zs.getDeptName();
//直属单位的从表
SysDeptCb zsdwcb = cbs.stream().filter(e->String.valueOf(zsdwId).equals(e.getDeptId())).findAny().orElse(new SysDeptCb());
String zsdwfl = zsdwcb.getDwlx();
//当前直属单位下的 基层单位
List<SysDept> bdwjcs = jcs.stream().filter(e->zsdwId.equals(e.getParentId())).collect(Collectors.toList());
for(int j = 0; j < bdwjcs.size(); j++){//循环直属单位下基层单位
SysDept jc = bdwjcs.get(j);
Long jcdwId = jc.getDeptId();
String jcdw = jc.getDeptName();
//基层单位的从表
SysDeptCb jcdwcb = cbs.stream().filter(e->String.valueOf(jcdwId).equals(e.getDeptId())).findAny().orElse(new SysDeptCb());
String jcdwfl = jcdwcb.getDwlx();
Long jcdwrs = jcdwcb.getJcrysl();//用工人数小计
//查询基层单位 班组
List<SjBzxx> bdwbzs = bzs.stream().filter(e->jcdwId.equals(e.getDeptId())).collect(Collectors.toList());
if(bdwbzs.size() > 0){
//有下属班组 用工人数小计为求其rs的和
jcdwrs = bdwbzs.stream().filter(bzxx -> bzxx != null && bzxx.getRs() != null && !bzxx.getRs().trim().isEmpty())
.mapToLong(bzxx -> {
try {
return Long.parseLong(bzxx.getRs().trim());
} catch (NumberFormatException e) {
return 0L;
}
}).sum();
long count1 = bdwbzs.stream().filter(bzxx -> "管理类班组(室中心)".equals(bzxx.getBzlx())).count();
long count2 = bdwbzs.stream().filter(bzxx -> "一线生产班组".equals(bzxx.getBzlx())).count();
long count3 = bdwbzs.stream().filter(bzxx -> "研究类班组(室中心)".equals(bzxx.getBzlx())).count();
long count4 = bdwbzs.stream().filter(bzxx -> "后勤服务类班组".equals(bzxx.getBzlx())).count();
long count5 = bdwbzs.stream().filter(bzxx -> "其他".equals(bzxx.getBzlx())).count();
String bzsl1 = String.valueOf(count1);//管理类班组(室中心)数量
String bzsl2 = String.valueOf(count2);//一线生产班组数量
String bzsl3 = String.valueOf(count3);//研究类班组(室中心)数量
String bzsl4 = String.valueOf(count4);//后勤服务类班组数量
String bzsl5 = String.valueOf(count5);//其他
//有下属班组 就循环
for(int k = 0; k < bdwbzs.size(); k++) {//循环基层单位下班组
SjBzxx bz = bdwbzs.get(k);
SjBzxx rt = new SjBzxx();
rt.setZsdw(zsdw);
rt.setZsdwfl(zsdwfl);
rt.setJcdw(jcdw);
rt.setJcdwfl(jcdwfl);
rt.setBzmc(bz.getBzmc());
rt.setBzlx(bz.getBzlx());
rt.setRs(bz.getRs());
rt.setBzsl1(bzsl1);
rt.setBzsl2(bzsl2);
rt.setBzsl3(bzsl3);
rt.setBzsl4(bzsl4);
rt.setBzsl5(bzsl5);
rt.setYgrsxj(String.valueOf(jcdwrs));
rts.add(rt);
}
}
//没有下属班组 就基层一条数据
if(bdwbzs.size() <= 0){
SjBzxx rt = new SjBzxx();
rt.setZsdw(zsdw);
rt.setZsdwfl(zsdwfl);
rt.setJcdw(jcdw);
rt.setJcdwfl(jcdwfl);
rt.setRs(String.valueOf(jcdwrs));
rt.setYgrsxj(String.valueOf(jcdwrs));
rts.add(rt);
}
}
}
return rts;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment