Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/storageRecord.js =================================================================== diff -u -r13181 -r15230 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/storageRecord.js (.../storageRecord.js) (revision 13181) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/storageRecord.js (.../storageRecord.js) (revision 15230) @@ -5,6 +5,7 @@ function StorageRecord(){ var Record = Ext.data.Record.create([ {name : 'operator'}, + {name : 'batchNumber'}, {name : 'serialNumber'}, {name : 'time'}, {name : 'type'}, @@ -23,6 +24,7 @@ reader : new Ext.data.JsonReader({ fields : [ {name : 'operator'}, + {name : 'batchNumber'}, {name : 'serialNumber'}, {name : 'time'}, {name : 'type'}, @@ -41,7 +43,8 @@ }) }); var cm = new Ext.grid.ColumnModel([ - {id : 'displayName',header : "物品名称",dataIndex : 'displayName',width : 240, menuDisabled: true}, + {id : 'displayName',header : "物品名称",dataIndex : 'displayName',width : 160, menuDisabled: true}, + {header : "批次",dataIndex : 'batchNumber',width : 80, menuDisabled: true}, {header : "单号",dataIndex : 'serialNumber',width : 80, menuDisabled: true}, {header : "单类型",dataIndex : 'type',width : 60, menuDisabled: true}, {header : "操作员",dataIndex : 'operator',width : 60, menuDisabled: true}, @@ -120,6 +123,7 @@ for(var i = 0; i < jsonDataArray.length;++i){ var storageRecordData = new Record({ operator : jsonDataArray[i].operator, + batchNumber : jsonDataArray[i].batchNumber, serialNumber : jsonDataArray[i].serialNumber, time : jsonDataArray[i].time, type : jsonDataArray[i].type, Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java =================================================================== diff -u -r14366 -r15230 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java (.../DisposableGoodsStorageRecordManagerImpl.java) (revision 14366) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java (.../DisposableGoodsStorageRecordManagerImpl.java) (revision 15230) @@ -13,8 +13,12 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; import com.forgon.disinfectsystem.entity.packing.PackingRecord; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; import com.forgon.tools.SqlBuilder; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -55,10 +59,15 @@ //单号与单类型及单id的修正关系(对于调拨单产生的入库单和退库单,由于用户不知道自动产生的单,所以需要把单号和单类型改为调拨单的单号和单类型) String godownEntryIdSerialNumber = " (select ge.id,mge.type,mge.serialNumber from GodownEntry ge inner join (select id,type,serialNumber from GodownEntry) mge on ge.sourceId = mge.id union all select id,type,serialNumber from GodownEntry where sourceId is null or sourceId = 0) "; //入库单 - sb.append("select ge.operator,isn.serialNumber,ge.time,isn.type,ge.subType,ge.warehouseName"); + String godownEntryItemSummarySql = "select dgbs.batchNumber, ge.id as entryId,gei.disposableGoodsID, gei.cost as price, sum(gei.amount) as amount,sum(gei.amount*gei.cost) as totalPrice " + +"from "+GodownEntry.class.getSimpleName()+" ge inner join " + + GodownEntryItem.class.getSimpleName()+" gei on gei.godownEntry_id = ge.id " + + " inner join " + DisposableGoodsBatchStock.class.getSimpleName() + " dgbs on dgbs.id=gei.disposableGoodsBatchStockID" + +" group by gei.disposableGoodsID,gei.cost,ge.id,dgbs.batchNumber"; + sb.append("select atp.batchNumber as batchNumber, ge.operator,isn.serialNumber,ge.time,isn.type,ge.subType,ge.warehouseName"); sb.append(",atp.amount,atp.price,atp.totalPrice as totalPrice,dg.name,dg.specification"); sb.append(" from GodownEntry ge inner join " + godownEntryIdSerialNumber + " isn on ge.id = isn.id inner join DisposableGoods dg on dg.id=" + disposableGoodsId); - sb.append(" inner join (select ge.id as entryId,gei.disposableGoodsID, gei.cost as price, sum(gei.amount) as amount,sum(gei.amount*gei.cost) as totalPrice from GodownEntry ge inner join GodownEntryItem gei on gei.godownEntry_id = ge.id group by gei.disposableGoodsID,gei.cost,ge.id) atp"); + sb.append(" inner join ("+godownEntryItemSummarySql+") atp"); sb.append(" on atp.entryId = ge.id and atp.disposableGoodsID = "); sb.append(disposableGoodsId); sb.append(" and ge.type <> '" + GodownEntry.TYPE_APPROPRIATE + "'"); @@ -68,14 +77,17 @@ sb.append(" union all "); //发货记录 - sb.append(" select i.sender as operator,i.serialNumber,i.sendTime as time,'发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName," ); + sb.append(" select idtp.batchNumber as batchNumber, i.sender as operator,i.serialNumber,i.sendTime as time,'发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName," ); sb.append("idtp.amount, null as price,idtp.totalPrice,dg.name,dg.specification"); sb.append(" from Invoice i "); sb.append(" inner join ( "); - sb.append(" select ii.invoice_id,sum(dgi.amount) as amount,sum(dgi.amount*dgi.price) as totalPrice from InvoiceItem ii inner join DiposableGoodsItem dgi on ii.id = dgi.invoiceItemID "); + sb.append(" select dgbs.batchNumber, ii.invoice_id,sum(dgi.amount) as amount,sum(dgi.amount*dgi.price) as totalPrice from " + + InvoiceItem.class.getSimpleName() + " ii inner join " + + DiposableGoodsItem.class.getSimpleName()+ " dgi on ii.id = dgi.invoiceItemID " + + " inner join " + DisposableGoodsBatchStock.class.getSimpleName() + " dgbs on dgbs.id = dgi.disposableGoodsBatchStockID"); sb.append(" where ii.id in (select invoiceItemID from DiposableGoodsItem where disposableGoodsID = "); sb.append(disposableGoodsId); - sb.append(") group by ii.invoice_id) idtp"); + sb.append(") group by dgbs.batchNumber, ii.invoice_id) idtp"); sb.append(" on i.id = idtp.invoice_id"); sb.append(" inner join DisposableGoods dg on dg.id = "); sb.append(disposableGoodsId); @@ -86,11 +98,15 @@ sb.append(" union all "); //退货记录 - sb.append(" select rgr.operator,'' as serialNumber,rgr.returnTime as time,'退货单' as type,'退货入库' as subType,rgr.warehouseName as warehouseName,"); + sb.append(" select mt.batchNumber as batchNumber, rgr.operator,'' as serialNumber,rgr.returnTime as time,'退货单' as type,'退货入库' as subType,rgr.warehouseName as warehouseName,"); sb.append(" mt.amount,null as price,mt.totalPrice as totalPrice,dg.name,dg.specification "); sb.append(" from ReturnGoodsRecord rgr inner join DisposableGoods dg on dg.id = " + disposableGoodsId); sb.append(" inner join "); - sb.append(" (select rgr.id as recordId,rgi.disposableGoodsID as disposableGoodsId, sum(rgi.amount) as amount,sum(rgi.amount*rgi.price) as totalPrice from ReturnGoodsRecord rgr inner join ReturnGoodsItem rgi on rgi.returnGoodsRecord_ID = rgr.id group by rgi.disposableGoodsID,rgr.id) mt "); + sb.append(" (select dgbs.batchNumber, rgr.id as recordId,rgi.disposableGoodsID as disposableGoodsId, sum(rgi.amount) as amount,sum(rgi.amount*rgi.price) as totalPrice from " + + ReturnGoodsRecord.class.getSimpleName()+ " rgr inner join " + + ReturnGoodsItem.class.getSimpleName() + " rgi on rgi.returnGoodsRecord_ID = rgr.id" + + " inner join " + DisposableGoodsBatchStock.class.getSimpleName() + + " dgbs on dgbs.id=rgi.disposableGoodsBatchStockID" +" group by dgbs.batchNumber,rgi.disposableGoodsID,rgr.id) mt "); sb.append(" on mt.recordId = rgr.id and mt.disposableGoodsId = "); sb.append(disposableGoodsId); sb.append(" where "); @@ -99,7 +115,7 @@ sb.append(" union all "); //装配扣减 - sb.append(" select pr.packer as operator,'' as serialNumber,pr.packTime as time,'装配扣减' as type,'装配出库' as subType,dgbs.warehouseName as warehouseName," ); + sb.append(" select dgbs.batchNumber as batchNumber, pr.packer as operator,'' as serialNumber,pr.packTime as time,'装配扣减' as type,'装配出库' as subType,dgbs.warehouseName as warehouseName," ); sb.append(" dgi.amount, dgi.price as price,(dgi.amount*dgi.price) as totalPrice,dg.name,dg.specification"); sb.append(" from " + PackingRecord.class.getSimpleName() + " pr "); sb.append(" inner join " + DiposableGoodsItem.class.getSimpleName() + " dgi on pr.id=dgi.packingRecordId"); @@ -142,6 +158,7 @@ item.put("operator", resultSet.getString("operator")); item.put("serialNumber", resultSet.getString("serialNumber")); + item.put("batchNumber", resultSet.getString("batchNumber")); item.put("time", timeStr); item.put("type", resultSet.getString("type")); item.put("subType", subType);