Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualitymonitoringConfigView.js
===================================================================
diff -u -r14164 -r14229
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualitymonitoringConfigView.js (.../qualitymonitoringConfigView.js) (revision 14164)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualitymonitoringConfigView.js (.../qualitymonitoringConfigView.js) (revision 14229)
@@ -96,7 +96,8 @@
{name : 'name'},
{name : 'type'},
{name : 'requirement'},
- {name : 'options'}
+ {name : 'options'},
+ {name : 'statisticsItems'}
]);
var QualityMonitoringItemValueRecord = Ext.data.Record.create([
@@ -162,9 +163,9 @@
for ( var i = 0; i < top.Ext.getCmp('qualityMonitoringItemGrid').getStore().getCount(); i++) {
var record = top.Ext.getCmp('qualityMonitoringItemGrid').getStore().getAt(i);
if (items == null) {
- items = record.get('id') + '@%' + record.get('name') + '@%' + record.get('type') + '@%' + record.get('requirement')+ '@%' + record.get('options') + '@%' + (i+1);
+ items = record.get('id') + '@%' + record.get('name') + '@%' + record.get('type') + '@%' + record.get('requirement')+ '@%' + record.get('options') + '@%' + (i+1) + '@%' + record.get('statisticsItems');
} else {
- items += "#%" + record.get('id') + '@%' + record.get('name') + '@%' + record.get('type') + '@%' + record.get('requirement')+ '@%' + record.get('options') + '@%' + (i+1);
+ items += "#%" + record.get('id') + '@%' + record.get('name') + '@%' + record.get('type') + '@%' + record.get('requirement')+ '@%' + record.get('options') + '@%' + (i+1) + '@%' + record.get('statisticsItems');
}
}
top.Ext.getCmp('qualityMonitoringItems').setValue(items);
@@ -197,6 +198,37 @@
return html;
}
+function addStatisticsItem(option){
+ var index = top.Ext.getCmp('qualityMonitoringItemGrid').getStore().find('name',top.Ext.getCmp('name').getValue());
+ if(index != -1){
+ var optionRecord = top.Ext.getCmp('qualityMonitoringItemGrid').getStore().getAt(index);
+ var stItems = optionRecord.get('statisticsItems');
+ if( stItems == null || stItems == ""){
+ optionRecord.set('statisticsItems',option);
+ }else if( stItems.indexOf(option) == -1 ){
+ optionRecord.set('statisticsItems',stItems + ',' + option);
+ }
+ }
+}
+
+function delStatisticsItem(option){
+ var index = top.Ext.getCmp('qualityMonitoringItemGrid').getStore().find('name',top.Ext.getCmp('name').getValue());
+ if(index != -1){
+ var optionRecord = top.Ext.getCmp('qualityMonitoringItemGrid').getStore().getAt(index);
+ var stItems = optionRecord.get('statisticsItems');
+ if(stItems != null){
+ var index = stItems.indexOf(option);
+ if(stItems == option){
+ optionRecord.set('statisticsItems',"");
+ }else if(index == 0){
+ optionRecord.set('statisticsItems',stItems.replace(option + ',',""));
+ }else if( index > 0){
+ optionRecord.set('statisticsItems',stItems.replace(',' + option,""));
+ }
+
+ }
+ }
+}
function addQualityMonitoringItems(id) {
var formPanel = new top.Ext.FormPanel({
id : 'addQualityMonitoringForm',
@@ -364,13 +396,14 @@
{name : 'name'},
{name : 'type'},
{name : 'requirement'},
- {name : 'options'}
+ {name : 'options'},
+ {name : 'statisticsItems'}
]
})
}),
bodyStyle : 'border:1px solid #afd7af',
cm : new top.Ext.grid.ColumnModel([
- {header : "名称",dataIndex : 'name',width : 250,sortable : true},
+ {header : "名称",dataIndex : 'name',width : 100,sortable : true},
{header : "类型",width : 50,dataIndex : 'type'},
{header : "必要性",width : 50,dataIndex : 'requirement'},
{header : "删除",dataIndex : 'operationButton',width : 35,
@@ -382,6 +415,7 @@
" \">";
return str;
}},
+ {header : "统计项",dataIndex : 'statisticsItems',width : 150},
{header: "排序操作", width: 80, dataIndex: 'id', renderer : moveUpDown, sortable: false, menuDisabled: true}
]),
width : 491,
@@ -498,7 +532,7 @@
layout : 'form',
labelWidth : 50,
buttonAlign : 'center',
- items:[new top.Ext.grid.GridPanel({
+ items:[new top.Ext.grid.EditorGridPanel({
id : 'itemValueGrid',
buttonAlign : 'center',
store : new top.Ext.data.Store({
@@ -510,7 +544,7 @@
}),
bodyStyle : 'border:1px solid #afd7af',
cm : new Ext.grid.ColumnModel([
- {header : "监测项名称",dataIndex : 'option',width : 390},
+ {header : "监测项名称",dataIndex : 'option',width : 300},
{header : "删除",dataIndex : 'operationButton',width : 35,
renderer : function(v, p, record){
var str = "
";
return str;
- }}
+ }},
+ {header : "增减统计项",dataIndex : 'option',width : 70,
+ renderer : function(v, p, record){
+ var qualityConfigName = top.Ext.getCmp('qualityConfigName').getValue();
+ var qualityConfigItemName = top.Ext.getCmp('name').getValue();
+ if("器械清洗不合格" == qualityConfigName){
+ if("部位" == qualityConfigItemName || "评估方法" == qualityConfigItemName){
+ var html = '';
+ html += '
';
+ html += '';
+ html += '
';
+ return html;
+ }
+ }
+ }}
]),
tbar : [{
text : '监测项名称:'
@@ -644,7 +692,8 @@
name : items[i].name,
type : items[i].type,
requirement : items[i].requirement,
- options : items[i].options
+ options : items[i].options,
+ statisticsItems : items[i].statisticsItems
});
top.Ext.getCmp('qualityMonitoringItemGrid').getStore().add(itemRecord);
}
Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/service/QualityMonitoringConfigManagerImpl.java
===================================================================
diff -u -r12331 -r14229
--- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/service/QualityMonitoringConfigManagerImpl.java (.../QualityMonitoringConfigManagerImpl.java) (revision 12331)
+++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/service/QualityMonitoringConfigManagerImpl.java (.../QualityMonitoringConfigManagerImpl.java) (revision 14229)
@@ -75,6 +75,10 @@
String requirement = item.split("@%")[3];
String options = item.split("@%")[4];
String orderNumber = item.split("@%")[5];
+ String statisticsItems = null;
+ if( item.split("@%").length > 6){
+ statisticsItems = item.split("@%")[6];
+ }
QualityMonitoringItem qualityMonitoringItem = null;
if (StringUtils.isNotBlank(itemId)
&& !StringUtils.equals(itemId, "0")) {
@@ -88,7 +92,9 @@
|| !StringUtils.equals(requirement,
qualityMonitoringItem.getRequirement())
|| !StringUtils.equals(options,
- qualityMonitoringItem.getOptions())) {
+ qualityMonitoringItem.getOptions())
+ || !StringUtils.equals(statisticsItems,
+ qualityMonitoringItem.getStatisticsItems())) {
qualityMonitoringItem.setDeleted(1);
objectDao.saveOrUpdate(qualityMonitoringItem);
qualityMonitoringItem = new QualityMonitoringItem();
@@ -103,6 +109,7 @@
qualityMonitoringItem.setOptions(options);
qualityMonitoringItem.setOrderNumber(Integer
.valueOf(orderNumber));
+ qualityMonitoringItem.setStatisticsItems(statisticsItems);
addList.add(qualityMonitoringItem);
}
}
Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java
===================================================================
diff -u -r14188 -r14229
--- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14188)
+++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14229)
@@ -4818,21 +4818,26 @@
String startDay, String endDay) {
List list = new ArrayList();
-
- if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
+ // 获取部位统计项
+ String positions = getStatisticsItems("部位");
+ if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay) && StringUtils.isNotBlank(positions)) {
Integer totalAmount = 0;
- // 获取齿缝清洗不合格数量
- totalAmount += getSlotInfo(list, startDay, endDay);
- // 获取轴节清洗不合格数量
- totalAmount += getAxisInfo(list, startDay, endDay);
- // 获取卷边和凹边清洗不合格数量
- totalAmount += getRollAndDententInfo(list, startDay, endDay);
- // 获取螺丝清洗不合格数量
- totalAmount += getScrewInfo(list, startDay, endDay);
- // 获取刃面清洗不合格数量
- totalAmount += getTheCrucialPointInfo(list, startDay, endDay);
- // 获取表面清洗不合格数量
- totalAmount += getFaceInfo(list, startDay, endDay);
+ String[] ps = positions.split(",");
+ for(String position : ps){
+ totalAmount += getPositionInfo(list, startDay, endDay,position);
+ }
+// // 获取齿缝清洗不合格数量
+// totalAmount += getSlotInfo(list, startDay, endDay);
+// // 获取轴节清洗不合格数量
+// totalAmount += getAxisInfo(list, startDay, endDay);
+// // 获取卷边和凹边清洗不合格数量
+// totalAmount += getRollAndDententInfo(list, startDay, endDay);
+// // 获取螺丝清洗不合格数量
+// totalAmount += getScrewInfo(list, startDay, endDay);
+// // 获取刃面清洗不合格数量
+// totalAmount += getTheCrucialPointInfo(list, startDay, endDay);
+// // 获取表面清洗不合格数量
+// totalAmount += getFaceInfo(list, startDay, endDay);
if (totalAmount.intValue() != 0) {
for (MaterialWashUnqualifiedPosition bean : list) {
bean.setPercentage(new BigDecimal(bean.getAmount()
@@ -4847,7 +4852,40 @@
return list;
}
+ // 获取清洗部位不合格数量
+ private Integer getPositionInfo(List list,
+ String startDay, String endDay,String position) {
+ if(StringUtils.isBlank(position))
+ return 0;
+ String sql = "select sum(qm.amount) from qualitymonitoring qm,QualityMonitoringAnswer qma"
+ + " where qm.id = qma.qualitymonitoring_id"
+ + " and qma.questionname = '部位'"
+ + " and qm.inspectitem like '%器械清洗不合格%'"
+ + " and qm.type = '质量监测'"
+ + " and qma.answer like '%" + position + "%'"
+ + " and qm.datetime between "
+ + dateQueryAdapter.dateAdapter(startDay)
+ + " and "
+ + dateQueryAdapter.dateAdapter(endDay);
+
+ MaterialWashUnqualifiedPosition bean = new MaterialWashUnqualifiedPosition();
+ bean.setAnswerName(position);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+ Date dateInfo = null;
+ try {
+ dateInfo = sdf.parse(startDay);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(dateInfo);
+ String title = sdf.format(calendar.getTime());
+ title = "器械材料清洗不合格率部位数量统计 (" + title + ")";
+ bean.setDateInfo(title);
+ ResultSet rs = objectDao.executeSql(sql);
+ return getWashData(list, rs, bean, 0);
+ }
// 获取表面清洗不合格数量
private Integer getFaceInfo(List list,
String startDay, String endDay) {
@@ -5065,19 +5103,24 @@
String startDay, String endDay) {
List list = new ArrayList();
-
- if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
+ // 获取评估方法统计项
+ String statisticsItems = getStatisticsItems("评估方法");
+ if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay) && StringUtils.isNotBlank(statisticsItems)) {
Integer totalAmount = 0;
- // 获取水迹评估数量
- totalAmount += getWaterMarkInfo(startDay, endDay, list);
- // 获取锈迹评估数量
- totalAmount += getRustInfo(startDay, endDay, list);
- // 获取血迹评估数量
- totalAmount += getBloodstainInfo(startDay, endDay, list);
- // 获取污渍评估数量
- totalAmount += getBesmirchInfo(startDay, endDay, list);
- // 获取附着物评估数量
- totalAmount += getAttachmentInfo(startDay, endDay, list);
+ String[] items = statisticsItems.split(",");
+ for(String item : items){
+ totalAmount += getAssessMethodInfo(item,startDay, endDay, list);
+ }
+// // 获取水迹评估数量
+// totalAmount += getWaterMarkInfo(startDay, endDay, list);
+// // 获取锈迹评估数量
+// totalAmount += getRustInfo(startDay, endDay, list);
+// // 获取血迹评估数量
+// totalAmount += getBloodstainInfo(startDay, endDay, list);
+// // 获取污渍评估数量
+// totalAmount += getBesmirchInfo(startDay, endDay, list);
+// // 获取附着物评估数量
+// totalAmount += getAttachmentInfo(startDay, endDay, list);
if (totalAmount.intValue() != 0) {
for (MaterialWashUnqualifiedPosition bean : list) {
@@ -5095,7 +5138,41 @@
return list;
}
+ // 获取评估方法统计项信息
+ private Integer getAssessMethodInfo(String itemName,String startDay, String endDay,
+ List list) {
+ if(StringUtils.isBlank(itemName))
+ return 0;
+ String sql = "select sum(qm.amount) from qualitymonitoring qm,QualityMonitoringAnswer qma"
+ + " where qm.id = qma.qualitymonitoring_id"
+ + " and qma.questionname = '评估方法'"
+ + " and qm.inspectitem like '%器械清洗不合格%'"
+ + " and qm.type = '质量监测'"
+ + " and qma.answer like '%" + itemName + "%'"
+ + " and qm.datetime between "
+ + dateQueryAdapter.dateAdapter(startDay)
+ + " and "
+ + dateQueryAdapter.dateAdapter(endDay);
+
+ MaterialWashUnqualifiedPosition bean = new MaterialWashUnqualifiedPosition();
+ bean.setAnswerName(itemName);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+ Date dateInfo = null;
+ try {
+ dateInfo = sdf.parse(startDay);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(dateInfo);
+ String title = sdf.format(calendar.getTime());
+ title = "器械材料清洗不合格率评估方法数量统计 (" + title + ")";
+ bean.setDateInfo(title);
+ ResultSet rs = objectDao.executeSql(sql);
+ return getWashData(list, rs, bean, 0);
+ }
+
/**
* 获取器械清洗不合格附着物数量
*
@@ -8670,5 +8747,32 @@
data.setMaterialType("合计");
list.add(data);
}
-
+ /**
+ * 获取的统计项
+ * @return
+ */
+ public String getStatisticsItems(String qualityConfigItemName){
+ // 器械清洗不合格的评估方法和部位统计项
+ if(StringUtils.isBlank(qualityConfigItemName))
+ return null;
+ String sql = "select qmi.statisticsItems statisticsItems from QualityMonitoringItem qmi ,QualityMonitoringConfig qmc "
+ + " where qmi.qualityMonitoringConfig_id = qmc.id "
+ + " and qmc.name like '%器械清洗不合格%' "
+ + " and qmi.deleted = 0 "
+ + " and qmi.name like '%" + qualityConfigItemName + "%' " ;
+ String statisticsItems = null;
+ ResultSet rs = objectDao.executeSql(sql);
+ if(rs!=null){
+ try{
+ while (rs.next()) {
+ statisticsItems = rs.getString("statisticsItems");
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ DatabaseUtil.closeResultSetAndStatement(rs);
+ }
+ }
+ return statisticsItems;
+ }
}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringItem.java
===================================================================
diff -u -r14012 -r14229
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringItem.java (.../QualityMonitoringItem.java) (revision 14012)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringItem.java (.../QualityMonitoringItem.java) (revision 14229)
@@ -31,6 +31,8 @@
public final static String TYPE_TEXTAREA = "文本框";
private String options; // 单选或者多选的值
+
+ private String statisticsItems; // 统计项
private Integer orderNumber; // 顺序
@@ -45,7 +47,14 @@
public void setId(Long id) {
this.id = id;
}
+ public String getStatisticsItems() {
+ return statisticsItems;
+ }
+ public void setStatisticsItems(String statisticsItems) {
+ this.statisticsItems = statisticsItems;
+ }
+
public String getName() {
return name;
}