Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsGodownOutEntryView.js =================================================================== diff -u -r20980 -r20993 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsGodownOutEntryView.js (.../expensiveGoodsGodownOutEntryView.js) (revision 20980) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsGodownOutEntryView.js (.../expensiveGoodsGodownOutEntryView.js) (revision 20993) @@ -987,6 +987,29 @@ id = records[0].data['id']; editRecord(id); }; +function godownOutEntryAllPreInInstance(grid){ + top.Ext.MessageBox.confirm("请确认","是否确定要退库所有预入库的高值耗材?", + function(button, text) { + if ("yes" == button){ + Ext.Ajax.request({ + url : WWWROOT + '/disinfectSystem/expensiveGoodsGodownEntryAction!godownOutEntryAllPreInInstance.do', +// params : {ids : ids}, + success : function(response, options) { + var result = Ext.decode(response.responseText); + var success = result.success; + if (success) { + grid.dwrReload(); + showResult(result.message); + } + }, + failure : function(response, options) { + showResult(response.responseText); + } + }); + } + } + ); +} /* * "根据id查看退库单信息表" */ @@ -1114,6 +1137,17 @@ } }); tbar.push('-'); + // 一键退库 + tbar.push({ + text : '一键退库', + hidden : SSTS_ExpensiveGoodsPurchaseGodownEntry_Update, + iconCls : 'btn_ext_application_edit', + id : 'editTbar', + handler : function() { + godownOutEntryAllPreInInstance(grid); + } + }); + tbar.push('-'); tbar.push({ text : '打印', Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/ExpensiveGoodsGodownEntry.java =================================================================== diff -u -r20841 -r20993 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/ExpensiveGoodsGodownEntry.java (.../ExpensiveGoodsGodownEntry.java) (revision 20841) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/ExpensiveGoodsGodownEntry.java (.../ExpensiveGoodsGodownEntry.java) (revision 20993) @@ -60,6 +60,7 @@ public static final String SUBTYPE_PREPARE_IN = "预入库"; public static final String SUBTYPE_MANUAL_OUT = "手工退库"; public static final String SUBTYPE_PREPARE_OUT = "预出库"; + public static final String SUBTYPE_ONEKEY_OUT = "一键退库"; private Double totalPrice;//总价 Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java =================================================================== diff -u -r20980 -r20993 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java (.../ExpensiveGoodsGodownEntryManagerImpl.java) (revision 20980) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java (.../ExpensiveGoodsGodownEntryManagerImpl.java) (revision 20993) @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import com.forgon.Constants; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; @@ -953,5 +954,55 @@ // TODO Auto-generated method stub } + + /** + * 一键退库 + */ + @Override + public void godownOutEntryAllPreInInstance(){ + String sql = String.format(" where po.status='%s' and po.entryType='%s' ", ExpensiveGoodsInstance.STATUS_IN_WAREHOUSE,ExpensiveGoodsInstance.ENTRY_TYPE_PREPARE); +// String sql = String.format(" where po.status='%s' ", ExpensiveGoodsInstance.STATUS_PRE_IN_WAREHOUSE); + List list = objectDao.getBySql_ForUpdate2(ExpensiveGoodsInstance.class.getSimpleName(), sql); + if(CollectionUtils.isEmpty(list)){ + throw new RuntimeException("没有需要退库的高值耗材!"); + } + Date newDate = new Date(); + ExpensiveGoodsGodownEntry entry = new ExpensiveGoodsGodownEntry(); + entry.setOperator(AcegiHelper.getLoginUserFullName()); + entry.setOrgUnitCode(AcegiHelper.getCurrentOrgUnitCode()); + entry.setOrgUnitName(AcegiHelper.getCurrentOrgUnitName()); + entry.setSerialNumber(serialNumManager + .getSerialNumberStr(SerialNum.TYPE_INSERT_GODOWN)); + entry.setSubType(ExpensiveGoodsGodownEntry.SUBTYPE_ONEKEY_OUT); + entry.setTime(newDate); + entry.calculateTotalPrice(); + entry.setType(ExpensiveGoodsGodownEntry.TYPE_OUT); + List itemsList = entry.getItemsList(); + for (ExpensiveGoodsInstance expensiveGoodsInstance : list) { + expensiveGoodsInstance.setStatus(ExpensiveGoodsInstance.STATUS_OUT_WAREHOUSE); + + ExpensiveGoods expensiveGoods = expensiveGoodsInstance.getExpensiveGoods(); + ExpensiveGoodsGodownEntryItem item = new ExpensiveGoodsGodownEntryItem(); + item.setBarcode(expensiveGoodsInstance.getBarcode()); + item.setCertification(expensiveGoods.getCertification()); + item.setCost(expensiveGoodsInstance.getPrice()); + item.setExpDate(expensiveGoodsInstance.getExpDate()); + item.setExpensiveGoodsGodownEntry(entry); + item.setExpensiveGoodsId(expensiveGoods.getId()); + item.setExpensiveGoodsInstanceId(expensiveGoodsInstance.getId()); + item.setExpensiveGoodsStockId(expensiveGoodsInstance.getExpensiveGoodsStockId()); + item.setFirstBodyCode(expensiveGoodsInstance.getFirstBodyCode()); + item.setGrade(expensiveGoods.getGrade()); + item.setSecondBodyCode(expensiveGoodsInstance.getSecondBodyCode()); +// item.setSupplierId(expensiveGoods.get); +// item.setSupplierName(expensiveGoodsInstance.get); + item.setThirdBodyCode(expensiveGoodsInstance.getThirdBodyCode()); + item.setWarehouseID(expensiveGoodsInstance.getWarehouseID()); + item.setWarehouseName(expensiveGoodsInstance.getWarehouseName()); + + itemsList.add(item); + } + objectDao.save(entry); + } } Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsGodownEntryAction.java =================================================================== diff -u -r20980 -r20993 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsGodownEntryAction.java (.../ExpensiveGoodsGodownEntryAction.java) (revision 20980) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsGodownEntryAction.java (.../ExpensiveGoodsGodownEntryAction.java) (revision 20993) @@ -468,6 +468,25 @@ e.printStackTrace(); } } + + public void godownOutEntryAllPreInInstance() { + String message = "退库成功!"; + try { + expensiveGoodsGodownEntryManager.godownOutEntryAllPreInInstance(); + } catch (Exception e) { + e.printStackTrace(); + message = e.getMessage(); + } + HttpServletResponse httpServletResponse = StrutsParamUtils + .getResponse(); + httpServletResponse.setCharacterEncoding("UTF-8"); + try { + httpServletResponse.getWriter().print( + "{success:true,message:'" + message + "'}"); + } catch (IOException e) { + e.printStackTrace(); + } + } // 删除退库单 public void interfere_deleteGodownEntryOut() { Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java =================================================================== diff -u -r20841 -r20993 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java (.../ExpensiveGoodsGodownEntryManager.java) (revision 20841) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java (.../ExpensiveGoodsGodownEntryManager.java) (revision 20993) @@ -56,5 +56,9 @@ public void setGodownEntryDefaultWareHouse(ExpensiveGoodsGodownEntry entry,String orgUnitCoding); public void printSomeGodownEntryItem(String items,JSONObject jsonObj); + /** + * 一键退库 + */ + public void godownOutEntryAllPreInInstance(); }