Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GodownEntryDiposableGoodsItem.java =================================================================== diff -u -r13632 -r14174 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GodownEntryDiposableGoodsItem.java (.../GodownEntryDiposableGoodsItem.java) (revision 13632) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GodownEntryDiposableGoodsItem.java (.../GodownEntryDiposableGoodsItem.java) (revision 14174) @@ -24,6 +24,8 @@ private Long id; private Long amount;// 数量 + + private Double price;// 价格 private Long identificationID;// 标识对象的ID @@ -36,6 +38,11 @@ private Long disposableGoodsBatchID ;// 批次id private Long disposableGoodsBatchStockID ;// 批次库存id private Long expensiveDisposableGoodsId; + + /** + * 一次性物品名称,带规格 + */ + private String goodsName; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -54,6 +61,14 @@ this.amount = amount; } + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + public Long getIdentificationID() { return identificationID; } @@ -118,6 +133,14 @@ this.expensiveDisposableGoodsId = expensiveDisposableGoodsId; } + public String getGoodsName() { + return goodsName; + } + + public void setGoodsName(String goodsName) { + this.goodsName = goodsName; + } + // 校验关联信息是否正确 @Transient public boolean isAssociatedInfoValid() { Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_oracle.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_oracle.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_oracle.sql (revision 14174) @@ -0,0 +1,24 @@ +update GodownEntryDiposableGoodsItem set price = (select price from DisposableGoodsIdentification where id=GodownEntryDiposableGoodsItem.identificationID) where identificationID is not null; +update GodownEntryDiposableGoodsItem set price = (select price from ExpensiveDisposablegoods where id=GodownEntryDiposableGoodsItem.expensiveDisposableGoodsId) where expensiveDisposableGoodsId is not null; +update GodownEntry set orgUnitCode=(select orgUnitCode from WareHouse where id=GodownEntry.warehouseID); +update GodownEntry set orgUnitName=(select orgUnitName from WareHouse where id=GodownEntry.warehouseID); +update GodownEntry set targetWareHouseId=(select ge2.targetWareHouseId from GodownEntry ge2 where ge2.id=GodownEntry.sourceId) where subType='调拨出库' and targetWareHouseId is null; +update GodownEntry set targetWareHouseName=(select ge2.targetWareHouseName from GodownEntry ge2 where ge2.id=GodownEntry.sourceId) where subType='调拨出库' and targetWareHouseName is null; +update GodownEntry set targetorgUnitCode=(select orgUnitCode from WareHouse where id=GodownEntry.targetWareHouseId) where targetWareHouseId is not null; +update GodownEntry set targetorgUnitName=(select orgUnitName from WareHouse where id=GodownEntry.targetWareHouseId) where targetWareHouseId is not null; +update UseDiposableGoodsItem set disposableGoodsId= ( +select db.diposablegoods_id from barcodeDevice b join DisposableGoodsBatch db on db.id=b.id +where UseDiposableGoodsItem.barcode=b.barcode +)where disposableGoodsId is null; +update UseDiposableGoodsItem set disposableGoodsId= ( +select eg.disposableGoodsID from barcodeDevice b join ExpensiveDisposablegoods eg on eg.id=b.id +where UseDiposableGoodsItem.barcode=b.barcode +)where disposableGoodsId is null; +UPDATE GodownEntryDiposableGoodsItem + SET goodsName = (SELECT + CASE + WHEN specification='' THEN name + WHEN specification is null THEN name + ELSE name||'['||specification||']' END + FROM DisposableGoods where id= disposableGoodsID) + WHERE goodsName is null and disposableGoodsID is not null; \ No newline at end of file Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r14159 -r14174 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 14159) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 14174) @@ -18,7 +18,7 @@ public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { "3.3.0","3.3.8", "3.3.9", "3.3.10","3.3.12","3.3.13","3.8.0","3.9.0","3.9.1","3.9.2","4.0.2","4.0.3","4.0.4", "4.0.5","4.0.6","4.0.44","4.0.45","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9","4.2.0","4.2.1","4.2.2", - "4.2.3","4.2.4","4.2.5"};// 版本列表 + "4.2.3","4.2.4","4.2.5","4.2.6"};// 版本列表 public final static List SOFTWARE_VERSION_LIST = Arrays .asList(SOFTWARE_VERSION_ARRAY); public final static String SOFTWARE_VERSION = SOFTWARE_VERSION_ARRAY[SOFTWARE_VERSION_ARRAY.length - 1];// 软件最新版本 Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r14050 -r14174 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 14050) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 14174) @@ -52,6 +52,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryDiposableGoodsItem; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; @@ -1956,6 +1957,8 @@ updateFullName(DepartmentStock.class.getSimpleName(), "tousseName", oldNameAndSpecification, newNameAndSpecification); // DiposableGoodsItem updateFullName(DiposableGoodsItem.class.getSimpleName(), "name", oldNameAndSpecification, newNameAndSpecification); + // GodownEntryDiposableGoodsItem + updateFullName(GodownEntryDiposableGoodsItem.class.getSimpleName(), "goodsName", oldNameAndSpecification, newNameAndSpecification); // DisposableGoodsInventory updateFullName(DisposableGoodsInventory.class.getSimpleName(), "name", oldNameAndSpecification, newNameAndSpecification); // InvoiceItem Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r14163 -r14174 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14163) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14174) @@ -3681,6 +3681,7 @@ @Override public List getMonthReportData(String startDate,String endDate,String department,String tousseType,String disposableGoodsType){ String handleDeptCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + SupplyRoomConfig firstSupplyRoomConfig = supplyRoomConfigManager.getFirstSupplyRoomConfig(); List list = new ArrayList(); String invoiceWheresql = "" ; startDate += " 00:00:00"; @@ -3700,13 +3701,15 @@ String disposableGoodsInvoiceAmountPredicate = " ii.diposable='是' "; String returnGoodsItemPredicate = "1=1"; String receiveRecordItemPredicate = "1=1"; + String outEntryPredicate = "1=1"; String disposableGoodsIdSql = ""; if(StringUtils.isNotBlank(disposableGoodsType)){ disposableGoodsIdSql = String.format(" select id from DisposableGoods where type='%s' ", disposableGoodsType); invoiceItemDisposableGoodsTypePredicate = String.format(" (ii.diposable='否' or ii.disposableGoodsId in(%s)) ", disposableGoodsIdSql); disposableGoodsInvoiceAmountPredicate = String.format(" (ii.diposable='是' and ii.disposableGoodsId in(%s)) ", disposableGoodsIdSql); returnGoodsItemPredicate = String.format(" (r.type!='一次性物品' or i.disposableGoodsId in(%s)) ", disposableGoodsIdSql); receiveRecordItemPredicate = String.format(" (i.type!='一次性物品' or i.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + outEntryPredicate = String.format(" (ged.disposableGoodsID in(%s)) ", disposableGoodsIdSql); } if(StringUtils.isBlank(tousseType) || !"器械材料".equals(tousseType)){ //物品类型sql @@ -3957,6 +3960,59 @@ DatabaseUtil.closeResultSetAndStatement(rs4); } } + // 一次性物品,调拨出库 + if(StringUtils.isBlank(tousseType) || TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType)){ + //供应室领用(器械材料与一次性物品) + String receiveSql = "select '一次性物品',(ged.amount*ged.price),ged.amount,oge.targetOrgUnitCode,oge.targetOrgUnitName " + + "from GodownEntry oge inner join GodownEntryDiposableGoodsItem ged on oge.id = ged.godownEntryID where oge.type ='退库单' and oge.subType='调拨出库' " + + "and "+outEntryPredicate+" and oge.orgUnitCode = '" + handleDeptCode + "' and oge.time " + betweenSql; + + ResultSet rs4 = objectDao.executeSql(receiveSql); + try { + while(rs4.next()){ + String type = rs4.getString(1); + Double price = rs4.getDouble(2); + Double amount = rs4.getDouble(3); + String code = rs4.getString(4); + String orgUnitName = rs4.getString(5); + if("一次性物品".equals(type)){ + newMonthReport(code, orgUnitName, "1", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, orgUnitName, "2", "数量统计", "一次性物品数量", amount, list); + } + } + }catch(Exception e){ + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs4); + } + } + // 一次性物品,盘亏出库 + if(StringUtils.isBlank(tousseType) || TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType)){ + //供应室领用(器械材料与一次性物品) + String receiveSql = "select '一次性物品',(ged.amount*ged.price),ged.amount,oge.orgUnitCode,oge.orgUnitName " + + "from GodownEntry oge inner join GodownEntryDiposableGoodsItem ged on oge.id = ged.godownEntryID where oge.type ='退库单' and oge.subType='盘亏出库' " + + "and "+outEntryPredicate+" and oge.orgUnitCode = '" + handleDeptCode + "' and oge.time " + betweenSql; + + ResultSet rs4 = objectDao.executeSql(receiveSql); + try { + while(rs4.next()){ + String type = rs4.getString(1); + Double price = rs4.getDouble(2); + Double amount = rs4.getDouble(3); + String code = rs4.getString(4); + String orgUnitName = rs4.getString(5); + if("一次性物品".equals(type)){ + newMonthReport(code, orgUnitName, "1", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, orgUnitName, "2", "数量统计", "一次性物品数量", amount, list); + } + } + }catch(Exception e){ + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs4); + } + } + //器械包(含消毒物品、敷料包等)发货数量统计 if(StringUtils.isBlank(tousseType) || (!"器械材料".equals(tousseType) && !TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType))){ @@ -4061,13 +4117,16 @@ String lostMaterialFilterSql = " "; String damageFilterSql = " "; String supplyRoomDiposableGoodsFilterSql = " "; + String outEntryFilterSql = " "; String invoiceItemDisposableGoodsTypePredicate = " (1=1) "; String diposableGoodsItemPredicate = " (1=1) "; String disposableGoodsInvoiceAmountPredicate = " (ii.diposable='是') "; String returnGoodsItemPredicate = " (1=1) "; String receiveRecordItemPredicate = " (1=1) "; String disposableGoodsIdSql = ""; + String outEntryPredicate = " 1=1 "; + if(StringUtils.isNotBlank(disposableGoodsType)){ disposableGoodsIdSql = String.format(" select id from DisposableGoods where type='%s' ", disposableGoodsType); invoiceItemDisposableGoodsTypePredicate = String.format(" (ii.diposable='否' or ii.disposableGoodsId in(%s)) ", disposableGoodsIdSql); @@ -4076,6 +4135,7 @@ // returnGoodsItemPredicate = String.format(" (rr.type!='一次性物品' or rr.disposableGoodsId in(%s)) ", disposableGoodsIdSql); returnGoodsItemPredicate = String.format(" (ri.disposableGoodsId in(%s)) ", disposableGoodsIdSql); receiveRecordItemPredicate = String.format(" (rri.type!='一次性物品' or rri.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + outEntryPredicate = String.format(" (ged.disposableGoodsID in(%s)) ", disposableGoodsIdSql); } if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) { @@ -4111,6 +4171,12 @@ + " and " + dateQueryAdapter.dateConverAdapter2( endTime , "yyyy-mm-dd HH24:MI:SS"); + outEntryFilterSql = " and oge.time between " + + dateQueryAdapter.dateConverAdapter2( startTime + , "yyyy-mm-dd HH24:MI:SS") + + " and " + + dateQueryAdapter.dateConverAdapter2( endTime + , "yyyy-mm-dd HH24:MI:SS"); } else { monthFilterSql = " and 1=2 "; returnGoodsFilterSql = " and 1=2 "; @@ -4131,28 +4197,33 @@ + departSearch + "'"; supplyRoomDiposableGoodsFilterSql += " and rr.departCoding = '"+departCoding+"'"; + outEntryFilterSql += " and oge.orgUnitCode = '"+departCoding+"'"; + } String typeFilterSql = " "; materialTypeFilterSql = " "; String expensiveDisposablegoodsSql = ""; if (StringUtils.isNotBlank(typeSearch)) { + if ("全部器械包".equals(typeSearch)) { typeFilterSql = " and ii.tousseType != '一次性物品'"; returnGoodsFilterSql += " and rr.type = '器械包'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; + outEntryFilterSql += " and 1=2"; }else if("器械包".equals(typeSearch)) { typeFilterSql = " and ii.tousseType = '" + TousseDefinition.PACKAGE_TYPE_INSIDE + "'"; returnGoodsFilterSql += " and rr.type = '器械包'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; + outEntryFilterSql += " and 1=2"; } else if ("消毒物品".equals(typeSearch)) { typeFilterSql = " and ii.tousseType = '" + TousseDefinition.PACKAGE_TYPE_DISINFECTION + "'"; returnGoodsFilterSql += " and rr.type = '消毒物品'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; - + outEntryFilterSql += " and 1=2"; } else if ("外来器械包".equals(typeSearch)) { typeFilterSql = " and (ii.tousseType = '" + TousseDefinition.PACKAGE_TYPE_FOREIGN @@ -4161,19 +4232,21 @@ returnGoodsFilterSql += " and rr.type = '外来器械包'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; - + outEntryFilterSql += " and 1=2"; } else if ("自定义器械包".equals(typeSearch)) { typeFilterSql = " and ii.tousseType = '" + TousseDefinition.PACKAGE_TYPE_CUSTOM + "'"; returnGoodsFilterSql += " and rr.type = '自定义器械包'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; + outEntryFilterSql += " and 1=2"; } else if ("外部代理灭菌包".equals(typeSearch)) { typeFilterSql = " and ii.tousseType = '" + TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY + "'"; returnGoodsFilterSql += " and rr.type = '外部器械包'"; lostMaterialFilterSql += " and 1=2 "; damageFilterSql += " and 1=2 "; supplyRoomDiposableGoodsFilterSql += " and 1=2"; + outEntryFilterSql += " and 1=2"; } else if ("一次性物品".equals(typeSearch)) { typeFilterSql = " and ii.tousseType = '一次性物品'"; returnGoodsFilterSql += " and rr.type = '一次性物品'"; @@ -4186,6 +4259,7 @@ lostMaterialFilterSql += " and 1=1 "; damageFilterSql += " and 1=1 "; supplyRoomDiposableGoodsFilterSql += " and rri.materialDefinition_id in (select id from MaterialDefinition) "; + outEntryFilterSql += " and 1=2"; } else if ("高值耗材".equals(typeSearch)) { if(StringUtils.isNotBlank(goodsType)){ if("一次性物品".equals(goodsType)){ @@ -4230,6 +4304,7 @@ + goodsNameSearch + "%'"; supplyRoomDiposableGoodsFilterSql += " and 1=2"; + outEntryFilterSql += " and 1=2"; }else{ if("精确查询".equals(searchType)){ goodsNameFilterSql = " and ii.toussename = '" + goodsNameSearch @@ -4243,6 +4318,7 @@ damageFilterSql += " and i.materialName = '" + goodsNameSearch + "'"; supplyRoomDiposableGoodsFilterSql += " and rri.goodsName = '"+goodsNameSearch+"'"; + outEntryFilterSql += " and ged.goodsName = '"+goodsNameSearch+"'"; }else{ goodsNameFilterSql = " and ii.toussename like '%" + goodsNameSearch + "%'"; @@ -4255,6 +4331,7 @@ damageFilterSql += " and r.materialName like '%" + goodsNameSearch + "%'"; supplyRoomDiposableGoodsFilterSql += " and rri.goodsName like '%"+goodsNameSearch+"%' "; + outEntryFilterSql += " and ged.goodsName like '%"+goodsNameSearch+"%' "; } } } @@ -4269,6 +4346,7 @@ lostMaterialFilterSql += " and 1=2 "; damageFilterSql += " and 1=2 "; supplyRoomDiposableGoodsFilterSql += " and dbs.batchNumber = '"+batch+"'"; + outEntryFilterSql += " and dgb.batchNumber = '"+batch+"'"; } String caseSql = " CASE ii.tousseType WHEN '消毒物品' THEN (ii.tousseName + '_' + cast(ii.invoicePlanID as varchar)) WHEN '自定义器械包' THEN (ii.tousseName + '_' + cast(ii.invoicePlanID as varchar)) ELSE ii.tousseName END "; @@ -4347,11 +4425,27 @@ +supplyRoomDiposableGoodsFilterSql +" and "+receiveRecordItemPredicate + " group by rri.goodsName,rri.amount,rri.type,dbs.batchNumber) "; + // 调拨出库 + String appropriateOutDiposableGoodsSql = " union all (select oge.targetOrgUnitName as settleaccountsdepart,ged.goodsName,sum(ged.amount),sum(ged.price*ged.amount) as settlementprice,'一次性物品' as type,dgb.batchNumber " + +" from GodownEntry oge inner join GodownEntryDiposableGoodsItem ged on oge.id = ged.godownEntryID inner join DisposableGoodsBatch dgb on ged.disposableGoodsBatchID=dgb.id " + +" where oge.type ='退库单' and oge.subType='调拨出库' and oge.orgUnitCode = '"+handleDeptCode+"' " + +outEntryFilterSql + +" and "+outEntryPredicate + + " group by oge.targetOrgUnitName, ged.goodsName,dgb.batchNumber) "; + // 盘亏出库 + String stocktakeOutDiposableGoodsSql = " union all (select oge.orgUnitName as settleaccountsdepart,ged.goodsName,sum(ged.amount),sum(ged.price*ged.amount) as settlementprice,'一次性物品' as type,dgb.batchNumber " + +" from GodownEntry oge inner join GodownEntryDiposableGoodsItem ged on oge.id = ged.godownEntryID inner join DisposableGoodsBatch dgb on ged.disposableGoodsBatchID=dgb.id " + +" where oge.type ='退库单' and oge.subType='盘亏出库' and oge.orgUnitCode = '"+handleDeptCode+"' " + +outEntryFilterSql + +" and "+outEntryPredicate + + " group by oge.orgUnitName, ged.goodsName,dgb.batchNumber) "; - String sql = tousseSql + diposableGoodsSql + materialInvoiceSql + returnGoodsSql + materialReturnSql + supplyRoomDiposableGoodsSql; + String sql = tousseSql + diposableGoodsSql + materialInvoiceSql + returnGoodsSql + materialReturnSql + supplyRoomDiposableGoodsSql + appropriateOutDiposableGoodsSql + +stocktakeOutDiposableGoodsSql; + if ("器械包".equals(typeSearch) || "全部".equals(typeSearch) || typeSearch == null || "全部器械包".equals(typeSearch) || "高值耗材".equals(typeSearch)) { sql += lostMaterial; sql += damageMaterial; Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_sqlserver.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_sqlserver.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.2.5_4.2.6_sqlserver.sql (revision 14174) @@ -0,0 +1,24 @@ +update GodownEntryDiposableGoodsItem set price = (select price from DisposableGoodsIdentification where id=GodownEntryDiposableGoodsItem.identificationID) where identificationID is not null; +update GodownEntryDiposableGoodsItem set price = (select price from ExpensiveDisposablegoods where id=GodownEntryDiposableGoodsItem.expensiveDisposableGoodsId) where expensiveDisposableGoodsId is not null; +update GodownEntry set orgUnitCode=(select orgUnitCode from WareHouse where id=GodownEntry.warehouseID); +update GodownEntry set orgUnitName=(select orgUnitName from WareHouse where id=GodownEntry.warehouseID); +update GodownEntry set targetWareHouseId=(select ge2.targetWareHouseId from GodownEntry ge2 where ge2.id=GodownEntry.sourceId) where subType='调拨出库' and targetWareHouseId is null; +update GodownEntry set targetWareHouseName=(select ge2.targetWareHouseName from GodownEntry ge2 where ge2.id=GodownEntry.sourceId) where subType='调拨出库' and targetWareHouseName is null; +update GodownEntry set targetorgUnitCode=(select orgUnitCode from WareHouse where id=GodownEntry.targetWareHouseId) where targetWareHouseId is not null; +update GodownEntry set targetorgUnitName=(select orgUnitName from WareHouse where id=GodownEntry.targetWareHouseId) where targetWareHouseId is not null; +update UseDiposableGoodsItem set disposableGoodsId= ( +select db.diposablegoods_id from barcodeDevice b join DisposableGoodsBatch db on db.id=b.id +where UseDiposableGoodsItem.barcode=b.barcode +)where disposableGoodsId is null; +update UseDiposableGoodsItem set disposableGoodsId= ( +select eg.disposableGoodsID from barcodeDevice b join ExpensiveDisposablegoods eg on eg.id=b.id +where UseDiposableGoodsItem.barcode=b.barcode +)where disposableGoodsId is null; +UPDATE GodownEntryDiposableGoodsItem + SET goodsName = (SELECT + CASE + WHEN specification='' THEN name + WHEN specification is null THEN name + ELSE name + '['+specification+']' END + FROM DisposableGoods where id= disposableGoodsID) + WHERE goodsName is null and disposableGoodsID is not null; \ No newline at end of file Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r14169 -r14174 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 14169) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 14174) @@ -1779,6 +1779,8 @@ Long curOutAmount = Math.min(outAmount, restAmount); GodownEntryDiposableGoodsItem diposableGoodsItem = new GodownEntryDiposableGoodsItem(); diposableGoodsItem.setAmount(curOutAmount); + diposableGoodsItem.setPrice(price); + diposableGoodsItem.setGoodsName(diposableGoods.getShowName()); diposableGoodsItem.setDisposableGoodsID(disposableGoodsID); diposableGoodsItem.setDisposableGoodsStockID(disposableGoodsStockID); diposableGoodsItem.setDisposableGoodsBatchID(disposableGoodsBatchID); @@ -1889,6 +1891,8 @@ } GodownEntryDiposableGoodsItem diposableGoodsItem = new GodownEntryDiposableGoodsItem(); diposableGoodsItem.setAmount(outAmount); + diposableGoodsItem.setPrice(expensiveDisposableGoods.getPrice()); + diposableGoodsItem.setGoodsName(diposableGoods.getShowName()); diposableGoodsItem.setDisposableGoodsID(disposableGoodsID); diposableGoodsItem.setDisposableGoodsStockID(disposableGoodsStockID); diposableGoodsItem.setDisposableGoodsBatchID(disposableGoodsBatchID);