|
@@ -31,18 +31,24 @@ import vip.xiaonuo.common.page.CommonPageRequest;
|
|
import vip.xiaonuo.hr.modular.basedepartment.entity.HrBaseDepartment;
|
|
import vip.xiaonuo.hr.modular.basedepartment.entity.HrBaseDepartment;
|
|
import vip.xiaonuo.hr.modular.basedepartment.mapper.HrBaseDepartmentMapper;
|
|
import vip.xiaonuo.hr.modular.basedepartment.mapper.HrBaseDepartmentMapper;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.HrBaseEmployeeInfo;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.HrBaseEmployeeInfo;
|
|
-import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.vo.CountPerson;
|
|
|
|
-import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.vo.EoucationVo;
|
|
|
|
-import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.vo.HrBaseEmployeeInfoVo;
|
|
|
|
-import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.vo.PerNum;
|
|
|
|
|
|
+import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.vo.*;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.mapper.HrBaseEmployeeInfoMapper;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.mapper.HrBaseEmployeeInfoMapper;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.param.*;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.param.*;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.service.HrBaseEmployeeInfoService;
|
|
import vip.xiaonuo.hr.modular.baseemployeeinfo.service.HrBaseEmployeeInfoService;
|
|
|
|
+import vip.xiaonuo.hr.modular.count.entity.HrCount;
|
|
|
|
+import vip.xiaonuo.hr.modular.count.mapper.HrCountMapper;
|
|
import vip.xiaonuo.purchase.entity.PurchaseContract;
|
|
import vip.xiaonuo.purchase.entity.PurchaseContract;
|
|
|
|
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
|
|
|
|
+import vip.xiaonuo.purchase.param.DongShiPurchaseParam;
|
|
|
|
+import vip.xiaonuo.purchase.param.GongYingShangParam;
|
|
|
|
+import vip.xiaonuo.purchase.param.PurchaseAllParam;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import static vip.xiaonuo.money.service.impl.MoneyBusinessServiceImpl.calculateYOYChange;
|
|
|
|
+import static vip.xiaonuo.money.service.impl.MoneyBusinessServiceImpl.calculateYOYZiJinYvE;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 人员明细Service接口实现类
|
|
* 人员明细Service接口实现类
|
|
*
|
|
*
|
|
@@ -54,6 +60,8 @@ public class HrBaseEmployeeInfoServiceImpl extends ServiceImpl<HrBaseEmployeeInf
|
|
@Autowired
|
|
@Autowired
|
|
private HrBaseEmployeeInfoMapper hrBaseEmployeeInfoMapper;
|
|
private HrBaseEmployeeInfoMapper hrBaseEmployeeInfoMapper;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private HrCountMapper hrCountMapper;
|
|
|
|
+ @Autowired
|
|
private HrBaseDepartmentMapper hrBaseDepartmentMapper;
|
|
private HrBaseDepartmentMapper hrBaseDepartmentMapper;
|
|
|
|
|
|
|
|
|
|
@@ -203,13 +211,118 @@ public class HrBaseEmployeeInfoServiceImpl extends ServiceImpl<HrBaseEmployeeInf
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<PerNum> siLingDis(EmployeeInfoEoucation employeeInfoEoucation) {
|
|
public List<PerNum> siLingDis(EmployeeInfoEoucation employeeInfoEoucation) {
|
|
- return hrBaseEmployeeInfoMapper.siLingDis(employeeInfoEoucation.getOrgId());
|
|
|
|
|
|
+ PerNum perNum = hrBaseEmployeeInfoMapper.siLingDis(employeeInfoEoucation.getOrgId());
|
|
|
|
+ return getEndList(perNum);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<PerNum> gongLingDis(EmployeeInfoEoucation employeeInfoEoucation) {
|
|
public List<PerNum> gongLingDis(EmployeeInfoEoucation employeeInfoEoucation) {
|
|
- return hrBaseEmployeeInfoMapper.gongLingDis(employeeInfoEoucation.getOrgId());
|
|
|
|
|
|
+ PerNum perNum = hrBaseEmployeeInfoMapper.gongLingDis(employeeInfoEoucation.getOrgId());
|
|
|
|
+ return getEndList(perNum);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public DongShiCountNum zhiBiao(DongShiPurchaseParam dongShiPurchaseParam) {
|
|
|
|
+
|
|
|
|
+ String orgId = dongShiPurchaseParam.getOrgId();
|
|
|
|
+ String time = dongShiPurchaseParam.getTime();
|
|
|
|
+ Date date ;
|
|
|
|
+ if (StringUtils.isBlank(time)){
|
|
|
|
+ date = DateUtil.beginOfMonth(new Date());
|
|
|
|
+ }else {
|
|
|
|
+ date = DateUtil.beginOfMonth( DateUtil.parse(time,"yyyy-MM"));
|
|
|
|
+ }
|
|
|
|
+ QueryWrapper<HrBaseEmployeeInfo> wapper = new QueryWrapper<HrBaseEmployeeInfo>();
|
|
|
|
+ wapper.eq(StringUtils.isNotBlank(orgId),"org_id", orgId).between("CREATE_TIME", date, DateUtil.endOfMonth(date));
|
|
|
|
+ DongShiCountNum dongShiCountNum = hrBaseEmployeeInfoMapper.zhiBiao(wapper);
|
|
|
|
+ wapper.clear();
|
|
|
|
+ wapper.eq(StringUtils.isNotBlank(orgId),"org_id", orgId).between("CREATE_TIME", DateUtil.offsetMonth(date,-12), DateUtil.offsetMonth(DateUtil.endOfMonth(date),-12));
|
|
|
|
+ DongShiCountNum lastdongShiCountNum = hrBaseEmployeeInfoMapper.zhiBiao(wapper);
|
|
|
|
+
|
|
|
|
+ dongShiCountNum.setPayIsOn(getDouble(lastdongShiCountNum.getPay())<getDouble(dongShiCountNum.getPay()));
|
|
|
|
+ dongShiCountNum.setJobNumIsOn(getDouble(lastdongShiCountNum.getJobNum() )<getDouble(dongShiCountNum.getJobNum()));
|
|
|
|
+ dongShiCountNum.setOutputValueIsOn(getDouble(lastdongShiCountNum.getOutputValue()) <getDouble(dongShiCountNum.getOutputValue()));
|
|
|
|
+
|
|
|
|
+ dongShiCountNum.setPayOnYear(calculateYOYZiJinYvE(getDouble(dongShiCountNum.getPay()),getDouble(lastdongShiCountNum.getPay())));
|
|
|
|
+ dongShiCountNum.setJobNumOnYear(calculateYOYZiJinYvE(getDouble(dongShiCountNum.getJobNum()),getDouble(lastdongShiCountNum.getJobNum())));
|
|
|
|
+ dongShiCountNum.setOutputValueOnYear(calculateYOYZiJinYvE(getDouble(dongShiCountNum.getOutputValue()),getDouble(lastdongShiCountNum.getOutputValue())));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return dongShiCountNum;
|
|
|
|
+ }
|
|
|
|
+ private Double getDouble(String balance) {
|
|
|
|
+ if (StringUtils.isBlank(balance)){
|
|
|
|
+ return 0.0;
|
|
|
|
+ }
|
|
|
|
+ return Double.parseDouble(balance);
|
|
|
|
+// return balance;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Page<HrBaseEmployeeInfo> details(DongShiPurchaseParam dongShiPurchaseParam) {
|
|
|
|
+
|
|
|
|
+ String orgId = dongShiPurchaseParam.getOrgId();
|
|
|
|
+ QueryWrapper<HrBaseEmployeeInfo> wapper = new QueryWrapper<HrBaseEmployeeInfo>();
|
|
|
|
+ Page<HrBaseEmployeeInfo> page = new Page<HrBaseEmployeeInfo>(dongShiPurchaseParam.getPageNum(), dongShiPurchaseParam.getPageSize());
|
|
|
|
+ wapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId);
|
|
|
|
+ return this.page(page,wapper);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<DongShiCountNum> zhiChuDetails(DongShiPurchaseParam dongShiPurchaseParam) {
|
|
|
|
+ String orgId = dongShiPurchaseParam.getOrgId();
|
|
|
|
+ Integer type = dongShiPurchaseParam.getType();
|
|
|
|
+ QueryWrapper<HrCount> wapper = new QueryWrapper<HrCount>();
|
|
|
|
+
|
|
|
|
+ wapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId).orderByAsc("ymonth").groupBy("ymonth");
|
|
|
|
+ List<DongShiCountNum> dongShiCountNums;
|
|
|
|
+ if (ObjectUtil.isEmpty(type) || 0 == type){
|
|
|
|
+ dongShiCountNums= hrCountMapper.getZhiChuDetailsMonth(wapper);
|
|
|
|
+ }else {
|
|
|
|
+ dongShiCountNums = hrCountMapper.getZhiChuDetailsYear(wapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return dongShiCountNums;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<DongShiCountNum> yuanGongNum(DongShiPurchaseParam dongShiPurchaseParam) {
|
|
|
|
+
|
|
|
|
+ String orgId = dongShiPurchaseParam.getOrgId();
|
|
|
|
+ Integer type = dongShiPurchaseParam.getType();
|
|
|
|
+ QueryWrapper<HrBaseEmployeeInfo> wapper = new QueryWrapper<HrBaseEmployeeInfo>();
|
|
|
|
+ wapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId).groupBy("ymonth").orderByAsc("ymonth");
|
|
|
|
+ List<DongShiCountNum> busAllParams;
|
|
|
|
+ if (ObjectUtil.isEmpty(type) || 0 == type){
|
|
|
|
+ busAllParams= hrBaseEmployeeInfoMapper.yuanGongNumMonth(wapper);
|
|
|
|
+ }else {
|
|
|
|
+ busAllParams = hrBaseEmployeeInfoMapper.yuanGongNumYear(wapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < busAllParams.size() -1 ; i++) {
|
|
|
|
+ DongShiCountNum lastDsBus = busAllParams.get(i);
|
|
|
|
+ DongShiCountNum dsBusAllParam = busAllParams.get(i + 1);
|
|
|
|
+ dsBusAllParam.setJobNumOnYear(calculateYOYZiJinYvE(getDouble(dsBusAllParam.getJobNum()),getDouble(lastDsBus.getJobNum( ))));
|
|
|
|
+ dsBusAllParam.setJobNumIsOn(getDouble(lastDsBus.getJobNum()) <getDouble(dsBusAllParam.getJobNum()));
|
|
|
|
+ }
|
|
|
|
+ DongShiCountNum dsBusAllParam = busAllParams.get(0);
|
|
|
|
+ dsBusAllParam.setJobNumOnYear("0%");
|
|
|
|
+ dsBusAllParam.setJobNumIsOn(true);
|
|
|
|
+ return busAllParams;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<PerNum> getEndList(PerNum perNum) {
|
|
|
|
+ List endList = new ArrayList();
|
|
|
|
+ endList.add(new PerNum("1-3年",perNum.getOne()));
|
|
|
|
+ endList.add(new PerNum("3-5年",perNum.getFive()));
|
|
|
|
+ endList.add(new PerNum("5-10年",perNum.getTen()));
|
|
|
|
+ endList.add(new PerNum("10-15年",perNum.getOneFive()));
|
|
|
|
+ endList.add(new PerNum("15-20年",perNum.getTwoZ()));
|
|
|
|
+ endList.add(new PerNum("20-25年",perNum.getTwoFive()));
|
|
|
|
+ endList.add(new PerNum("25年以上",perNum.getThreeZ()));
|
|
|
|
+ return endList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|