Index: ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.js =================================================================== diff -u -r14501 -r15567 --- ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.js (.../returnGoodsRecordView.js) (revision 14501) +++ ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.js (.../returnGoodsRecordView.js) (revision 15567) @@ -244,7 +244,26 @@ v = "0" + v; } var startDayOfMonth = dt.getFullYear() + "/" + v + "/01"; - var form = new Ext.Panel({ + + var goodStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseAndDiposableGoods.do?showUnAppDiposableGoods=true', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'spelling',mapping : 'spelling'}, + {name : 'name',mapping : 'name'}, + {name : 'displayName',mapping : 'displayName'}, + {name : 'tousseType',mapping : 'tousseType'}, + {name : 'type',mapping : 'type'} + ]) + }); + + /*var form = new Ext.Panel({ layout : 'table', frame : true, region : 'north', @@ -269,21 +288,7 @@ valueField : 'id', displayField : 'displayName', width : 600, - store : new Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseAndDiposableGoods.do?showUnAppDiposableGoods=true', - method : 'POST' - }), - reader : new Ext.data.JsonReader({ - totalProperty : 'totalCount', - root : 'data' - }, [ - {name : 'id',mapping : 'id'}, - {name : 'spelling',mapping : 'spelling'}, - {name : 'name',mapping : 'name'}, - {name : 'displayName',mapping : 'displayName'} - ]) - }), + store : goodStore, forceSelection : true, lazyInit : true, triggerAction : 'all', @@ -293,6 +298,7 @@ anchor : '97%', listeners : { select : function(combo, record, index) { + var id = record.get('id'); Ext.getCmp('code').setValue(record.data.name); } } @@ -359,11 +365,14 @@ }] }] }] - }); - + });*/ + + + var queryForm = new TBarForm(goodStore).initForm(); + var viewport = new Ext.Viewport({ layout : 'border', - items : [form,{ + items : [queryForm,{ region : 'center', margins : '0 0 0 0', layout : 'fit', Index: forgon-core/src/main/java/com/forgon/search/service/TBarFilterManager.java =================================================================== diff -u -r15440 -r15567 --- forgon-core/src/main/java/com/forgon/search/service/TBarFilterManager.java (.../TBarFilterManager.java) (revision 15440) +++ forgon-core/src/main/java/com/forgon/search/service/TBarFilterManager.java (.../TBarFilterManager.java) (revision 15567) @@ -4,6 +4,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import javax.annotation.Resource; import java.text.ParseException; import java.util.Map; @@ -16,6 +17,9 @@ protected Logger logger = Logger.getLogger(this.getClass()); + @Resource + protected DateQueryAdapter dateQueryAdapter; + /** * 统一条件过滤入口,根据页面传过来的参数,来拼接好需要过滤的条件sql * @@ -26,14 +30,22 @@ /** + * 根据关键字搜索(实际是根据关键字对应物品的id和类型来搜索) + * + * @param sqlWhereParamMap dwr传过来的参数 + * @param sql 需要拼接的sql + */ + public abstract void createKeyWordFilterSql(Map sqlWhereParamMap, StringBuilder sql); + + + /** * 通用的根据时间搜索(即大于开始时间且小于结束时间) * * @param sqlWhereParamMap dwr传过来的参数 * @param sql 需要拼接的sql * @param poTimeProperty 对应po类的时间属性名 - * @param dateQueryAdapter */ - public void createTimeFilterSql(Map sqlWhereParamMap, StringBuilder sql, String poTimeProperty, DateQueryAdapter dateQueryAdapter) { + public void createTimeFilterSql(Map sqlWhereParamMap, StringBuilder sql, String poTimeProperty) { try { String startTime = sqlWhereParamMap.get("startDate"); String endTime = sqlWhereParamMap.get("endDate"); Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java =================================================================== diff -u -r15035 -r15567 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java (.../ReturnGoodsRecordTableManager.java) (revision 15035) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java (.../ReturnGoodsRecordTableManager.java) (revision 15567) @@ -3,6 +3,7 @@ import java.util.List; import java.util.Map; +import com.forgon.search.service.TBarFilterManager; import org.apache.commons.lang.StringUtils; import com.forgon.component.grid.GridManager; @@ -18,6 +19,8 @@ import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.tools.MathTools; +import javax.annotation.Resource; + /** * @author panhaowen * @@ -34,6 +37,9 @@ private DateQueryAdapter dateQueryAdapter; private SupplyRoomConfigManager supplyRoomConfigManager; + + @Resource(name = "returnGoodsRecordTableFilterManagerImpl") + private TBarFilterManager returnGoodsRecordTableFilterManagerImpl; public void setSupplyRoomConfigManager( SupplyRoomConfigManager supplyRoomConfigManager) { @@ -58,62 +64,13 @@ this.dateQueryAdapter = dateQueryAdapter; } - public String findReturnGoodsRecordTableList( - Map> parameterMap) { - String sql = "where 1=1"; - Map sqlWhereParamMap = gridManager - .getParamFromView(parameterMap); - String searchAll = sqlWhereParamMap.get("searchAll"); - String keyWord = sqlWhereParamMap.get("keyWord"); - int codeIndex = keyWord.lastIndexOf("["); - String specification = ""; - if (StringUtils.isNotBlank(keyWord) && keyWord.lastIndexOf("[") != -1) { - specification = keyWord.substring(codeIndex + 1, - keyWord.length() - 1); - keyWord = keyWord.substring(0, codeIndex); - } - String startDate = sqlWhereParamMap.get("startDate"); - String endDate = sqlWhereParamMap.get("endDate"); - if (StringUtils.isNotBlank(keyWord)) { - if (StringUtils.isNotBlank(specification)) { - sql += " and po.id in (select rgi.returnGoodsRecord.id from " - + ReturnGoodsItem.class.getName() - + " rgi inner join rgi.diposableGoodBatchStock dgbs inner join dgbs.diposableGoods dg where dg.name = '" - + keyWord + "' and dg.specification='" + specification - + "')"; - } else { - sql += " and (po.id in (select rgi.returnGoodsRecord.id from " - + ReturnGoodsItem.class.getName() - + " rgi inner join rgi.diposableGoodBatchStock dgbs inner join dgbs.diposableGoods dg where dg.name = '" - + keyWord - + "' and (dg.specification is null or dg.specification = '')) or po.id in (select rgi.returnGoodsRecord.id from " - + ReturnGoodsItem.class.getName() - + " rgi inner join rgi.tousseDefinition td where td.name = '" - + keyWord + "'))"; - } - } - - if (StringUtils.isNotBlank(startDate)) { - startDate += " 00:00:00"; - sql += " and po.returnTime >= " - + dateQueryAdapter.dateAdapter(startDate); - } - - if (StringUtils.isNotBlank(endDate)) { - endDate += " 23:59:59"; - sql += " and po.returnTime <= " - + dateQueryAdapter.dateAdapter(endDate); - } - /*if (StringUtils.equals(searchAll, "false")) { - sql += " and po.departCoding = '" - + AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode() + "'"; - }*/ - sql += " and po.handleDepartCode = '" + AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode() + "'"; - return gridManager.renderGrid(parameterMap, - ReturnGoodsRecord.class.getSimpleName(), sql, new String[] { - "returnGoodsItems", "recyclingApplication" }); + public String findReturnGoodsRecordTableList(Map> parameterMap) { + StringBuilder sql = new StringBuilder("where 1=1 "); + sql.append("and (po.handleDepartCode = '").append(AcegiHelper.getLoginUser().getCurrentOrgUnitCode()).append("'"); + Map sqlWhereParamMap = gridManager.getParamFromView(parameterMap); + returnGoodsRecordTableFilterManagerImpl.filterPara(sqlWhereParamMap,sql); + sql.append(")"); + return gridManager.renderGrid(parameterMap, ReturnGoodsRecord.class.getSimpleName(), sql.toString(), new String[] {"returnGoodsItems", "recyclingApplication" }); } public ReturnGoodsRecord getReturnGoodsRecordById(String id) { Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordTableFilterManagerImpl.java =================================================================== diff -u --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordTableFilterManagerImpl.java (revision 0) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordTableFilterManagerImpl.java (revision 15567) @@ -0,0 +1,39 @@ +package com.forgon.disinfectsystem.returngoodsrecord.service; + +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.search.service.TBarFilterManager; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * Created by zhonghaowen on 2016/10/26. + * 退货信息dwr工具栏sql条件过滤处理类 + */ +@Service("returnGoodsRecordTableFilterManagerImpl") +public class ReturnGoodsRecordTableFilterManagerImpl extends TBarFilterManager { + + @Override + public void filterPara(Map sqlWhereParamMap, StringBuilder sql) { + this.createTimeFilterSql(sqlWhereParamMap, sql, "po.returnTime"); + this.createKeyWordFilterSql(sqlWhereParamMap, sql); + } + + @Override + public void createKeyWordFilterSql(Map sqlWhereParamMap, StringBuilder sql) { + String keyWord = sqlWhereParamMap.get("keyWord"); + String goodType = sqlWhereParamMap.get("goodType"); + if (StringUtils.isNotBlank(keyWord) && StringUtils.isNotBlank(goodType)) { + sql.append("and po.id in (select rgi.returnGoodsRecord.id from ReturnGoodsItem rgi "); + //如果是一次性物品 + if (DisposableGoods.TYPE_NAME.equals(goodType)) { + sql.append(String.format(" join rgi.diposableGoodBatchStock dgbs join dgbs.diposableGoods dg where dg.disposableGoodsID = %s)", keyWord)); + } + //不是一次性物品 + else { + sql.append(String.format(" join rgi.tousseDefinition td where td.id = %s)", keyWord)); + } + } + } +} Index: ssts-web/src/main/webapp/js/tBarForm.js =================================================================== diff -u -r15441 -r15567 --- ssts-web/src/main/webapp/js/tBarForm.js (.../tBarForm.js) (revision 15441) +++ ssts-web/src/main/webapp/js/tBarForm.js (.../tBarForm.js) (revision 15567) @@ -81,6 +81,11 @@ $Id('startDate').value = ""; $Id('endDate').value = ""; $Id('parm_s_keyWord').value = ""; + var goodType = $Id('parm_s_goodType'); + //因为不是所有地方都有parm_s_goodType,所以要判断非空 + if (!isUndefinedOrNullOrEmpty(goodType)) { + $Id('parm_s_goodType').value = ""; + } } /** @@ -116,16 +121,13 @@ reader: new Ext.data.JsonReader({ totalProperty: 'totalCount', root: 'data' - }, [{ - name: 'id', - mapping: 'id' - }, { - name: 'spelling', - mapping: 'spelling' - }, { - name: 'name', - mapping: 'name' - }]) + }, [ + {name: 'id', mapping: 'id'}, + {name: 'spelling', mapping: 'spelling'}, + {name: 'name', mapping: 'name'}, + {name: 'tousseType', mapping: 'tousseType'}, + {name: 'type', mapping: 'type'} + ]) }); me.searchKeyWord.store = keyWordStore; } @@ -150,9 +152,15 @@ anchor: '97%', listeners: { select: function (combo, records, eOpts) { + //关键字的id var keyWord = records.get('id'); + //关键字的物品类型 + var type = records.get('type'); + //因为不是所有地方都有parm_s_goodType,所以要判断非空 $Id('parm_s_keyWord').value = keyWord; - // $Id('keyWord').value = keyWord; + if (!isUndefinedOrNullOrEmpty(type)) { + $Id('parm_s_goodType').value = type; + } } } } Index: ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.jsp =================================================================== diff -u -r12331 -r15567 --- ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.jsp (.../returnGoodsRecordView.jsp) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/returnGoodsRecord/returnGoodsRecordView.jsp (.../returnGoodsRecordView.jsp) (revision 15567) @@ -30,8 +30,9 @@ <%@ include file="/common/includeExtJsAndCss.jsp"%> - - + + + @@ -48,10 +49,12 @@ - + - + + + 退货记录