Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r12728 -r12730 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12728) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12730) @@ -367,7 +367,7 @@ */ private void saveGodownEntry_internal(GodownEntry entry, Long warehouseID,String warehouseName, - Map idToDiposableGoodsMap,Map disposableGoodsIDToDisposableGoodsStockMap,Map idToDisposableGoodsStockMap, + Map idToDisposableGoodsMap,Map disposableGoodsIDToDisposableGoodsStockMap,Map idToDisposableGoodsStockMap, Map idToDisposableGoodsBatchMap ,Map idToBatchStockMap, Map idToIdentificationMap) { // 计算总价 @@ -389,31 +389,37 @@ GodownEntryItem godownEntryItem = itemList.get(i); Long disposableGoodsID = godownEntryItem.getDisposableGoodsID(); Long disposableGoodsStockID = godownEntryItem.getDisposableGoodsStockID(); - DisposableGoodsStock diposableGoods = idToDisposableGoodsStockMap.get(disposableGoodsStockID); + DisposableGoods diposableGoods = idToDisposableGoodsMap.get(disposableGoodsID); + DisposableGoodsStock disposableGoodsStock = idToDisposableGoodsStockMap.get(disposableGoodsStockID); String batchNumber = godownEntryItem.getBatchNumber(); + if(StringUtils.isBlank(batchNumber)){ + throw new RuntimeException("批次号不能为空!"); + } + // 查找批次定义 + // 保存时,每一项都是新建标识号对象 Long disposableGoodsBatchID = godownEntryItem.getDisposableGoodsBatchID(); - Long batchStockID = godownEntryItem.getDisposableGoodsBatchStockID(); + Long disposableGoodsBatchStockID = godownEntryItem.getDisposableGoodsBatchStockID(); DisposableGoodsBatchStock batchStock = null; - if(batchStockID == null){ + if(disposableGoodsBatchStockID == null){ // 有可能该批次已经存在,尝试根据批次获取 batchStock = getDiposableGoodBatchStockByBatchNumber(disposableGoodsStockID,batchNumber); if(batchStock == null){ // 新建 批次 batchStock = new DisposableGoodsBatchStock(); - batchStock.setDiposableGoods(diposableGoods); - diposableGoods.getGoodsBatchs().add(batchStock); - diposableGoods.setWarehouseID(entry.getWarehouseID()); - diposableGoods.setWarehouseName(entry.getWarehouseName()); + batchStock.setDiposableGoods(disposableGoodsStock); + disposableGoodsStock.getGoodsBatchs().add(batchStock); + disposableGoodsStock.setWarehouseID(entry.getWarehouseID()); + disposableGoodsStock.setWarehouseName(entry.getWarehouseName()); diposableGoodBatchStockManager.saveOrUpdate(batchStock); newBatch = true; } idToBatchStockMap.put(batchStock.getId(), batchStock); }else{ // 更新批次 - batchStock = idToBatchStockMap.get(batchStockID); + batchStock = idToBatchStockMap.get(disposableGoodsBatchStockID); if(batchStock == null){ // 批次已经不存在 throw new RuntimeException("批次已被删除!"); @@ -453,17 +459,17 @@ // 设置godownEntryItem和批次,标识号关联的信息 godownEntryItem.setDisposableGoodsBatchStockID(batchStock.getId()); godownEntryItem.setIdentificationID(identification.getId()); - godownEntryItem.setDisposableGoodsStockID(diposableGoods.getId()); - godownEntryItem.setDiposableGoods(diposableGoods); + godownEntryItem.setDisposableGoodsStockID(disposableGoodsStock.getId()); + godownEntryItem.setDiposableGoods(disposableGoodsStock); if(!godownEntryItem.isAssociatedInfoValidForInEntry()){ throw new RuntimeException("关联信息不正确!"); } objectDao.update(godownEntryItem);// 更新关联信息 // 新建项需要修改一次性物品价格 - diposableGoods.setReferencePrice(godownEntryItem.getCost()); + disposableGoodsStock.setReferencePrice(godownEntryItem.getCost()); objectDao.update(batchStock); - objectDao.update(diposableGoods); + objectDao.update(disposableGoodsStock); } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java =================================================================== diff -u -r12728 -r12730 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 12728) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 12730) @@ -9,6 +9,8 @@ import net.sf.json.JSONObject; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.IdentificationOfDisposableGoods; import com.forgon.disinfectsystem.vo.PriceAmount; @@ -27,6 +29,9 @@ public DisposableGoods getDisposableGoodsByName(String name,String specification); + public DisposableGoodsBatchStock getDisposableGoodsStockByBatchNumber(Long warehouseID,Long disposableGoodsID, String batchNumber); + public DisposableGoodsBatch getDisposableGoodsBatchByBatchNumber(Long disposableGoodsID, String batchNumber) ; + public void deleteDiposableGoodsById(String id); public boolean verifyDiposableGoods(String id, String name, Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r12728 -r12730 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 12728) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 12730) @@ -36,6 +36,7 @@ import com.forgon.disinfectsystem.diposablegoods.util.DiposableGoodsUtils; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; @@ -719,6 +720,22 @@ return (DisposableGoods) objectDao.getBySql( DisposableGoods.class.getSimpleName(), sql); } + public DisposableGoodsBatchStock getDisposableGoodsStockByBatchNumber(Long warehouseID,Long disposableGoodsID, String batchNumber){ + String sql = String.format( + " where po.warehouseID=%s po.disposableGoodsID=%s and po.batchNumber='%s' ", + disposableGoodsID, batchNumber); + return (DisposableGoodsBatchStock) objectDao.getBySql( + DisposableGoodsBatchStock.class.getSimpleName(), sql); + } + + public DisposableGoodsBatch getDisposableGoodsBatchByBatchNumber( + Long disposableGoodsID, String batchNumber) { + String sql = String.format( + " where po.diposableGoods.id=%s and po.batchNumber='%s' ", + disposableGoodsID, batchNumber); + return (DisposableGoodsBatch) objectDao.getBySql( + DisposableGoodsBatch.class.getSimpleName(), sql); + } /** * 从excel文档导入一次性物品信息 add by panhaowen * Index: ssts-web/src/main/java/com/forgon/disinfectsystem/stocktakemanager/service/StockTakeInfoManagerImpl.java =================================================================== diff -u -r12728 -r12730 --- ssts-web/src/main/java/com/forgon/disinfectsystem/stocktakemanager/service/StockTakeInfoManagerImpl.java (.../StockTakeInfoManagerImpl.java) (revision 12728) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/stocktakemanager/service/StockTakeInfoManagerImpl.java (.../StockTakeInfoManagerImpl.java) (revision 12730) @@ -363,17 +363,17 @@ entry.setSerialNumber(serialNumManager .getSerialNumberStr(SerialNum.TYPE_INSERT_GODOWN)); entry.setTime(stockTakeInfo.getStockTakeDate()); - entry.setWareHouseId(stockTakeInfo.getWareHouseId()); - entry.setWareHouseName(stockTakeInfo.getWareHouseName()); + entry.setWarehouseID(stockTakeInfo.getWareHouseId()); + entry.setWarehouseName(stockTakeInfo.getWareHouseName()); entry.setSourceId(stockTakeInfo.getId());//记录盘点记录的ID GodownEntryItem entryItem = null; for(int i = 0;i < in_array.size();i++){ JSONObject jsonObject = in_array.getJSONObject(i); entryItem = new GodownEntryItem(); entryItem.setAmount(jsonObject.optLong("amount")); - entryItem.setDiposableGoodsID(jsonObject.optLong("batchID")); - entryItem.setBatchID(jsonObject.optLong("batchNumber")); + entryItem.setDisposableGoodsStockID(jsonObject.optLong("batchID")); + entryItem.setDisposableGoodsBatchStockID(jsonObject.optLong("batchNumber")); entryItem.setBatchNumber(jsonObject.optString("batchNumber")); entry.getItemsList().add(entryItem); } @@ -394,17 +394,17 @@ entry.setSerialNumber(serialNumManager .getSerialNumberStr(SerialNum.TYPE_INSERT_GODOWN)); entry.setTime(stockTakeInfo.getStockTakeDate()); - entry.setWareHouseId(stockTakeInfo.getWareHouseId()); - entry.setWareHouseName(stockTakeInfo.getWareHouseName()); + entry.setWarehouseID(stockTakeInfo.getWareHouseId()); + entry.setWarehouseName(stockTakeInfo.getWareHouseName()); entry.setSourceId(stockTakeInfo.getId());//记录盘点记录的ID GodownEntryItem entryItem = null; for(int i = 0;i < in_array.size();i++){ JSONObject jsonObject = in_array.getJSONObject(i); entryItem = new GodownEntryItem(); entryItem.setAmount(jsonObject.optLong("amount")); - entryItem.setDiposableGoodsID(jsonObject.optLong("batchID")); - entryItem.setBatchID(jsonObject.optLong("batchNumber")); + entryItem.setDisposableGoodsStockID(jsonObject.optLong("batchID")); + entryItem.setDisposableGoodsBatchStockID(jsonObject.optLong("batchNumber")); entryItem.setBatchNumber(jsonObject.optString("batchNumber")); entry.getItemsList().add(entryItem); }