WaterPowerMeterReadingEditHandler.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.kingdee.eas.custom.managedormsys.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.eas.custom.dormitorysystem.dormitory.DormitoryCollection;
  5. import com.kingdee.eas.custom.dormitorysystem.dormitory.DormitoryFactory;
  6. import com.kingdee.eas.custom.dormitorysystem.dormitory.DormitoryInfo;
  7. import com.kingdee.eas.custom.dormitorysystem.dormitory.IDormitory;
  8. import com.kingdee.eas.custom.managedormsys.*;
  9. import com.kingdee.eas.custom.managedormsys.utils.WaterPowerUtil;
  10. import com.kingdee.eas.framework.CoreBaseInfo;
  11. import com.kingdee.shr.base.syssetting.context.SHRContext;
  12. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  13. import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
  14. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  15. import org.springframework.ui.ModelMap;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.math.BigDecimal;
  19. import java.util.Date;
  20. import java.util.Map;
  21. /**
  22. * @author qingwu
  23. * @date 2025/4/21
  24. * @apiNote 水电每月抄表信息 com.kingdee.eas.custom.managedormsys.app.WaterPowerMeterReading.form
  25. */
  26. public class WaterPowerMeterReadingEditHandler extends EditHandler {
  27. Context ctx = SHRContext.getInstance().getContext();
  28. @Override
  29. protected void afterInitModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo coreBaseInfo) throws SHRWebException {
  30. super.afterInitModel(request, response, coreBaseInfo);
  31. WaterPowerMeterReadingInfo waterPowerMeterReadingInfo = (WaterPowerMeterReadingInfo) coreBaseInfo;
  32. String dormNumber = waterPowerMeterReadingInfo.getDormNumber();
  33. try {
  34. IDormitory iDormitory = DormitoryFactory.getLocalInstance(ctx);
  35. DormitoryCollection dormitoryCollection = iDormitory.getDormitoryCollection("where number ='" + dormNumber + "'");
  36. DormitoryInfo dormitoryInfo = dormitoryCollection.get(0);
  37. DormitoryInfo dormitory = waterPowerMeterReadingInfo.getDormitory();
  38. dormitory.setRoomNumber(dormitoryInfo.getRoomNumber());
  39. } catch (BOSException e) {
  40. e.printStackTrace();
  41. throw new RuntimeException(e);
  42. }
  43. }
  44. @Override
  45. protected void beforeSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  46. super.beforeSave(request, response, model);
  47. WaterPowerMeterReadingInfo waterPowerMeterReadingInfo = (WaterPowerMeterReadingInfo) model;
  48. Date years = waterPowerMeterReadingInfo.getYears();
  49. String dormNumber = waterPowerMeterReadingInfo.getDormNumber();
  50. WaterPowerUtil.verifyDatEexists(ctx, years, dormNumber, waterPowerMeterReadingInfo.getId() == null ? "" : waterPowerMeterReadingInfo.getId().toString());
  51. //try {
  52. // FilterInfo filterInfo = new FilterInfo();
  53. // FilterItemCollection filterItems = filterInfo.getFilterItems();
  54. // filterItems.add(new FilterItemInfo("years", years));
  55. // filterItems.add(new FilterItemInfo("dormNumber", dormNumber));
  56. // filterItems.add(new FilterItemInfo("id", waterPowerMeterReadingInfo.getId(), CompareType.NOTEQUALS));
  57. // IWaterPowerMeterReading iWaterPowerMeterReading = WaterPowerMeterReadingFactory.getLocalInstance(ctx);
  58. // boolean exists = iWaterPowerMeterReading.exists(filterInfo);
  59. // if (exists) {
  60. // throw new ShrWebBizException(dormNumber + "房间已经存在" + formatter.format(years) + "月的抄表信息!");
  61. // }
  62. //} catch (Exception e) {
  63. // e.printStackTrace();
  64. // throw new ShrWebBizException(e);
  65. //}
  66. }
  67. /**
  68. * 获取当月用水电吨数
  69. *
  70. * @param request
  71. * @param response
  72. * @param modelMap
  73. */
  74. public void getThisMonthWaterPowerTonsAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, SHRWebException {
  75. String years = request.getParameter("years");//年月
  76. String totalWaterTonsStr = request.getParameter("totalWaterTons") == "" ? "0" : request.getParameter("totalWaterTons");
  77. BigDecimal totalWaterTons = new BigDecimal(totalWaterTonsStr);//用水总吨数
  78. String totalElecDegreesStr = request.getParameter("totalElecDegrees") == "" ? "0" : request.getParameter("totalElecDegrees");
  79. BigDecimal totalElecDegrees = new BigDecimal(totalElecDegreesStr);//用电总吨数
  80. String dormNumber = request.getParameter("dormNumber");//宿舍编码
  81. boolean calcInterval = request.getParameter("calcInterval").isEmpty();//是否取消自动计算当月水电
  82. Map result = WaterPowerUtil.getThisMonthWaterPowerTons(ctx, years, dormNumber, totalWaterTons, totalElecDegrees);
  83. JSONUtils.writeJson(response, result);
  84. }
  85. ///**
  86. // * 获取上月用水电吨数
  87. // *
  88. // * @param date
  89. // * @param dormNumber
  90. // * @return
  91. // * @throws BOSException
  92. // */
  93. //private Map getWaterPower(String date, String dormNumber) throws BOSException {
  94. // Map<String, BigDecimal> map = new HashMap();
  95. // FilterInfo filterInfo = new FilterInfo();
  96. // FilterItemCollection filterItems = filterInfo.getFilterItems();
  97. // //上个月:previousMonth 上上个月:
  98. // filterItems.add(new FilterItemInfo("years", date + "-01 00:00:00"));
  99. // filterItems.add(new FilterItemInfo("dormNumber", dormNumber));
  100. // EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, null, null);
  101. // //水电每月抄表信息
  102. // IWaterPowerMeterReading iWaterPowerMeterReading = WaterPowerMeterReadingFactory.getLocalInstance(ctx);
  103. // WaterPowerMeterReadingCollection waterPowerMeterReadingCollection = iWaterPowerMeterReading.getWaterPowerMeterReadingCollection(entityViewInfo);
  104. //
  105. // for (int i = 0; i < waterPowerMeterReadingCollection.size(); i++) {
  106. // WaterPowerMeterReadingInfo waterPowerMeterReadingInfo = waterPowerMeterReadingCollection.get(i);
  107. // map.put("water", waterPowerMeterReadingInfo.getTotalWaterTons());
  108. // map.put("power", waterPowerMeterReadingInfo.getTotalElecDegrees());
  109. // }
  110. // return map;
  111. //}
  112. //
  113. //public Map getDate(String dateStr) {
  114. // Map map = new HashMap();
  115. // // 定义日期格式
  116. // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
  117. // // 将字符串转换为 YearMonth 对象
  118. // YearMonth targetDate = YearMonth.parse(dateStr, formatter);
  119. // // 获取上个月
  120. // YearMonth previousMonth = targetDate.minusMonths(1);
  121. // map.put("previousMonth", formatter.format(previousMonth));
  122. // // 获取上上个月
  123. // YearMonth twoMonthsAgo = targetDate.minusMonths(2);
  124. // map.put("twoMonthsAgo", formatter.format(twoMonthsAgo));
  125. // return map;
  126. //
  127. //}
  128. }