Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java =================================================================== diff -u -r14750 -r14758 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 14750) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 14758) @@ -324,13 +324,20 @@ this.deliverStatus = deliverStatus; } + public boolean deliverStatusNotSet() { + if (StringUtils.isBlank(deliverStatus)) { + return true; + } + return false; + } + public boolean awaitDeliver() { if (DELIVERSTATUS_AWAITDELIVER.equals(deliverStatus)) { return true; } return false; } - + public boolean partDelivered() { if (DELIVERSTATUS_PARTDELIVERED.equals(deliverStatus)) { return true; Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java =================================================================== diff -u -r14750 -r14758 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java (.../ForeignProxyDisinfectionManagerImpl.java) (revision 14750) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java (.../ForeignProxyDisinfectionManagerImpl.java) (revision 14758) @@ -145,26 +145,30 @@ } @Override - public void deleteByIds(String[] ids) throws Exception { - if (ids == null || ids.length < 1) - return; - for (String id : ids) { - ForeignProxyDisinfection foreignProxyDisinfection = getById(id); - // 如果不是待发货状态,不让删 - if (!InvoicePlan.DELIVERSTATUS_AWAITDELIVER - .equals(foreignProxyDisinfection.getDeliverStatus())) { - throw new Exception("不能删除状态为" - + foreignProxyDisinfection.getDeliverStatus() + "的记录!"); - } - // 如果是待发货状态,只要有一个器械包不是已审核状态,不让删 - // 判断器械包是否已经有已灭菌或已发货的 - boolean reviewed = checkToussesInForeignProxyItemHasSterileOrDelivered(Long - .valueOf(id)); - if (reviewed) { - throw new Exception("该记录包含的器械包已部分灭菌或发货,不能删除!"); - } - deleteForeignProxyDisinfection(foreignProxyDisinfection); + public void deleteById(String id) { + if(StringUtils.isBlank(id)){ + throw new RuntimeException("id 不能为空!"); } + ForeignProxyDisinfection foreignProxyDisinfection = getByID_ForUpdate(Long.valueOf(id)); + if(foreignProxyDisinfection == null){ + throw new RuntimeException("申请单已被删除!"); + } + if(!foreignProxyDisinfection.deliverStatusNotSet() && !foreignProxyDisinfection.awaitDeliver() && !foreignProxyDisinfection.deliverEnd()){ + throw new RuntimeException(String.format("不能删除状态为%s的记录!", foreignProxyDisinfection.getDeliverStatus())); + } + // 如果不是待装配或者待发货状态,不让删 + if (!InvoicePlan.DELIVERSTATUS_AWAITDELIVER + .equals(foreignProxyDisinfection.getDeliverStatus())) { + + } + // 如果是待发货状态,只要有一个器械包不是已审核状态,不让删 + // 判断器械包是否已经有已灭菌或已发货的 + boolean reviewed = checkToussesInForeignProxyItemHasSterileOrDelivered(Long + .valueOf(id)); + if (reviewed) { + throw new RuntimeException("该记录包含的器械包已部分灭菌或发货,不能删除!"); + } + deleteForeignProxyDisinfection(foreignProxyDisinfection); } @@ -898,21 +902,10 @@ @Override public boolean checkToussesInForeignProxyItemHasSterileOrDelivered(Long id) { String sql = String - .format("select count(*) count from tousseinstance where status<>'已审核' and foreignproxyitem_id in(select id from foreignproxyitem where foreignproxydisinfection_id=%d) ", + .format(" where po.invoicePlanID=%d and po.status not in('已装配','已审核') ", id); - ResultSet resultSet = objectDao.executeSql(sql); - try { - if (resultSet.next()) { - int count = resultSet.getInt("count"); - return count > 0; - } - } catch (SQLException e) { - e.printStackTrace(); - return false; - }finally { - DatabaseUtil.closeResultSetAndStatement(resultSet); - } - return false; + int count = objectDao.countObjectBySql(TousseInstance.class.getSimpleName(), sql); + return count > 0; } private PrintApplicationItemVO findInvoicePrintVoForTousseMerge( Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java =================================================================== diff -u -r14750 -r14758 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java (.../ForeignProxyDisinfectionAction.java) (revision 14750) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java (.../ForeignProxyDisinfectionAction.java) (revision 14758) @@ -207,25 +207,37 @@ */ public void deleteForeignProxyDisinfection() { String idStr = StrutsParamUtils.getPraramValue("ids", ""); + JSONObject obj = new JSONObject(); + int successCount = 0; String message = ""; try { - if (StringUtils.isNotBlank(idStr)) { - String[] idArr = idStr.split(";"); - foreignProxyDisinfectionManager.deleteByIds(idArr); + if(StringUtils.isBlank(idStr)){ + throw new RuntimeException("id 不能为空!"); } - message = "{success:true,msg:'删除成功!'}"; + String[] idArr = idStr.split(";"); + for (String id : idArr) { + try { + foreignProxyDisinfectionManager.deleteById(id); + ++successCount; + } catch (Exception e) { + e.printStackTrace(); + message = e.getMessage(); + } + } + } catch (Exception e) { - message = "{success:false,msg:'" + e.getMessage() + "'}"; e.printStackTrace(); + message = e.getMessage(); } - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(message); - } catch (IOException e) { - e.printStackTrace(); + + if(successCount > 0){ + obj.put("success", true); + obj.put("message", String.format("成功删除%s条", successCount)); + }else{ + obj.put("success", false); + obj.put("message", message); } + StrutsResponseUtils.output(obj); } /** * 终止外部代理灭菌申请单 Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManager.java =================================================================== diff -u -r14750 -r14758 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManager.java (.../ForeignProxyDisinfectionManager.java) (revision 14750) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManager.java (.../ForeignProxyDisinfectionManager.java) (revision 14758) @@ -24,7 +24,7 @@ public ForeignProxyDisinfection getById(String id); - public void deleteByIds(String[] ids) throws Exception;; + public void deleteById(String id); public void deleteForeignProxyDisinfection(ForeignProxyDisinfection foreignProxyDisinfection);