Index: ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java =================================================================== diff -u -r26826 -r34511 --- ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java (.../InventoryRecordAction.java) (revision 26826) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java (.../InventoryRecordAction.java) (revision 34511) @@ -153,6 +153,7 @@ obj.put("supplierName", goods.getSupplierName()); obj.put("cost", goods.getPrice()); obj.put("externalCode", goods.getExternalCode()); + obj.put("inventorySerialNumber", goods.getInventorySerialNumber()); obj.put("goodsType", goods.getGoodsType()); obj.put("sequence", goods.getSequence()); obj.put("unit", goods.getUnit()); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java =================================================================== diff -u -r34008 -r34511 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java (.../DisposableGoodsStorageRecordManagerImpl.java) (revision 34008) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStorageRecordManagerImpl.java (.../DisposableGoodsStorageRecordManagerImpl.java) (revision 34511) @@ -45,6 +45,7 @@ import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.BaseUtils; +import com.forgon.tools.util.ConfigUtils; import com.forgon.tools.util.SqlUtils; public class DisposableGoodsStorageRecordManagerImpl implements @@ -374,6 +375,8 @@ item.put("name", name); item.put("specification", specification); item.put("displayName", displayName); + item.put("externalCode", resultSet.getString("externalCode")); + item.put("inventorySerialNumber", resultSet.getString("inventorySerialNumber")); storageRecordMap.put(key, item); } @@ -465,6 +468,8 @@ item.put("name", name); item.put("specification", specification); item.put("displayName", displayName); + item.put("externalCode", resultSet.getString("externalCode")); + item.put("inventorySerialNumber", resultSet.getString("inventorySerialNumber")); jsonArray.add(item); } @@ -503,7 +508,7 @@ if(CollectionUtils.isEmpty(departCodeList) && StringUtils.isBlank(settleAccountsDepartCoding)){ //入库单 - sb.append("select ge.type,ge.subType,ge.warehouseName,dg.name,dg.specification, sum(gei.amount) as amount, gei.cost as price, sum(gei.amount*gei.cost) as totalPrice "); + sb.append("select ge.type,ge.subType,ge.warehouseName,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, sum(gei.amount) as amount, gei.cost as price, sum(gei.amount*gei.cost) as totalPrice "); sb.append("from GodownEntry ge "); sb.append("inner join GodownEntryItem gei on gei.godownEntry_id = ge.id "); sb.append("inner join DisposableGoods dg on dg.id = gei.disposableGoodsID "); @@ -515,12 +520,12 @@ sb.append(SqlBuilder.build_number_IN_Statement("ge.warehouseID", SqlBuilder.IN, warehosueIds)); sb.append(" and "); sb.append(dateQueryAdapter.dateAreaSql("ge.time", startDate, endDate, true, true)); - sb.append("group by ge.type,ge.subType,ge.warehouseName, dg.name,dg.specification,gei.cost "); + sb.append("group by ge.type,ge.subType,ge.warehouseName, dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence, gei.cost "); sb.append(" union all "); //发货记录 - sb.append("select '发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName,dg.name,dg.specification,sum(dgi.amount) as amount,dgi.price as price, sum(dgi.amount*dgi.price) as totalPrice "); + sb.append("select '发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName,dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, sum(dgi.amount) as amount,dgi.price as price, sum(dgi.amount*dgi.price) as totalPrice "); sb.append("from Invoice i "); sb.append("inner join InvoiceItem ii on ii.invoice_id = i.id "); sb.append("inner join DiposableGoodsItem dgi on ii.id = dgi.invoiceItemID "); @@ -532,13 +537,13 @@ sb.append(dateQueryAdapter.dateAreaSql("i.sendTime", startDate, endDate, true, true)); sb.append(" and "); sb.append(SqlBuilder.build_number_IN_Statement("i.sourceWarehouseId", SqlBuilder.IN, warehosueIds)); - sb.append("group by i.sourceWarehouseName, dg.name,dg.specification,dgi.price "); + sb.append("group by i.sourceWarehouseName, dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence, dgi.price "); sb.append(" union all "); //退货记录 - sb.append("select '退货单' as type,'退货入库' as subType,rgr.warehouseName as warehouseName,dg.name,dg.specification,sum(rgi.amount) as amount, rgi.price as price, sum(rgi.amount*rgi.price) as totalPrice "); + sb.append("select '退货单' as type,'退货入库' as subType,rgr.warehouseName as warehouseName,dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, sum(rgi.amount) as amount, rgi.price as price, sum(rgi.amount*rgi.price) as totalPrice "); sb.append("from ReturnGoodsRecord rgr "); sb.append("inner join ReturnGoodsItem rgi on rgi.returnGoodsRecord_ID = rgr.id "); sb.append("inner join DisposableGoods dg on rgi.disposableGoodsID = dg.id "); @@ -549,12 +554,12 @@ sb.append(dateQueryAdapter.dateAreaSql("rgr.returnTime", startDate, endDate, true, true)); sb.append(" and "); sb.append(SqlBuilder.build_number_IN_Statement("rgr.warehouseID", SqlBuilder.IN, warehosueIds)); - sb.append("group by rgr.warehouseName,dg.name,dg.specification,rgi.price "); + sb.append("group by rgr.warehouseName,dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence, rgi.price "); sb.append(" union all "); //装配扣减 - sb.append("select '装配扣减' as type,'装配出库' as subType,dgbs.warehouseName as warehouseName,dg.name,dg.specification, dgi.amount, dgi.price as price,(dgi.amount*dgi.price) as totalPrice "); + sb.append("select '装配扣减' as type,'装配出库' as subType,dgbs.warehouseName as warehouseName,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, dgi.amount, dgi.price as price,(dgi.amount*dgi.price) as totalPrice "); sb.append("from PackingRecord pr "); sb.append("join DiposableGoodsItem dgi on pr.id=dgi.packingRecordId "); sb.append("inner join DisposableGoods dg on dg.id=dgi.disposableGoodsID "); @@ -570,7 +575,7 @@ sb.append(" union all "); //供应室领用 - sb.append("select '供应室领用' as type,'' as subType,rri.warehouseName as warehouseName,dg.name,dg.specification, sum(rri.amount) as amount,rri.price as price,sum(rri.amount*rri.price) as totalPrice "); + sb.append("select '供应室领用' as type,'' as subType,rri.warehouseName as warehouseName,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, sum(rri.amount) as amount,rri.price as price,sum(rri.amount*rri.price) as totalPrice "); sb.append("from ReceiveRecord rr "); sb.append("join ReceiveRecordItem rri on rri.receiveRecord_id = rr.id "); sb.append("join DisposableGoods dg on dg.id = rri.disposableGoodsId "); @@ -581,10 +586,10 @@ sb.append(dateQueryAdapter.dateAreaSql("rr.time", startDate, endDate, true, true)); sb.append("and "); sb.append(SqlBuilder.build_number_IN_Statement("rri.warehouseId", SqlBuilder.IN, warehosueIds)); - sb.append("group by rri.warehouseName,dg.name,dg.specification,rri.price "); + sb.append("group by rri.warehouseName,dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence, rri.price "); }else{ //发货记录 - sb.append("select '发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName,dg.name,dg.specification,sum(dgi.amount) as amount,dgi.price as price, sum(dgi.amount*dgi.price) as totalPrice "); + sb.append("select '发货单' as type,'发货出库' as subType,i.sourceWarehouseName as warehouseName,dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence dgSequence, sum(dgi.amount) as amount,dgi.price as price, sum(dgi.amount*dgi.price) as totalPrice "); sb.append("from Invoice i "); sb.append("inner join InvoiceItem ii on ii.invoice_id = i.id "); sb.append("inner join DiposableGoodsItem dgi on ii.id = dgi.invoiceItemID "); @@ -604,9 +609,9 @@ sb.append(" and i.settleAccountsDepartCoding = '" + settleAccountsDepartCoding + "'"); } - sb.append("group by i.sourceWarehouseName, dg.name,dg.specification,dgi.price "); + sb.append("group by i.sourceWarehouseName, dg.name,dg.specification,dg.externalCode, dg.inventorySerialNumber, dg.sequence, dgi.price "); } - sb.append(" ) md "); + sb.append(" ) md order by dgSequence "); System.out.println(sb.toString()); return sb; } @@ -636,7 +641,7 @@ //入库单 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, '' as depart, '' as settleAccountsDepart "); + sb.append("atp.amount,atp.price,atp.totalPrice as totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, '' as depart, '' as settleAccountsDepart "); sb.append(" from GodownEntry ge inner join " + godownEntryIdSerialNumber + " isn on ge.id = isn.id"); sb.append(" inner join ("+godownEntryItemSummarySql+") atp"); sb.append(" on atp.entryId = ge.id "); @@ -655,7 +660,7 @@ //发货记录 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, i.depart as depart, i.settleAccountsDepart as settleAccountsDepart "); + sb.append("idtp.amount, null as price,idtp.totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, i.depart as depart, i.settleAccountsDepart as settleAccountsDepart "); sb.append(" from Invoice i "); sb.append(" inner join ( "); sb.append(" select dgbs.disposableGoodsId,dgbs.batchNumber, ii.invoice_id,sum(dgi.amount) as amount,sum(dgi.amount*dgi.price) as totalPrice from " @@ -686,7 +691,7 @@ //退货记录 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, rgr.depart as depart, rgr.settleAccountsDepart as settleAccountsDepart "); + sb.append(" mt.amount,null as price,mt.totalPrice as totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, rgr.depart as depart, rgr.settleAccountsDepart as settleAccountsDepart "); sb.append(" from ReturnGoodsRecord rgr inner join"); 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 " @@ -713,7 +718,7 @@ //装配扣减 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, '' as depart, '' as settleAccountsDepart "); + sb.append(" dgi.amount, dgi.price as price,(dgi.amount*dgi.price) as totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, '' as depart, '' as settleAccountsDepart "); sb.append(" from " + PackingRecord.class.getSimpleName() + " pr "); sb.append(" inner join " + DiposableGoodsItem.class.getSimpleName() + " dgi on pr.id=dgi.packingRecordId"); sb.append(" inner join " + DisposableGoodsBatchStock.class.getSimpleName() + " dgbs on dgi.disposableGoodsBatchStockID=dgbs.id"); @@ -731,7 +736,7 @@ //供应室领用 sb.append(" select dgbs.batchNumber as batchNumber,rr.operator as operator,'' as serialNumber,rr.time as time,'供应室领用' as type,'' as subType,dgbs.warehouseName as warehouseName,"); - sb.append(" rri.amount,rri.price as price,(rri.amount*rri.price) as totalPrice,dg.name,dg.specification, '' as depart, '' as settleAccountsDepart"); + sb.append(" rri.amount,rri.price as price,(rri.amount*rri.price) as totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, '' as depart, '' as settleAccountsDepart"); sb.append(" from " + ReceiveRecordItem.class.getSimpleName() + " rri "); sb.append(" inner join " + ReceiveRecord.class.getSimpleName() + " rr on rr.id = rri.receiveRecord_id"); sb.append(" inner join " + DisposableGoods.class.getSimpleName() + " dg on dg.id = rri.disposableGoodsId"); @@ -750,7 +755,7 @@ // 查询条件的申请科室、结算科室、发货科室分组必须均为空的情况下,才查入库单,否则查询出库单(发货单)。 //发货记录 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, i.depart as depart, i.settleAccountsDepart as settleAccountsDepart "); + sb.append("idtp.amount, null as price,idtp.totalPrice,dg.name,dg.specification, dg.externalCode, dg.inventorySerialNumber, i.depart as depart, i.settleAccountsDepart as settleAccountsDepart "); sb.append(" from Invoice i "); sb.append(" inner join ( "); sb.append(" select dgbs.disposableGoodsId,dgbs.batchNumber, ii.invoice_id,sum(dgi.amount) as amount,sum(dgi.amount*dgi.price) as totalPrice from " @@ -819,9 +824,8 @@ sheetNum=length/sheetSize; } //需导出的列头定义(与器械包信息页面列表保持一致) - String ss[] = {"物品名称","批次","单号","单类型","操作员","操作内容","操作时间","仓库", - "入库金额","入库单价","入库数量","出库金额","出库数量","申请科室","结算科室" - }; + Map headerMap = buildDisposableGoodsColumnNameAndPoPropertyNameArrray(); + Label label; //循环sheet数量 for(int kk=0;kk buildDisposableGoodsColumnNameAndPoPropertyNameArrray() { + Map headerMap = new LinkedHashMap(); + //当配置项externalCodeConfig的hidden设置为true时,不导出“外部编码”列;externalCodeConfig:{text:"物资编码","hidden":true} + String externalCodeConfigStr = ConfigUtils.getSystemSetConfigByName("externalCodeConfig"); + if(StringUtils.isNotBlank(externalCodeConfigStr)){ + try { + JSONObject json = JSONObject.fromObject(externalCodeConfigStr); + if(json != null && !json.optBoolean("hidden", true)){ + String externalCodeHeader = json.optString("text","外部编码"); + headerMap.put("externalCode", externalCodeHeader); + } + } catch (Exception e) { + } + }else{ + headerMap.put("externalCode", "外部编码"); + } + //当配置项disposableGoodsInventorySerialNumber设置为true时,此处要导出“物资编码”列 + boolean disposableGoodsInventorySerialNumber = ConfigUtils.getSystemSetConfigByNameBool("disposableGoodsInventorySerialNumber", false); + if(disposableGoodsInventorySerialNumber){ + headerMap.put("inventorySerialNumber", "物资编码"); + } + + headerMap.put("displayName", "物品名称"); + headerMap.put("batchNumber", "批次"); + headerMap.put("serialNumber", "单号"); + headerMap.put("type", "单类型"); + + headerMap.put("operator", "操作员"); + headerMap.put("subType", "操作内容"); + headerMap.put("time", "操作时间"); + headerMap.put("warehouseName", "仓库"); + + headerMap.put("totalPrice", "入库金额"); + headerMap.put("price", "入库单价"); + headerMap.put("amount", "入库数量"); + headerMap.put("outTotalPrice", "出库金额"); + + headerMap.put("outAmout", "出库数量"); + headerMap.put("depart", "申请科室"); + headerMap.put("settleAccountsDepart", "结算科室"); + return headerMap; + } + } Index: forgon-tools/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r34372 -r34511 --- forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 34372) +++ forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 34511) @@ -27,7 +27,7 @@ "4.9.25","4.9.26","4.9.27","4.9.28","4.9.29","4.9.30","4.9.31","4.9.32","4.9.33","4.9.34","4.9.35","4.9.36","4.9.37","4.9.38","4.9.39","4.9.40","4.9.41","4.9.42","4.9.43","4.9.44", "4.9.45","4.9.46","4.9.47","4.9.48","4.9.49","4.9.50","4.9.51","4.9.52","4.9.53","4.9.54","4.9.55","4.9.56","4.9.57","4.9.58","4.9.59","4.9.60","4.9.61","4.9.62", "4.9.63","4.9.64","4.9.65","4.9.66","4.9.67","4.9.68","4.9.69","4.9.70","4.9.71","4.9.72","4.9.73","4.9.74","4.9.75","4.9.76","4.9.77","4.9.78","4.9.79","4.9.80","4.9.81","4.9.82","4.9.83","4.9.84","4.9.85", - "4.9.86","4.9.87","4.9.88","4.9.89","4.9.90","4.9.91","4.9.92","4.9.93","4.9.94","4.9.95","4.9.96","4.9.97","4.9.98","4.9.99"}; + "4.9.86","4.9.87","4.9.88","4.9.89","4.9.90","4.9.91","4.9.92","4.9.93","4.9.94","4.9.95","4.9.96","4.9.97","4.9.98","4.9.99","5.0.0"}; // 版本列表(4.0版本升级4.1版需要分两步:先从4.0升到4.1.0、然后从4.1.0升级4.1最新版本) /*public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java =================================================================== diff -u -r26490 -r34511 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java (.../InventoryItem.java) (revision 26490) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java (.../InventoryItem.java) (revision 34511) @@ -8,6 +8,7 @@ import java.util.List; import javax.persistence.Entity; +import org.apache.commons.lang.StringUtils; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.FetchType; @@ -21,12 +22,15 @@ import javax.persistence.Transient; import net.sf.json.JSONArray; +import net.sf.json.JSONObject; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Cascade; import com.forgon.Constants; +import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.tools.util.ConfigUtils; /** * 盘点物品明细 @@ -53,6 +57,11 @@ private String externalCode;//外部编码 + /** + * 物资系统的物资编码,用于与物资系统交互(GDSZYY-184盘点明细需要显示物质编码) + */ + private String inventorySerialNumber; + private Double price;//单价 private String supplierName; @@ -142,23 +151,9 @@ //导出使用临时变量 private Integer rowIndex; - public static JSONArray disposableGoodsColumnNameAndPoPropertyNameArrray = new JSONArray(); public static JSONArray materialColumnNameAndPoPropertyNameArrray = new JSONArray(); public static JSONArray disposableGoodsColumnNameAndPoPropertyNameFormatArrray = new JSONArray(); - public static JSONArray updatedDisposableGoodsColumnNameAndPoPropertyNameArrray = new JSONArray();//已更新的一次性物品盘点excel列 static { - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'序号',dataIndex:'rowIndex',type:'int'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'外部编码',dataIndex:'externalCode',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'名称',dataIndex:'materialName',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'规格',dataIndex:'specification',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'失效时期 ',dataIndex:'expDateString',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'批次',dataIndex:'batchNumber',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'账面数量',dataIndex:'storage',type:'int'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'盘点数量',dataIndex:'amount',type:'int'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'单价',dataIndex:'price',type:'double'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'供应商',dataIndex:'supplierName',type:'string'}"); - disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'顺序号',dataIndex:'sequence',type:'int'}"); - materialColumnNameAndPoPropertyNameArrray.add("{header:'序号',dataIndex:'rowIndex',type:'int'}"); materialColumnNameAndPoPropertyNameArrray.add("{header:'名称',dataIndex:'materialName',type:'string'}"); materialColumnNameAndPoPropertyNameArrray.add("{header:'规格',dataIndex:'specification',type:'string'}"); @@ -175,9 +170,67 @@ disposableGoodsColumnNameAndPoPropertyNameFormatArrray.add("{header:'发物室',dataIndex:'a',type:'string'}");//数据为空,excel导出后手工填 disposableGoodsColumnNameAndPoPropertyNameFormatArrray.add("{header:'仓库',dataIndex:'b',type:'string'}");//数据为空,excel导出后手工填 disposableGoodsColumnNameAndPoPropertyNameFormatArrray.add("{header:'合计',dataIndex:'c',type:'string'}");//数据为空,excel导出后手工填 + } + + /** + * 一次性物品盘点导出表格列头明细 + * @return + */ + public static JSONArray buildDisposableGoodsColumnNameAndPoPropertyNameArrray(){ + JSONArray disposableGoodsColumnNameAndPoPropertyNameArrray = new JSONArray(); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'序号',dataIndex:'rowIndex',type:'int'}"); + String externalCodeConfig = CssdUtils.getSystemSetConfigByName("externalCodeConfig"); + if(StringUtils.isNotBlank(externalCodeConfig)){ + try { + JSONObject json = JSONObject.fromObject(externalCodeConfig); + if(!json.optBoolean("hidden", false)){ + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'" + json.optString("text", "外部编码") + "',dataIndex:'externalCode',type:'string'}"); + } + } catch (Exception e) { + } + }else{ + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'外部编码',dataIndex:'externalCode',type:'string'}"); + } + boolean disposableGoodsInventorySerialNumber = ConfigUtils.getSystemSetConfigByNameBool("disposableGoodsInventorySerialNumber", false); + if(disposableGoodsInventorySerialNumber){ + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'物资编码',dataIndex:'inventorySerialNumber',type:'string'}"); + } + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'名称',dataIndex:'materialName',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'规格',dataIndex:'specification',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'失效时期 ',dataIndex:'expDateString',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'批次',dataIndex:'batchNumber',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'账面数量',dataIndex:'storage',type:'int'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'盘点数量',dataIndex:'amount',type:'int'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'单价',dataIndex:'price',type:'double'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'供应商',dataIndex:'supplierName',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'顺序号',dataIndex:'sequence',type:'int'}"); + return disposableGoodsColumnNameAndPoPropertyNameArrray; + } + + /** + * 已更新的一次性物品盘点导出表格列头明细 + * @return + */ + public static JSONArray buildUpdatedDisposableGoodsColumnNameAndPoPropertyNameArrray(){ + JSONArray updatedDisposableGoodsColumnNameAndPoPropertyNameArrray = new JSONArray(); updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'序号',dataIndex:'rowIndex',type:'int'}"); - updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'外部编码',dataIndex:'externalCode',type:'string'}"); + String externalCodeConfig = CssdUtils.getSystemSetConfigByName("externalCodeConfig"); + if(StringUtils.isNotBlank(externalCodeConfig)){ + try { + JSONObject json = JSONObject.fromObject(externalCodeConfig); + if(!json.optBoolean("hidden", false)){ + updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'" + json.optString("text", "外部编码") + "',dataIndex:'externalCode',type:'string'}"); + } + } catch (Exception e) { + } + }else{ + updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'外部编码',dataIndex:'externalCode',type:'string'}"); + } + boolean disposableGoodsInventorySerialNumber = ConfigUtils.getSystemSetConfigByNameBool("disposableGoodsInventorySerialNumber", false); + if(disposableGoodsInventorySerialNumber){ + updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'物资编码',dataIndex:'inventorySerialNumber',type:'string'}"); + } updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'名称',dataIndex:'materialName',type:'string'}"); updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'规格',dataIndex:'specification',type:'string'}"); updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'失效时期 ',dataIndex:'expDateString',type:'string'}"); @@ -188,6 +241,7 @@ updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'单价',dataIndex:'price',type:'double'}"); updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'供应商',dataIndex:'supplierName',type:'string'}"); updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'顺序号',dataIndex:'sequence',type:'int'}"); + return updatedDisposableGoodsColumnNameAndPoPropertyNameArrray; } @@ -427,6 +481,14 @@ this.externalCode = externalCode; } + public String getInventorySerialNumber() { + return inventorySerialNumber; + } + + public void setInventorySerialNumber(String inventorySerialNumber) { + this.inventorySerialNumber = inventorySerialNumber; + } + public String getGoodsType() { return goodsType; } Index: ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java =================================================================== diff -u -r29071 -r34511 --- ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 29071) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 34511) @@ -1239,6 +1239,7 @@ item.setWareHouseId(warehouse.getId()); item.setWareHouseName(warehouse.getName()); item.setExternalCode(disposableGoodsStock.getExternalCode()); + item.setInventorySerialNumber(disposableGoodsStock.getInventorySerialNumber()); item.setExpDate(disposableGoodsBatchStock.getExpDate()); item.setGoodsType(disposableGoods.getGoodsType()); item.setSequence(disposableGoods.getSequence()); @@ -1519,12 +1520,14 @@ //若为已更新的一次性物品盘点单 if(InventoryRecord.TYPE_DISPOSABLEGOOD.equals(record.getType()) &&InventoryRecord.STATUS_HAS_BEEN_UPDATED.equals(record.getStatus())){ - paramsJson.put("columns", InventoryItem.updatedDisposableGoodsColumnNameAndPoPropertyNameArrray); - sheetColumnSize = InventoryItem.updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.size(); + JSONArray updatedDisposableGoodsColumnNameAndPoPropertyNameArrray = InventoryItem.buildUpdatedDisposableGoodsColumnNameAndPoPropertyNameArrray(); + paramsJson.put("columns", updatedDisposableGoodsColumnNameAndPoPropertyNameArrray); + sheetColumnSize = updatedDisposableGoodsColumnNameAndPoPropertyNameArrray.size(); } else if (InventoryRecord.TYPE_DISPOSABLEGOOD.equals(record.getType())) { - paramsJson.put("columns", InventoryItem.disposableGoodsColumnNameAndPoPropertyNameArrray); - sheetColumnSize = InventoryItem.disposableGoodsColumnNameAndPoPropertyNameArrray.size(); + JSONArray disposableGoodsColumnNameAndPoPropertyNameArrray = InventoryItem.buildDisposableGoodsColumnNameAndPoPropertyNameArrray(); + paramsJson.put("columns", disposableGoodsColumnNameAndPoPropertyNameArrray); + sheetColumnSize = disposableGoodsColumnNameAndPoPropertyNameArrray.size(); } else { sheetColumnSize = InventoryItem.materialColumnNameAndPoPropertyNameArrray.size(); Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.99_5.0.0.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.99_5.0.0.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.99_5.0.0.sql (revision 34511) @@ -0,0 +1 @@ +update InventoryItem set inventorySerialNumber = (select dgs.inventorySerialNumber from DisposableGoodsStock dgs where dgs.id = InventoryItem.disposableGoodsStockId) where inventorySerialNumber is null; \ No newline at end of file