ExpandAssessServiceImpl.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.kingdee.eas.custom.expandassess.service.impl;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.metadata.entity.*;
  5. import com.kingdee.bos.metadata.query.util.CompareType;
  6. import com.kingdee.eas.common.EASBizException;
  7. import com.kingdee.eas.custom.expandassess.*;
  8. import com.kingdee.eas.custom.expandassess.app.ExpandStatusEunm;
  9. import com.kingdee.eas.custom.expandassess.service.ExpandAssessService;
  10. import com.kingdee.eas.framework.CoreBaseCollection;
  11. import com.kingdee.eas.hr.ats.AtsUtil;
  12. import com.kingdee.eas.util.app.ContextUtil;
  13. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  14. import com.kingdee.util.StringUtils;
  15. import java.util.HashSet;
  16. import java.util.Set;
  17. /**
  18. * @author qingwu
  19. * @date 2024/5/17
  20. * @apiNote
  21. */
  22. public class ExpandAssessServiceImpl implements ExpandAssessService {
  23. @Override
  24. public ExpandAssessEntryCollection qeruyEntryByBillIdAndAdminOrg(Context ctx, String billId, String adminOrgId) throws BOSException {
  25. IExpandAssessEntry iExpandAssessEntry = ExpandAssessEntryFactory.getLocalInstance(ctx);
  26. FilterInfo filterInfo = new FilterInfo();
  27. filterInfo.getFilterItems().add(new FilterItemInfo("parent.id", billId));
  28. filterInfo.getFilterItems().add(new FilterItemInfo("adminOrg.id", adminOrgId));
  29. filterInfo.getFilterItems().add(new FilterItemInfo("assestatus", 3));
  30. SelectorItemCollection sic = new SelectorItemCollection();
  31. sic.add("parent.*");
  32. sic.add("*");
  33. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, sic, null);
  34. return iExpandAssessEntry.getExpandAssessEntryCollection(entityViewInfo);
  35. }
  36. @Override
  37. public void updateAsseStatusAll(Context ctx, String idArray, ExpandStatusEunm eunm1, ExpandStatusEunm eunm2, String errorText) throws BOSException, ShrWebBizException, EASBizException {
  38. IExpandAssessEntry iExpandAssessEntry = ExpandAssessEntryFactory.getLocalInstance(ctx);
  39. FilterInfo filterInfo = new FilterInfo();
  40. filterInfo.getFilterItems().add(new FilterItemInfo("id", AtsUtil.toSet(idArray), CompareType.INCLUDE));
  41. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, null, null);
  42. ExpandAssessEntryCollection expandAssessEntryCollection = iExpandAssessEntry.getExpandAssessEntryCollection(entityViewInfo);
  43. CoreBaseCollection collection = new CoreBaseCollection();
  44. if (expandAssessEntryCollection.size() > 0) {
  45. for (int i = 0; i < expandAssessEntryCollection.size(); i++) {
  46. ExpandAssessEntryInfo expandAssessEntryInfo = expandAssessEntryCollection.get(i);
  47. if (expandAssessEntryInfo.getAsseStatus() == eunm1) {
  48. expandAssessEntryInfo.setAsseStatus(eunm2);
  49. collection.add(expandAssessEntryInfo);
  50. } else {
  51. throw new ShrWebBizException(errorText);
  52. }
  53. }
  54. }
  55. iExpandAssessEntry.updateBatchData(collection);
  56. }
  57. /**
  58. * 获取当前登录人等于评分人的数据
  59. *
  60. * @param billId
  61. * @return
  62. */
  63. public ExpandAssessEntryCollection getCurrentPersonEqualsPrincipal(Context ctx, String billId) throws ShrWebBizException, BOSException {
  64. //当前登录员工id
  65. String currentPersonId = ContextUtil.getCurrentUserInfo(ctx).getPerson().getId().toString();
  66. if (StringUtils.isEmpty(billId)) {
  67. throw new ShrWebBizException("拓展人员考核周期ID不可为空!");
  68. }
  69. IExpandAssessEntry iExpandAssessEntry = ExpandAssessEntryFactory.getLocalInstance(ctx);
  70. SelectorItemCollection sic = new SelectorItemCollection();
  71. sic.add("*");
  72. sic.add("assessor.name");
  73. sic.add("adminOrg.name");
  74. sic.add("principal.name");
  75. FilterInfo filterInfo = new FilterInfo();
  76. FilterItemCollection filterItems = filterInfo.getFilterItems();
  77. filterItems.add(new FilterItemInfo("parent.id", billId));
  78. filterItems.add(new FilterItemInfo("principal.id", currentPersonId));
  79. filterItems.add(new FilterItemInfo("assestatus", 3));
  80. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, sic, null);
  81. return iExpandAssessEntry.getExpandAssessEntryCollection(entityViewInfo);
  82. }
  83. /**
  84. * 过滤组织
  85. */
  86. @Override
  87. public String getAdminOrgFilter(Context ctx, String billID) throws ShrWebBizException, BOSException {
  88. ExpandAssessEntryCollection entrys = getCurrentPersonEqualsPrincipal(ctx, billID);
  89. Set set = new HashSet<>();
  90. StringBuilder sb = new StringBuilder();
  91. //去重操作
  92. for (int i = entrys.size() - 1; i >= 0; i--) {
  93. ExpandAssessEntryInfo expandAssessEntryInfo = entrys.get(i);
  94. String adminId = expandAssessEntryInfo.getAdminOrg().getId().toString();
  95. if (set.contains(adminId)) {
  96. entrys.remove(expandAssessEntryInfo);
  97. } else {
  98. set.add(adminId);
  99. sb.append("'").append(adminId).append("',");
  100. }
  101. }
  102. // 删除最后一个逗号
  103. if (sb.length() > 0) {
  104. sb.deleteCharAt(sb.length() - 1);
  105. }
  106. return sb.toString();
  107. }
  108. @Override
  109. public void verifyStatus(String trs) {
  110. }
  111. @Override
  112. public void deleteExpandAssessEntry(Context ctx, String idArray) throws BOSException, ShrWebBizException, EASBizException {
  113. IExpandAssessEntry iExpandAssessEntry = ExpandAssessEntryFactory.getLocalInstance(ctx);
  114. FilterInfo filterInfo = new FilterInfo();
  115. filterInfo.getFilterItems().add(new FilterItemInfo("id", AtsUtil.toSet(idArray), CompareType.INCLUDE));
  116. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, null, null);
  117. ExpandAssessEntryCollection expandAssessEntryCollection = iExpandAssessEntry.getExpandAssessEntryCollection(entityViewInfo);
  118. if (expandAssessEntryCollection.size() > 0) {
  119. for (int i = 0; i < expandAssessEntryCollection.size(); i++) {
  120. ExpandAssessEntryInfo expandAssessEntryInfo = expandAssessEntryCollection.get(i);
  121. if (expandAssessEntryInfo.getAsseStatus() == (ExpandStatusEunm.START) ||
  122. expandAssessEntryInfo.getAsseStatus() == (ExpandStatusEunm.ASSESUBMINT) ||
  123. expandAssessEntryInfo.getAsseStatus() == (ExpandStatusEunm.PRINCIPALSUBMIT)) {
  124. throw new ShrWebBizException("只能删除未启动考核的数据!!");
  125. }
  126. }
  127. }
  128. iExpandAssessEntry.delete(filterInfo);
  129. }
  130. @Override
  131. public ExpandAssessEntryCollection getEntrysByBill(Context ctx, String billId) throws ShrWebBizException, BOSException {
  132. if (StringUtils.isEmpty(billId)) {
  133. throw new ShrWebBizException("拓展人员考核周期ID不可为空!");
  134. }
  135. IExpandAssessEntry iExpandAssessEntry = ExpandAssessEntryFactory.getLocalInstance(ctx);
  136. SelectorItemCollection sic = new SelectorItemCollection();
  137. sic.add("*");
  138. sic.add("assessor.name");
  139. sic.add("adminOrg.name");
  140. sic.add("principal.name");
  141. FilterInfo filterInfo = new FilterInfo();
  142. FilterItemCollection filterItems = filterInfo.getFilterItems();
  143. filterItems.add(new FilterItemInfo("parent.id", billId));
  144. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, sic, null);
  145. return iExpandAssessEntry.getExpandAssessEntryCollection(entityViewInfo);
  146. }
  147. }