Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceForm.js (revision 17478) @@ -0,0 +1,132 @@ +var windowObj; //窗口 +var formObj; //表单 + +var myMask; +/** + * 发货汇总单查询 + */ +function deliverySummary() { + var dt = new Date(); + var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; + + var deliverySummaryTreePanel = new top.Ext.tree.ColumnTree({ + rootVisible : false, + autoScroll : true, + title : '发货器械包汇总', + width : '100%', + height : 340, + frame : false, + bodyStyle : 'border:1px solid #afd7af', + columns : [{ + header:'器械包名称/科室', width:230, dataIndex:'tousseNameOrDepartMent' + },{ + header:'流水号', width:100, dataIndex:'serialNumber' + },{ + header:'数量', width:70, dataIndex:'amount' + }], + loader : new top.Ext.tree.TreeLoader({ + url : WWWROOT + '/disinfectSystem/invoiceAction!loadDeliverySummaryInfo.do', + baseParams : { + startDate : Ext.util.Format.date(startDayofMonth, 'Y-m-d H:i'), + endDate : Ext.util.Format.date(dt, 'Y-m-d H:i') + }, + uiProviders:{ + 'col': top.Ext.tree.ColumnNodeUI + } + }), + root: new top.Ext.tree.AsyncTreeNode({ + id : '0', + text:'发货器械包汇总' + }) + }); + + formObj = new top.Ext.FormPanel({ + frame : true, + labelSeparator : ':', + bodyStyle : 'padding:5px 5px 0px 5px', + labelWidth : 100, + labelAlign : 'right', + buttons : [{ + text : '查询', + handler : function() { + if (!formObj.getForm().isValid()) { + showResult('请正确填写表单各值'); + return false; + } + + var loader = deliverySummaryTreePanel.getLoader(); + var startDate = Ext.util.Format.date(top.Ext.getCmp('startDate').getValue(), 'Y-m-d H:i'); + var endDate = Ext.util.Format.date(top.Ext.getCmp('endDate').getValue(), 'Y-m-d H:i'); + loader.baseParams.startDate = startDate; + loader.baseParams.endDate = endDate; + myMask = new top.Ext.LoadMask(top.Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + loader.load(deliverySummaryTreePanel.root, function() { + myMask.hide(); + var length = deliverySummaryTreePanel.root.childNodes.length; + if (length <= 0) { + showResult('没有数据!'); + } + }); + } + },{ + text : '取消', + handler : function() { + windowObj.close(); + } + }], + items : [{ + xtype : 'fieldset', + title : '查询时间段', + height : 50, + layout : 'column', + items : [{ + columnWidth : .5, + layout : 'form', + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '开始时间', + id : 'startDate', + name : 'startDate', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + selectOnFocus :true, + format : 'Y-m-d H:i', + allowBlank : false, + value : startDayofMonth, + anchor : '100%' + }] + },{ + columnWidth : .5, + layout : 'form', + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '结束时间', + id : 'endDate', + name : 'endDate', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + selectOnFocus :true, + format : 'Y-m-d H:i', + allowBlank : false, + value : dt, + anchor : '100%' + }] + }] + },deliverySummaryTreePanel] + }); + + windowObj = new top.Ext.Window({ + layout : 'fit', + title : '发货汇总单查看', + width : 700, + height : 500, + resizable :false, + modal : true, + border : false, + plain : true, + items : formObj + }); + windowObj.show(); +} \ No newline at end of file Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r17433 -r17478 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 17433) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 17478) @@ -530,7 +530,7 @@ jsonArray.addAll(notTimeoutJsonArray); @SuppressWarnings("unchecked") Iterator it = jsonArray.iterator(); - while (it.hasNext()) { + while (it.hasNext()) { //去掉装载物品数量为0的篮筐 JSONObject jsonObject = it.next(); if (jsonObject.containsKey("objAmount")) { int amount = jsonObject.getInt("objAmount"); Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js =================================================================== diff -u -r17264 -r17478 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 17264) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 17478) @@ -2070,6 +2070,13 @@ }); } } + },{ + text : '发货汇总单查看', + hidden : !sstsConfig.enableDeliverySummaryView, + iconCls : 'btn_ext_application_go', + handler : function() { + deliverySummary(); + } } /*, { text : '修改时间', Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java =================================================================== diff -u -r17238 -r17478 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 17238) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 17478) @@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException; import java.lang.reflect.Type; import java.net.URLDecoder; +import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -13,8 +14,10 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -44,7 +47,6 @@ import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; -import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodBatchStockManager; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; @@ -53,7 +55,6 @@ import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; -import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; @@ -1895,4 +1896,66 @@ vo.setTousseInstancesBelongToThisComboTousse(tousseInstancesBelongToThisComboTousse); } } + /** + * 加载发货汇总信息 + */ + public void loadDeliverySummaryInfo() { + String startDate = StrutsParamUtils.getPraramValue("startDate", ""); + String endDate = StrutsParamUtils.getPraramValue("endDate", ""); + if (StringTools.isNotBlank(startDate) + && StringTools.isNotBlank(endDate)) { + String betweenSql= dateQueryAdapter.dateAreaSql("i.sendTime", startDate, endDate); + + String sql = String.format("select ti.tousseName,i.depart,i.serialNumber,count(*) amount from invoice i join TousseInstance ti on ti.invoice_id=i.id where %s group by ti.tousseName,i.depart,i.serialNumber", + betweenSql); + + ResultSet result = objectDao.executeSql(sql); + JSONArray array = new JSONArray(); + Map> childrensMap = new HashMap>(); + Map amountMap = new HashMap(); + try { + while(result.next()){ + JSONObject children = new JSONObject(); + String tousseName = StringTools.defaultString(result.getString("tousseName")); + String depart = StringTools.defaultString(result.getString("depart")); + String serialNumber = StringTools.defaultString(result.getString("serialNumber")); + Integer amount = result.getInt("amount"); + + children.put("tousseNameOrDepartMent", depart); + children.put("serialNumber", serialNumber); + children.put("amount", amount); + children.put("leaf", true); + children.put("uiProvider", "col"); + children.put("iconCls", "task"); + LinkedList childrens = childrensMap.get(tousseName); + if (childrens == null) { + childrens = new LinkedList(); + childrensMap.put(tousseName, childrens); + } + childrens.add(children); + + Integer childrenAmount = amountMap.get(tousseName); + amountMap.put(tousseName, childrenAmount == null ? amount : childrenAmount + amount); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + + for (Entry entry : amountMap.entrySet()) { + JSONObject obj = new JSONObject(); + String tousseName = entry.getKey(); + Integer amount = entry.getValue(); + obj.put("tousseNameOrDepartMent", tousseName); + obj.put("amount", amount); + obj.put("children", childrensMap.get(tousseName)); + obj.put("uiProvider", "col"); + obj.put("iconCls", "task-folder"); + array.add(obj); + } + + StrutsResponseUtils.output(array); + } + } } Index: ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js =================================================================== diff -u -r17462 -r17478 --- ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 17462) +++ ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 17478) @@ -49,5 +49,7 @@ // 发货计划列表日期条件的格式 年-月-日 时:分 timeSearchFmt: 'Y-m-d H:i', //在pda中是否选择灭菌炉分组进入对应分组的灭菌列表 - selectSterilizerGroupInPDA : true + selectSterilizerGroupInPDA : true, + //启用发货汇总单查看功能 + enableDeliverySummaryView : true } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp =================================================================== diff -u -r14652 -r17478 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp (.../invoiceView.jsp) (revision 14652) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp (.../invoiceView.jsp) (revision 17478) @@ -37,6 +37,7 @@ +