9060 1 месяц назад
Родитель
Сommit
e10e9b09f1

+ 4 - 0
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/waterelectricity/waterElectricityEdit.js

@@ -55,6 +55,10 @@ shr.defineClass("shr.dormitorysystem.WaterElectricityEdit",  shr.framework.Edit,
                 var date2Str = date2.toLocaleDateString().replaceAll("/","-");
                 $('#endDate').shrDateTimePicker("setValue",date2Str)
             }
+            var person = $('#person').shrPromptBox("getValue");
+            let timestamp = new Date().getTime();
+            var number="TWE"+person.number+startDate+timestamp;
+            $('#number').shrTextField("setValue",number);
         }
         if (_self.validate() && _self.verify()) {
             _self.doSave(event, 'save');

+ 4 - 1
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/waterelectricity/waterElectricityList.js

@@ -14,7 +14,10 @@ shr.defineClass("shr.dormitorysystem.WaterElectricityList",  shr.dormitorysystem
             return;
         }
         var uipk = this.getEditUIPK();
-        uipk=uipk.replace(".form",".edit.form");
+
+        if("com.kingdee.eas.custom.dormitorysystem.waterelectricity.app.WaterElectricity.list"!=this.uipk){
+            uipk=uipk.replace(".form",".edit.form");
+        }
         this.reloadPage({
             uipk: uipk,
             billId: billId,

+ 2 - 2
websrc/com/kingdee/eas/custom/dormitorysystem/waterelectricity/handler/CmpCalDynamicListHandlerEx.java

@@ -102,7 +102,7 @@ public class CmpCalDynamicListHandlerEx extends CmpCalDynamicListHandler {
             String cmpSchemeId = request.getParameter("cmpschemeid");
             this.verifyMultiUipkScheme(request, cmpSchemeId);
             String filterSql = this.getCalKeyFromSeesion(request);
-            String updateSql = "select fid,FBeginDate,FEndDate,FPersonID from t_hr_scmpcaltable where Fid in (" + filterSql + ")";
+            String updateSql = "select fid from t_hr_scmpcaltable where Fid in (" + filterSql + ")";
             StringBuilder sel = new StringBuilder();
             sel.append(" select ");
             sel.append(" we.fid from t_hr_scmpcaltable scm ");
@@ -161,7 +161,7 @@ public class CmpCalDynamicListHandlerEx extends CmpCalDynamicListHandler {
             String stateFilter = " AND FCalState in(1,2,3,4,5,6,7) ";
             String newFilter = replaceFilterTarget + stateFilter;
             String targetSql = filterSql.replace(replaceFilterTarget, newFilter);
-            String updateSql = "select fid t_hr_scmpcaltable where Fid in (" + targetSql + ")" + stateFilter;
+            String updateSql = "select fid from t_hr_scmpcaltable where Fid in (" + targetSql + ")" + stateFilter;
             StringBuilder sel = new StringBuilder();
             sel.append(" select ");
             sel.append(" we.fid from t_hr_scmpcaltable scm ");

+ 44 - 21
websrc/com/kingdee/eas/custom/dormitorysystem/waterelectricity/handler/WaterElectricityBatchListHandler.java

@@ -5,6 +5,7 @@ import com.google.common.collect.Sets;
 import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
 import com.kingdee.bos.framework.ejb.EJBFactory;
+import com.kingdee.eas.custom.dormitorysystem.waterelectricity.WaterElectricityInfo;
 import com.kingdee.eas.framework.CoreBillBaseInfo;
 import com.kingdee.eas.hr.base.HRBillStateEnum;
 import com.kingdee.eas.util.app.DbUtil;
@@ -52,7 +53,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
         this.successMessage = successMessage;
     }
     /**
-     * 计算水电费用
+     * 璁$畻姘寸數璐圭敤
      *
      * @param waterElectricityInfo
      * @param map
@@ -61,21 +62,21 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
      */
     protected CoreBillBaseInfo calculateWaterElectricity(CoreBillBaseInfo waterElectricityInfo, Map<String, Object> map,
                                                              Map<String, Object> occupants) {
-        BigDecimal waterprice = (BigDecimal) map.get("waterprice");//水费单价
-        BigDecimal electricityprice = (BigDecimal) map.get("electricityprice");//电费单价
+        BigDecimal waterprice = (BigDecimal) map.get("waterprice");//姘磋垂鍗曚环
+        BigDecimal electricityprice = (BigDecimal) map.get("electricityprice");//鐢佃垂鍗曚环
         BigDecimal curMonthWater = (BigDecimal) map.get("curMonthWater");
         BigDecimal curMonthElecDegrees = (BigDecimal) map.get("curMonthElecDegrees");
 
         LocalDate startPeriodDate = (LocalDate) map.get("startPeriodDate");
         LocalDate endPeriodDate = (LocalDate) map.get("endPeriodDate");
 
-        Date checkInDate = (Date) map.get("checkInDate");//入住日期
+        Date checkInDate = (Date) map.get("checkInDate");//鍏ヤ綇鏃ユ湡
 
-        Date checkOutDate = (Date) map.get("checkOutDate");//离宿日期
+        Date checkOutDate = (Date) map.get("checkOutDate");//绂诲�鏃ユ湡
 
         waterElectricityInfo.put("waterTotalCost",(waterprice.multiply(curMonthWater)));
         waterElectricityInfo.put("electricityTotalCost",(electricityprice.multiply(curMonthElecDegrees)));
-        //处理当月入住天数
+        //澶勭悊褰撴湀鍏ヤ綇澶╂暟
         LocalDate checkInDateLocal = (new Date(checkInDate.getTime())).toInstant()
                 .atZone(ZoneId.systemDefault()).toLocalDate();
         checkInDateLocal = (checkInDateLocal.compareTo(startPeriodDate) > 0 ? checkInDateLocal : startPeriodDate);
@@ -88,16 +89,16 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
         BigDecimal days = new BigDecimal((long) occupants.get("days"));
         waterElectricityInfo.put("allMonthDays",(days));
         waterElectricityInfo.put("monthDays",(new BigDecimal(daysBetween)));
-        //?	当月水费:宿舍用水总费用/宿舍内所有人员当月总入住天数*该人员当前宿舍的入住天数;
+        //?	褰撴湀姘磋垂锛氬�鑸嶇敤姘存€昏垂鐢�/瀹胯垗鍐呮墍鏈変汉鍛樺綋鏈堟€诲叆浣忓ぉ鏁�*璇ヤ汉鍛樺綋鍓嶅�鑸嶇殑鍏ヤ綇澶╂暟锛�
         BigDecimal monthWaterAmount = waterElectricityInfo.getBigDecimal("waterTotalCost")
                 .divide(days, BigDecimal.ROUND_HALF_UP, BigDecimal.ROUND_HALF_UP)
                 .multiply(waterElectricityInfo.getBigDecimal("MonthDays"));
-        waterElectricityInfo.put("monthWaterAmount",monthWaterAmount);
-        //?	当月电费:宿舍用电总费用/宿舍内所有人员当月总入住天数*该人员当前宿舍的入住天数;
+        waterElectricityInfo.put("monthWaterAmount",monthWaterAmount.setScale(2,BigDecimal.ROUND_HALF_UP));
+        //?	褰撴湀鐢佃垂锛氬�鑸嶇敤鐢垫€昏垂鐢�/瀹胯垗鍐呮墍鏈変汉鍛樺綋鏈堟€诲叆浣忓ぉ鏁�*璇ヤ汉鍛樺綋鍓嶅�鑸嶇殑鍏ヤ綇澶╂暟锛�
         BigDecimal monthElectricityAmount = waterElectricityInfo.getBigDecimal("ElectricityTotalCost")
                 .divide(days, BigDecimal.ROUND_HALF_UP, BigDecimal.ROUND_HALF_UP)
                 .multiply(waterElectricityInfo.getBigDecimal("MonthDays"));
-        waterElectricityInfo.put("monthElectricityAmount",monthElectricityAmount);
+        waterElectricityInfo.put("monthElectricityAmount",monthElectricityAmount.setScale(2,BigDecimal.ROUND_HALF_UP));
         return waterElectricityInfo;
     }
     public static String convertListToString(Object[] array) {
@@ -123,16 +124,16 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
         billids.removeAll(sess);
         request.setAttribute("billId", convertListToString(sess.toArray()));
         if (null != errs && (!errs.isEmpty())) {
-            this.addBatchMessageTips(errs, "为锁定状态不能更新", batchMessageTipsHeader);
+            this.addBatchMessageTips(errs, "涓洪攣瀹氱姸鎬佷笉鑳芥洿鏂�", batchMessageTipsHeader);
         }
         billids.removeAll(errs);
         if (null != billids && (!billids.isEmpty())) {
-            this.addBatchMessageTips(errs, "为锁定状态不能更新", batchMessageTipsHeader);
+            this.addBatchMessageTips(errs, "涓洪攣瀹氱姸鎬佷笉鑳芥洿鏂�", batchMessageTipsHeader);
         }
     }
     /**
-     * 获取当前宿舍的总入住天数
-     * 宿舍内所有人员当月总入住天数
+     * 鑾峰彇褰撳墠瀹胯垗鐨勬€诲叆浣忓ぉ鏁�
+     * 瀹胯垗鍐呮墍鏈変汉鍛樺綋鏈堟€诲叆浣忓ぉ鏁�
      *
      * @param ctx
      * @param dormitorys
@@ -146,12 +147,12 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
                                                                       Collection<String> dormitorys, LocalDate startPeriodDate, LocalDate endPeriodDate
     ) throws BOSException, SQLException {
 
-        //获取开始时间,结束时间
+        //鑾峰彇寮€濮嬫椂闂达紝缁撴潫鏃堕棿
         String startPeriodDateStr = startPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
         String endPeriodDateStr = endPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
 
         Map<String, Map<String, Object>> occupantsMap = Maps.newHashMap();
-        //处理当月入住天数
+        //澶勭悊褰撴湀鍏ヤ綇澶╂暟
         StringBuilder selCunt = new StringBuilder();
         selCunt.append(" select CFDormitoryID,CFPersonPositionID,CFCheckOutDate,CFCheckInDate from CT_OCC_Occupants ");
         selCunt.append(" where to_char(CFCheckOutDate ,'yyyy-MM-dd') >= '" + startPeriodDateStr + "' ");
@@ -188,7 +189,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
         return occupantsMap;
     }
     /**
-     * 锁定
+     * 閿佸畾
      *
      * @param request
      * @param response
@@ -218,7 +219,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
                 while (rs.next()) {
                     String id = rs.getString("fid");
                     errs.add(id);
-                    this.addBatchMessageTip(id, "已经锁定,不能再次锁定。", batchMessageTipsHeader);
+                    this.addBatchMessageTip(id, "宸茬粡閿佸畾锛屼笉鑳藉啀娆¢攣瀹氥€�", batchMessageTipsHeader);
                 }
                 sess.removeAll(errs);
                 for (String id : sess) {
@@ -228,6 +229,17 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
                         throwables.printStackTrace();
                     }
                 }
+            }else {
+                StringBuilder sel2 = new StringBuilder();
+                sel2.append("select fid from CT_WOE_WaterElectricity where CFStutas!='Lock' ");
+                Set<String> errs = Sets.newHashSet();
+                Set<String> sess = Sets.newHashSet();
+                IRowSet rs = DbUtil.executeQuery(ctx, sel2.toString());
+                while (rs.next()) {
+                    String id = rs.getString("fid");
+                    this.updateStutas(ctx, "enable", id);
+                    sess.add(id);
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -235,7 +247,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
     }
 
     /**
-     * 解锁
+     * 瑙i攣
      *
      * @param request
      * @param response
@@ -265,7 +277,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
                 while (rs.next()) {
                     String id = rs.getString("fid");
                     errs.add(id);
-                    this.addBatchMessageTip(id, "薪资数据已经锁定,不能解锁。", batchMessageTipsHeader);
+                    this.addBatchMessageTip(id, "钖�祫鏁版嵁宸茬粡閿佸畾锛屼笉鑳借В閿併€�", batchMessageTipsHeader);
                 }
                 sess.removeAll(errs);
                 for (String id : sess) {
@@ -275,6 +287,17 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
                         throwables.printStackTrace();
                     }
                 }
+            }else {
+                StringBuilder sel2 = new StringBuilder();
+                sel2.append("select fid from CT_WOE_WaterElectricity where FBillState not in (2,3,4) ");
+                Set<String> errs = Sets.newHashSet();
+                Set<String> sess = Sets.newHashSet();
+                IRowSet rs = DbUtil.executeQuery(ctx, sel2.toString());
+                while (rs.next()) {
+                    String id = rs.getString("fid");
+                    this.updateStutas(ctx, "disable", id);
+                    sess.add(id);
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -313,7 +336,7 @@ public abstract class WaterElectricityBatchListHandler extends CommonBatchListHa
             conn = EJBFactory.getQueryConnection(ctx);
             state = conn.createStatement();
             if ("enable".equals(math)) {
-                //锁定
+                //閿佸畾
                 state.execute("update "+this.getTableName()+" set CFStutas='Lock' where fid='" + uuid + "'");
 
             } else if ("disable".equals(math)) {

+ 19 - 10
websrc/com/kingdee/eas/custom/dormitorysystem/waterelectricity/handler/WaterElectricityListHandler.java

@@ -82,8 +82,8 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
         sel.append(" left join t_bd_person p on pp.FPERSONID = p.fid ");
         sel.append(" left join T_HR_BDEmployeeType bt on bt.fid = p.FEmployeeTypeID ");
         sel.append(" left join CT_DOR_Dormitory dy on ops.CFDormitoryID=dy.fid ");
-        sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFStartDate>='" + startPeriodDateStr + "' ");
-        sel.append(" and wpp.CFEndDate<='" + endPeriodDateStr + "' ");
+        sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFEndDate>='" + startPeriodDateStr + "' ");
+        sel.append(" and wpp.CFStartDate<='" + endPeriodDateStr + "' ");
         sel.append(" left join CT_MAN_WaterPowerMeterReading wpmr on wpmr.CFDormitoryID=ops.CFDormitoryID ");
         sel.append(" and wpmr.CFYears<=ops.CFCheckOutDate ");
         sel.append(" and DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,wpmr.CFYears)+1,0))>= ops.CFCheckInDate ");
@@ -118,7 +118,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
      */
     protected List<Map<String, Object>> getPersonWaterElectricityList(Context ctx,
                                                                       String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids)
-            throws BOSException, SQLException {
+            throws BOSException, SQLException, ShrWebBizException {
 
         StringBuilder sel = this.getPersonWaterElectricitySql(startPeriodDateStr, endPeriodDateStr, billids);
         IRowSet rs = DbUtil.executeQuery(ctx, sel.toString());
@@ -137,6 +137,9 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
             Date startDate = rs.getDate("CFStartDate");//标准开始日期
             Date endDate = rs.getDate("CFEndDate");//标准结束日期
             BigDecimal waterprice = rs.getBigDecimal("CFWaterprice");//水费单价
+            if (null==waterprice){
+                throw new ShrWebBizException("没有找到水费电费标准单据,请在水电定价标准中维护!");
+            }
             BigDecimal electricityprice = rs.getBigDecimal("CFElectricityprice");//电费单价
             String wpmrid = rs.getString("wpmrid");
             Date wpmrStartDate = rs.getDate("wpmrStartDate");
@@ -384,7 +387,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
             String billId = this.getBillId(request);
             String billidStr = this.getBillId(request);
             Set<String> billids = Sets.newHashSet();
-            if(!StringUtils.isEmpty(billidStr)) {
+            if (!StringUtils.isEmpty(billidStr)) {
                 billids.addAll(Arrays.asList(billidStr.split(",")));
             }
             String fastFilterItems = (String) ParseRequestHelper.getParameterByRequest(request, "fastFilterItems");
@@ -397,7 +400,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
                 Map<String, Object> subMap = (Map<String, Object>) bizDateMap.get("values");
                 String periodDate = (String) subMap.get("date");
                 LocalDate startPeriodDate = LocalDate.parse(periodDate, DateTimeFormatter.ISO_LOCAL_DATE);
-                periodDate=periodDate.substring(0,7);
+                periodDate = periodDate.substring(0, 7);
                 Month month = startPeriodDate.getMonth();
                 LocalDate endPeriodDate = LocalDate.of(startPeriodDate.getYear(), month, month.length(startPeriodDate.isLeapYear()));
                 //获取开始时间,结束时间
@@ -420,15 +423,21 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
                 //获取当前宿舍的总入住天数
                 Map<String, Map<String, Object>> occupantsMap = this.getPersonOccupantsList(ctx, dormitorySet, startPeriodDate, endPeriodDate);
                 Map<String, Set<String>> result = this.createUpdateWE(ctx, mapList, param, occupantsMap, "update");
-               this.returnMessage(request, batchMessageTipsHeader, result, billids);
+                this.returnMessage(request, batchMessageTipsHeader, result, billids);
             }
-        } catch (Exception e) {
+
+        } catch (BOSException e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e);
+        } catch (EASBizException e) {
             e.printStackTrace();
+            throw new ShrWebBizException(e);
+        } catch (SQLException e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e);
         }
     }
-
-
-    @Override
+        @Override
     public String getTableName() {
         return TABLENAME;
     }

+ 21 - 5
websrc/com/kingdee/eas/custom/dormitorysystem/waterelectricity/handler/WaterElectricitySpecialListHandler.java

@@ -89,8 +89,8 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
         sel.append(" and ops.CFCheckInDate <=wey.CFEndDate ");
         sel.append(" left join T_HR_BDEmployeeType bt on bt.fid = p.FEmployeeTypeID ");
         sel.append(" left join CT_DOR_Dormitory dy on ops.CFDormitoryID=dy.fid ");
-        sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFStartDate>=wey.CFStartDate ");
-        sel.append(" and wpp.CFEndDate<=wey.CFEndDate ");
+        sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFStartDate<=wey.CFEndDate ");
+        sel.append(" and wey.CFStartDate<=wpp.CFEndDate ");
 //        sel.append(" left join CT_MAN_WaterPowerMeterReading wpmr on wpmr.CFDormitoryID=ops.CFDormitoryID ");
 //        sel.append(" and wpmr.CFYears<=ops.CFCheckOutDate ");
 //        sel.append(" and DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,wpmr.CFYears)+1,0))>= ops.CFCheckInDate ");
@@ -122,7 +122,7 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
      */
     protected List<Map<String, Object>> getPersonWaterElectricityList(Context ctx,
                                                                       String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids)
-            throws BOSException, SQLException {
+            throws BOSException, SQLException, ShrWebBizException {
 
         StringBuilder sel = this.getPersonWaterElectricitySql(startPeriodDateStr, endPeriodDateStr, billids);
         IRowSet rs = DbUtil.executeQuery(ctx, sel.toString());
@@ -141,6 +141,9 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
             Date startDate = rs.getDate("CFStartDate");//标准开始日期
             Date endDate = rs.getDate("CFEndDate");//标准结束日期
             BigDecimal waterprice = rs.getBigDecimal("CFWaterprice");//水费单价
+            if (null==waterprice){
+                throw new ShrWebBizException("没有找到水费电费标准单据,请在水电定价标准中维护!");
+            }
             BigDecimal electricityprice = rs.getBigDecimal("CFElectricityprice");//电费单价
             String wpmrid = rs.getString("wpmrid");
             Date wpmrStartDate = rs.getDate("wpmrStartDate");
@@ -240,9 +243,15 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
             logger.error("结果:" + JSONUtils.convertObjectToJson(ctx, result));
             this.returnMessage(request, batchMessageTipsHeader, result, billids);
 
-        } catch (Exception e) {
+        } catch (BOSException e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e);
+        } catch (EASBizException e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e);
+        } catch (SQLException e) {
             e.printStackTrace();
-            logger.error(e.getMessage(), e);
+            throw new ShrWebBizException(e);
         }
     }
 
@@ -310,6 +319,8 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
             waterElectricityInfo.setAdminOrg(adminOrgUnitInfo);
             waterElectricityInfo.setBizDate(checkInDate);
             waterElectricityInfo.setLeaveDate(checkOutDate);
+            waterElectricityInfo.put("curMonthWater",curMonthWater);
+            waterElectricityInfo.put("curMonthElecDegrees",curMonthElecDegrees);
             DormitoryInfo dormitoryInfo = new DormitoryInfo();
             dormitoryInfo.setId(BOSUuid.read(dormitoryID));
             waterElectricityInfo.setDormitory(dormitoryInfo);
@@ -346,6 +357,11 @@ public class WaterElectricitySpecialListHandler extends WaterElectricityBatchLis
                 } else if (null != id) {
                     errs.add(id.toString());
                 }
+            }else {
+                if (WaterElectricityStutas.UnLock.equals(waterElectricityInfo.getStutas())) {
+                    IObjectPK pk = we.save(waterElectricityInfo);
+                    sess.add(pk.toString());
+                }
             }
             index++;
         }