DistributionStatsServiceImpl.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package cn.com.lzt.distributionstats.service.impl;
  2. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import org.springframework.transaction.annotation.Transactional;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.Set;
  11. import java.util.UUID;
  12. import java.io.Serializable;
  13. import java.math.BigDecimal;
  14. import org.jeecgframework.core.util.ApplicationContextUtil;
  15. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  16. import org.jeecgframework.core.util.LogUtil;
  17. import org.jeecgframework.core.util.MyClassLoader;
  18. import org.jeecgframework.core.util.StringUtil;
  19. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  20. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  21. import cn.com.lzt.attendance.entity.UserAttendanceEntity;
  22. import cn.com.lzt.common.util.DataUtil;
  23. import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI;
  24. import cn.com.lzt.distributionstats.dao.DistributionStatsMinidaoDao;
  25. import cn.com.lzt.distributionstats.dto.ProjDistributionStatsDto;
  26. import cn.com.lzt.distributionstats.entity.ComDistributionStatsEntity;
  27. import cn.com.lzt.distributionstats.entity.ProjDistributionStatsEntity;
  28. import cn.com.lzt.distributionstats.service.DistributionStatsServiceI;
  29. import cn.com.lzt.overtimestats.service.OvertimeStatsServiceI;
  30. @Service("distributionStatsService")
  31. @Transactional
  32. public class DistributionStatsServiceImpl extends CommonServiceImpl implements DistributionStatsServiceI {
  33. @Autowired
  34. private DistributionStatsMinidaoDao distributionStatsMinidaoDao;
  35. @Autowired
  36. private UserDepartOrgDealServiceI userDepartOrgDealServiceI;
  37. @Override
  38. public void distributionStatsTaskData() {
  39. distributionStatsTaskData(null);
  40. }
  41. @Override
  42. public void distributionStatsTaskData(String attmonth) {
  43. LogUtil.info("===============岗位人力定时任务开始=================");
  44. //String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  45. //查询公司岗位人数
  46. MiniDaoPage<ComDistributionStatsEntity> comDislist = new MiniDaoPage<ComDistributionStatsEntity>();
  47. Map<String,Object> params = new HashMap<String, Object>();
  48. String beforeMonth = DataUtil.getBeforeMonth();
  49. if(StringUtil.isNotEmpty(attmonth)){
  50. beforeMonth = attmonth;
  51. }
  52. params = DataUtil.getMonthInfo(beforeMonth);
  53. params.put("yearmonth", beforeMonth);
  54. comDislist = distributionStatsMinidaoDao.ComDistributionStatsData(params,null);
  55. List<ComDistributionStatsEntity> comdisList = findByProperty(ComDistributionStatsEntity.class, "yearmonth", beforeMonth);
  56. try {
  57. deleteAllEntitie(comdisList);
  58. super.batchSave(comDislist.getResults());
  59. LogUtil.info("===============公司岗位人力统计表保存成功=================");
  60. } catch (Exception e) {
  61. LogUtil.info("===============公司岗位人力统计表保存失败=================");
  62. }
  63. //查询项目岗位人数
  64. MiniDaoPage<ProjDistributionStatsDto> projDislist = new MiniDaoPage<ProjDistributionStatsDto>();
  65. projDislist = distributionStatsMinidaoDao.ProjDistributionStatsData(params,null);
  66. List<ProjDistributionStatsEntity> projdisList = findByProperty(ProjDistributionStatsEntity.class, "yearmonth",beforeMonth);
  67. List<ProjDistributionStatsDto> dtoList = new ArrayList<ProjDistributionStatsDto>();
  68. try {
  69. deleteAllEntitie(projdisList);
  70. List<ProjDistributionStatsEntity> listEntity = new ArrayList<ProjDistributionStatsEntity>();
  71. for(ProjDistributionStatsDto dto : projDislist.getResults()){
  72. if(StringUtil.isEmpty(dto.getPjtId())){
  73. String pid = userDepartOrgDealServiceI.getProjectDepartParentId(dto.getDeptId());
  74. if(StringUtil.isNotEmpty(pid)){
  75. dto.setPjtId(pid);
  76. dtoList.add(dto);
  77. }
  78. }else{
  79. dtoList.add(dto);
  80. }
  81. }
  82. Map<String,Integer> mapnum = new HashMap<String, Integer>();
  83. Map<String,Integer> mapnumtotal = new HashMap<String, Integer>();
  84. for(ProjDistributionStatsDto dto : dtoList ){
  85. String key = dto.getPjtId() + "_" + dto.getPostid();
  86. if(mapnum.get(key) == null){
  87. mapnum.put(key, dto.getPeopleNum());
  88. }else{
  89. mapnum.put(key, mapnum.get(key) + dto.getPeopleNum());
  90. }
  91. if(mapnumtotal.get(dto.getPjtId()) == null){
  92. mapnumtotal.put(dto.getPjtId(), dto.getPeopleNum());
  93. }else{
  94. mapnumtotal.put(dto.getPjtId(), mapnumtotal.get(dto.getPjtId()) + dto.getPeopleNum());
  95. }
  96. }
  97. Set<String> keys = mapnum.keySet();
  98. for(String key : keys){
  99. ProjDistributionStatsEntity entity = new ProjDistributionStatsEntity();
  100. String[] keyArray = key.split("_");
  101. entity.setPjtId(keyArray[0]);
  102. entity.setPostid(keyArray[1]);
  103. entity.setPeopleNum(mapnum.get(key));
  104. float a = (float)mapnum.get(key)/mapnumtotal.get(keyArray[0]) * 100;
  105. BigDecimal bd = new BigDecimal(a);
  106. entity.setProportion(new BigDecimal(DataUtil.getFormatDecimailTwo(bd)));
  107. entity.setYearmonth(beforeMonth);
  108. listEntity.add(entity);
  109. }
  110. super.batchSave(listEntity);
  111. LogUtil.info("===============项目岗位人力统计表保存成功=================");
  112. } catch (Exception e) {
  113. LogUtil.info("===============项目岗位人力统计表保存失败=================");
  114. }
  115. LogUtil.info("===============岗位人力定时任务开始=================");
  116. }
  117. }