Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/dto/MaterialEntryItemDto.java =================================================================== diff -u --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/dto/MaterialEntryItemDto.java (revision 0) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/dto/MaterialEntryItemDto.java (revision 41133) @@ -0,0 +1,81 @@ +package com.forgon.disinfectsystem.maintain.importbasedata.dto; + +/** + * 材料入库明细的dto + * BJDXZLYY-79 + */ +public class MaterialEntryItemDto { + + /** + * 材料定义id + */ + private String materialId; + /** + * 数量 + */ + private Integer amount; + /** + * 单价 + */ + private Double cost; + /** + * 供应商 + */ + private String supplierName; + /** + * 注册证号 + */ + private String certification; + /** + * 有无发票 + */ + private String hasInvoice; + /** + * 是否高值耗材 + */ + private String goodsType; + + public String getMaterialId() { + return materialId; + } + public void setMaterialId(String materialId) { + this.materialId = materialId; + } + public Integer getAmount() { + return amount; + } + public void setAmount(Integer amount) { + this.amount = amount; + } + public Double getCost() { + return cost; + } + public void setCost(Double cost) { + this.cost = cost; + } + public String getSupplierName() { + return supplierName; + } + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + public String getCertification() { + return certification; + } + public void setCertification(String certification) { + this.certification = certification; + } + public String getHasInvoice() { + return hasInvoice; + } + public void setHasInvoice(String hasInvoice) { + this.hasInvoice = hasInvoice; + } + public String getGoodsType() { + return goodsType; + } + public void setGoodsType(String goodsType) { + this.goodsType = goodsType; + } + +} Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/action/ImportSingleStorageController.java =================================================================== diff -u -r21821 -r41133 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/action/ImportSingleStorageController.java (.../ImportSingleStorageController.java) (revision 21821) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/action/ImportSingleStorageController.java (.../ImportSingleStorageController.java) (revision 41133) @@ -68,7 +68,7 @@ break; case "material": // 材料 - importBasedataManager.importMaterialEntrysFromInputStreams_TRANS_REQUIRED(inputStreams); + importBasedataManager.importMaterialEntrysFromInputStreams_TRANS_REQUIRED(request,inputStreams); break; default: throw new RuntimeException("类型参数错误!"); Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/importbasedata/material.xls =================================================================== diff -u -r12331 -r41133 Binary files differ Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java =================================================================== diff -u -r38902 -r41133 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 38902) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 41133) @@ -19,6 +19,8 @@ import javax.servlet.http.HttpServletRequest; +import net.sf.json.JSONArray; + import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.math.NumberUtils; @@ -85,8 +87,10 @@ import com.forgon.disinfectsystem.exception.ImportDataException; import com.forgon.disinfectsystem.expirationdateinfo.service.ExpirationDateInfoManager; import com.forgon.disinfectsystem.labeltemplate.service.LabelTemplateManager; +import com.forgon.disinfectsystem.maintain.importbasedata.dto.MaterialEntryItemDto; import com.forgon.disinfectsystem.tousse.instrumentsettype.service.InstrumentSetTypeManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; +import com.forgon.disinfectsystem.tousse.materialmanager.service.MaterialEntryManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.excel.service.CommonImportManager; @@ -172,7 +176,13 @@ private InstrumentSetTypeManager instrumentSetTypeManager; private DataModifyRecordManager dataModifyRecordManager; + + private MaterialEntryManager materialEntryManager; + public void setMaterialEntryManager(MaterialEntryManager materialEntryManager) { + this.materialEntryManager = materialEntryManager; + } + public void setDataModifyRecordManager(DataModifyRecordManager dataModifyRecordManager) { this.dataModifyRecordManager = dataModifyRecordManager; } @@ -4710,18 +4720,18 @@ } // 导入材料 @Override - public void importMaterialEntrysFromInputStreams_TRANS_REQUIRED( + public void importMaterialEntrysFromInputStreams_TRANS_REQUIRED(HttpServletRequest request, List inputStreams) { - importMaterialEntrysFromInputStreams_internal(inputStreams); + importMaterialEntrysFromInputStreams_internal(request, inputStreams); } - private void importMaterialEntrysFromInputStreams_internal( + private void importMaterialEntrysFromInputStreams_internal(HttpServletRequest request, List inputStreams) { List sheets = getSheetsFromStreams(inputStreams); if (sheets.size() == 0) { throw new RuntimeException("没有要导入的表格!"); } - importMaterialEntrysFromSheets(sheets); + importMaterialEntrysFromSheets(request, sheets); } /** * @param inputStreams @@ -5455,16 +5465,152 @@ // TODO,代码有bug,如果需要导入,必须重新写代码。 } - private void importMaterialEntrysFromSheets(List sheets){ - Map returnMsg = new HashMap(); + private void importMaterialEntrysFromSheets(HttpServletRequest request, List sheets){ + String warehouseID = request.getParameter("warehouseID"); + if(!DatabaseUtil.isPoIdValid(warehouseID)){ + throw new RuntimeException(String.format("仓库id不能为空!")); + } + WareHouse wareHouse = wareHouseManager.getWareHouseById(warehouseID); + if(wareHouse == null){ + throw new RuntimeException(String.format("仓库id无效!")); + } for (HSSFSheet hssfSheet : sheets) { - importMaterialEntrysFromSheet(hssfSheet); + importMaterialEntrysFromSheet(wareHouse, hssfSheet); } } public void importMaterialEntrysFromSheet(){ } + + /** + * 导入材料入库单 + * @param wareHouse 仓库 + * @param materialSheet excel + * @return true/false + */ + private boolean importMaterialEntrysFromSheet(WareHouse wareHouse, HSSFSheet materialSheet) { + if (materialSheet == null) { + return false; + } + List itemsList = new ArrayList(); + int lastRowNum = materialSheet.getLastRowNum(); + for (int i = 1; i <= lastRowNum; i++) { + HSSFRow row = materialSheet.getRow(i); + int currentRowNum = i + 1; + if (row == null || ParerUtils.isBlankRow(row)) { + continue; + } + MaterialEntryItemDto itemDto = getMaterialEntryItemDtoFromCurrentRow(row, currentRowNum); + itemsList.add(itemDto); + } + if (itemsList.size() == 0) + return false; + + //物品不能重复 + Set materialIdSet = new HashSet(); + for (int i=0; i inputStreams,List errInfos); // 导入材料 - public void importMaterialEntrysFromInputStreams_TRANS_REQUIRED(List inputStreams); + public void importMaterialEntrysFromInputStreams_TRANS_REQUIRED(HttpServletRequest request, List inputStreams); /*** * 导入科室干预处理信息