Index: ssts-web/src/main/webapp/js/extUtils.js =================================================================== diff -u -r20023 -r21721 --- ssts-web/src/main/webapp/js/extUtils.js (.../extUtils.js) (revision 20023) +++ ssts-web/src/main/webapp/js/extUtils.js (.../extUtils.js) (revision 21721) @@ -7,7 +7,13 @@ if(typeof(store) != 'undefined' && store != null){ var count = store.getCount(); for(var i = 0;i < count;++i){ - items.push(store.getAt(i).data); + var record = store.getAt(i); + var data = record.data; + data.recordProperties = { + dirty: record.dirty, + modified: record.modified + } + items.push(data); } } return items; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js =================================================================== diff -u -r21207 -r21721 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 21207) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 21721) @@ -237,6 +237,7 @@ {name : 'name'}, {name : 'sequence'}, {name : 'newSequence'}, + {name : 'disposablePriceFluctuation'}, {name : 'spell'} ] }); @@ -430,6 +431,25 @@ width : 220, menuDisabled : true },{ + header : "一次性物品价格浮动系数", + dataIndex : 'disposablePriceFluctuation', + width : 220, + menuDisabled : true, + hidden :true, + editor : new Ext.form.NumberField({ + allowBlank : true, + allowNegative : false, + minValue :0.0001, + decimalPrecision: 4, + style : 'text-align: left', + allowDecimals : true, + listeners : { + focus : function(thiz){ + thiz.selectText(); + } + } + }) + },{ header : "拼音", id : 'spell', dataIndex : 'spell', Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java =================================================================== diff -u -r21081 -r21721 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 21081) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 21721) @@ -3,6 +3,8 @@ */ package com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig; +import java.math.BigDecimal; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -153,6 +155,7 @@ private String bigPackageSterilizerType;// 超大超重外来拆分包灭菌方式 private double diposablePriceFluctuation = 1; + private BigDecimal disposablePriceFluctuation = new BigDecimal(1); /** * 器械包浮动价格系数 @@ -411,6 +414,26 @@ this.diposablePriceFluctuation = diposablePriceFluctuation; } + @Column(precision = 19, scale = 4) + public BigDecimal getDisposablePriceFluctuation() { + return disposablePriceFluctuation; + } + + public void setDisposablePriceFluctuation(BigDecimal disposablePriceFluctuation) { + if(disposablePriceFluctuation != null && disposablePriceFluctuation.scale()>4){ + disposablePriceFluctuation = disposablePriceFluctuation.setScale(4,BigDecimal.ROUND_HALF_UP); + } + this.disposablePriceFluctuation = disposablePriceFluctuation; + } + @Transient + public String getDisposablePriceFluctuationForDisplay() { + if(disposablePriceFluctuation == null){ + return null; + } + + return disposablePriceFluctuation.toString(); + } + /** * 获取器械包的浮动价格系数。不要直接调用这个方法,改为调用{@link com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager#getTousseFluctuationPercent()}。 * 计算器械包浮动价格,可以调用{@link com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager#getTousseFluctuationPrice(double)} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r21081 -r21721 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 21081) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 21721) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.action; import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -610,6 +611,9 @@ String name = JSONUtil.optString(obj, "name", ""); Integer sequence = JSONUtil.optInteger(obj, "sequence", null); Integer newSequence = JSONUtil.optInteger(obj, "newSequence", null); + String disposablePriceFluctuation = JSONUtil.optString(obj, "disposablePriceFluctuation", null); + JSONObject recordProperties = obj.optJSONObject("recordProperties"); + boolean dirty = JSONUtil.optBoolean(recordProperties, "dirty", false); if (!DatabaseUtil.isPoIdValid(id)) { SupplyRoomConfig supplyRoomConfig = new SupplyRoomConfig(); supplyRoomConfig.setOrgUnitCoding(departId); @@ -618,9 +622,12 @@ supplyRoomConfig.setWbCode(GB2WB.getWBCode(name)); supplyRoomConfig.setSupplyRoomType(supplyRoomType); supplyRoomConfig.setSequence(newSequence); + if(StringUtils.isNotBlank(disposablePriceFluctuation)){ + supplyRoomConfig.setDisposablePriceFluctuation(new BigDecimal(disposablePriceFluctuation)); + } supplyRoomConfigToSave.add(supplyRoomConfig); } else { - if(newSequence != null && !newSequence.equals(sequence)){ + if((newSequence != null && !newSequence.equals(sequence)) || dirty){ // 序号有修改 supplyRoomConfigToUpdate.add(obj); } @@ -686,7 +693,11 @@ // 目前只能修改sequence Long id = JSONUtil.optLong(obj, "id", null); Integer newSequence = JSONUtil.optInteger(obj, "newSequence", null); - String sql = String.format("update %s set sequence=%s where id=%s", SupplyRoomConfig.class.getSimpleName(),newSequence,id); + String disposablePriceFluctuation = JSONUtil.optString(obj, "disposablePriceFluctuation", null); + if(StringUtils.isBlank(disposablePriceFluctuation)){ + disposablePriceFluctuation = null; + } + String sql = String.format("update %s set sequence=%s,disposablePriceFluctuation=%s where id=%s ", SupplyRoomConfig.class.getSimpleName(),newSequence,disposablePriceFluctuation,id); objectDao.executeUpdate(sql); } } @@ -722,8 +733,10 @@ //保存对应注册证的预警时间 for(RegistrationCertification rc : registrationCertification){ Date validityTime = rc.getValidityTime(); - Calendar now = Calendar.getInstance(); - now.setTime(validityTime); + Calendar now = Calendar.getInstance(); + if(validityTime != null){ + now.setTime(validityTime); + } now.set(Calendar.DATE, now.get(Calendar.DATE) - supplierCertificationExpTime); //有效日期减去需要提前预警的天数等于预警时间 rc.setWarningUntil(now.getTime()); objectDao.saveOrUpdate(rc); @@ -1483,6 +1496,7 @@ obj.put("name", supplyRoomConfig.getOrgUnitName()); obj.put("sequence", supplyRoomConfig.getSequence()); obj.put("spell", supplyRoomConfig.getSpelling()); + obj.put("disposablePriceFluctuation", supplyRoomConfig.getDisposablePriceFluctuationForDisplay()); jsonArray.add(obj); }