Index: ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialAppropriationView.js =================================================================== diff -u -r18471 -r18482 --- ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialAppropriationView.js (.../materialAppropriationView.js) (revision 18471) +++ ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialAppropriationView.js (.../materialAppropriationView.js) (revision 18482) @@ -527,7 +527,11 @@ var name = top.Ext.getCmp('name1').getRawValue(); var count = top.Ext.getCmp('amount1').getValue(); var priceAmount = getSelectedPriceAmount(); - addItems(materialDefinitionId,name,count,priceAmount); + if (name) { + addItems(materialDefinitionId,name,count,priceAmount); + } else { + showResult('材料不能为空!'); + } } }] })], Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java =================================================================== diff -u -r18471 -r18482 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 18471) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 18482) @@ -33,10 +33,12 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; +import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.materialmanager.MaterialEntry; import com.forgon.disinfectsystem.entity.materialmanager.MaterialEntryItem; @@ -70,12 +72,18 @@ private GoodsStockManager goodsStockManager; private SqlFunctionsAdapter sqlFunctionsAdapter; + + private WareHouseManager wareHouseManager; public void setMaterialEntryItemManager( MaterialEntryItemManager materialEntryItemManager) { this.materialEntryItemManager = materialEntryItemManager; } + public void setWareHouseManager(WareHouseManager wareHouseManager) { + this.wareHouseManager = wareHouseManager; + } + public void setSerialNumManager(SerialNumManager serialNumManager) { this.serialNumManager = serialNumManager; } @@ -180,14 +188,13 @@ return null; } /** - * 保存材料入库单 + * 保存材料入库单带科室ID和科室名称 * @param materialEntry * @param items * @throws Exception */ @Override - public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier) throws Exception { - + public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier,String orgUnitCode,String orgUnitName) throws Exception{ if(materialEntry.getWareHouseId() == null){ throw new RuntimeException("请选择仓库"); } @@ -277,9 +284,6 @@ saveOrUpdate(materialEntry); List goodsStockList = new ArrayList(); - LoginUserData loginUser = AcegiHelper.getLoginUser(); - String orgUnitCode = loginUser.getOrgUnitCodingFromSupplyRoomConfig(); - String orgUnitName = loginUser.getOrgUnitNameCodingFromSupplyRoomConfig(); for (MaterialEntryItem materialEntryItem : materialEntryItems) { GoodsStock stock = new GoodsStock(); stock.setMaterialDefinitionId(materialEntryItem.getMaterialDefinition().getId()); @@ -312,6 +316,19 @@ throw new RuntimeException(e.getMessage()); } } + /** + * 保存材料入库单 + * @param materialEntry + * @param items + * @throws Exception + */ + @Override + public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier) throws Exception { + LoginUserData loginUser = AcegiHelper.getLoginUser(); + String orgUnitCode = loginUser.getOrgUnitCodingFromSupplyRoomConfig(); + String orgUnitName = loginUser.getOrgUnitNameCodingFromSupplyRoomConfig(); + saveMaterialEntry(materialEntry, items,accordingToSupplier,orgUnitCode,orgUnitName); + } /** * 保存材料入库单(指定入库的科室编码) @@ -706,6 +723,7 @@ } temp.put("materialDefinitionId", materialDefinitionId); temp.put("name", name); + temp.put("specification", specification); temp.put("spelling", resultSet.getString("spelling")); temp.put("externalCode", resultSet.getString("externalCode")); temp.put("unit", StringTools.getDefaultString(resultSet.getString("unit"))); @@ -773,6 +791,9 @@ && p.getAmount() > 0).collect(Collectors.toList()); int totalAmount = goodsStockManager.calculateTotalAmount(useGoodsStock); if(totalAmount < amount){ + if(item.getMaterialDefinition().getSpecification() != null){ + throw new RuntimeException("材料(" + item.getMaterialDefinition().getName() + "[" + item.getMaterialDefinition().getSpecification() + "]" + ")库存不足"); + } throw new RuntimeException("材料(" + item.getMaterialDefinition().getName() + ")库存不足"); } @@ -798,16 +819,24 @@ MaterialEntry appropriateEntry = clone(entry); appropriateEntry.setId(null); appropriateEntry.setSourceId(entry.getId()); + String orgUnitCode = null; + String orgUnitName = null; if(inOrOut){ + WareHouse wareHouse= wareHouseManager.getWareHouseById(entry.getTargetWareHouseId()); appropriateEntry.setType(MaterialEntry.TYPE_IN); appropriateEntry.setSubType(MaterialEntry.SUBTYPE_MOVE_IN); appropriateEntry.setWareHouseId(entry.getTargetWareHouseId()); appropriateEntry.setWareHouseName(entry.getTargetWareHouseName()); + orgUnitCode = wareHouse.getOrgUnitCode(); + orgUnitName = wareHouse.getOrgUnitName(); }else{ + WareHouse outWareHouse= wareHouseManager.getWareHouseById(entry.getWareHouseId()); appropriateEntry.setType(MaterialEntry.TYPE_OUT); appropriateEntry.setSubType(MaterialEntry.SUBTYPE_MOVE_OUT); appropriateEntry.setWareHouseId(entry.getWareHouseId()); appropriateEntry.setWareHouseName(entry.getWareHouseName()); + orgUnitCode = outWareHouse.getOrgUnitCode(); + orgUnitName = outWareHouse.getOrgUnitName(); } JSONArray array = new JSONArray(); @@ -823,7 +852,7 @@ array.add(json); } try { - saveMaterialEntry(appropriateEntry,array.toString(),true); + saveMaterialEntry(appropriateEntry,array.toString(),true,orgUnitCode,orgUnitName); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js =================================================================== diff -u -r18218 -r18482 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js (.../materialDefinitionForm.js) (revision 18218) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js (.../materialDefinitionForm.js) (revision 18482) @@ -453,7 +453,7 @@ displayField : 'value', store : new Ext.data.SimpleStore({ fields : [ 'value' ], - data : [ ['否' ], ['是' ]] + data : [ ['是' ], ['否' ]] }), editable:false, forceSelection : true,