Index: ssts-web/src/main/java/com/forgon/disinfectsystem/systemexamination/action/DisposableGoodsStockExaminationAction.java =================================================================== diff -u -r29565 -r29576 --- ssts-web/src/main/java/com/forgon/disinfectsystem/systemexamination/action/DisposableGoodsStockExaminationAction.java (.../DisposableGoodsStockExaminationAction.java) (revision 29565) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/systemexamination/action/DisposableGoodsStockExaminationAction.java (.../DisposableGoodsStockExaminationAction.java) (revision 29576) @@ -19,6 +19,7 @@ import org.apache.struts2.convention.annotation.ParentPackage; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; +import com.forgon.disinfectsystem.diposablegoods.service.DisposableGoodsStockManager; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; @@ -48,6 +49,8 @@ private DiposableGoodsManager diposableGoodsManager; + private DisposableGoodsStockManager disposableGoodsStockManager; + private ObjectDao objectDao; /** @@ -78,6 +81,11 @@ this.objectDao = objectDao; } + public void setDisposableGoodsStockManager( + DisposableGoodsStockManager disposableGoodsStockManager) { + this.disposableGoodsStockManager = disposableGoodsStockManager; + } + /** * 一次性物品库存、批次库存以及标识号的数据体检功能 * 异常情况1:一次性物品标识号的数据引用错误 @@ -237,7 +245,7 @@ public void modifyDisposableGoodsStock(){ String disposableGoodsIds = StrutsParamUtils.getPraramValue("disposableGoodsIds", ""); JSONObject result = JSONUtil.buildJsonObject(true, "修改成功"); - if(StringUtils.isNotBlank(disposableGoodsIds)){ + /*if(StringUtils.isNotBlank(disposableGoodsIds)){ List disposableGoodsIdList = Arrays.asList(disposableGoodsIds.split(",")); // 查找一次性物品批次库存及一次性物品标识号 String sql = String.format("select po, r from %s po left join po.identifications r where %s order by r.entryDate ", DisposableGoodsBatchStock.class.getSimpleName(), @@ -297,6 +305,15 @@ objectDao.excuteSQL(sql1); objectDao.excuteSQL(sql2); } + }*/ + try { + if(StringUtils.isNotBlank(disposableGoodsIds)){ + List disposableGoodsIdList = Arrays.asList(disposableGoodsIds.split(",")); + disposableGoodsStockManager.modifyDisposableGoodsStock(disposableGoodsIdList); + } + } catch (Exception e) { + result = JSONUtil.buildJsonObject(false, e.getMessage()); + e.printStackTrace(); } StrutsResponseUtils.output(result); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManagerImpl.java =================================================================== diff -u -r23603 -r29576 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManagerImpl.java (.../DisposableGoodsStockManagerImpl.java) (revision 23603) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManagerImpl.java (.../DisposableGoodsStockManagerImpl.java) (revision 29576) @@ -25,6 +25,7 @@ import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.diposablegoods.util.DisposableGoodsUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.security.tools.Util; @@ -344,4 +345,19 @@ return storage; } + + @Override + public void modifyDisposableGoodsStock(List disposableGoodsIdList) { + if(CollectionUtils.isEmpty(disposableGoodsIdList)){ + return; + } + // 根据一次性物品标识号库存数量,更新一次性物品批次库存和一次性物品库存 + String disposableGoodsIdSql = SqlUtils.getNonStringFieldInLargeCollectionsPredicate("disposableGoodsId", disposableGoodsIdList); + String disposableGoodsIDSql = SqlUtils.getNonStringFieldInLargeCollectionsPredicate("disposableGoodsID", disposableGoodsIdList); + String sql1 = "update " + DisposableGoodsBatchStock.class.getSimpleName() + " set storage = (select sum(amount) from DisposableGoodsIdentification po where po.batch_id = DisposableGoodsBatchStock.id) where " + disposableGoodsIdSql; + String sql2 = "update " + DisposableGoodsStock.class.getSimpleName() + " set amount = (select sum(po.storage) from DisposableGoodsBatchStock po where po.diposablegoods_id = DisposableGoodsStock.id) where " + disposableGoodsIDSql; + objectDao.excuteSQL(sql1); + objectDao.excuteSQL(sql2); + } + } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java =================================================================== diff -u -r21968 -r29576 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java (.../DisposableGoodsStockManager.java) (revision 21968) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java (.../DisposableGoodsStockManager.java) (revision 29576) @@ -68,4 +68,10 @@ * @return 重新计算后的库存数量 */ int getDisposableGoodsStock(String handleDepartCode, String disposableGoodsId); + + /** + * 一次性物品库存修复(根据一次性物品标识号库存数量,更新一次性物品批次库存和一次性物品库存) + */ + public void modifyDisposableGoodsStock(List disposableGoodsIdList); + }