Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r23825 -r23905 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 23825) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 23905) @@ -70,6 +70,7 @@ import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationComparator; import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationManager; +import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationUtils; import com.forgon.disinfectsystem.recyclingapplication.updateLog.ApplicationLogManager; import com.forgon.disinfectsystem.recyclingapplication.vo.ApplicationItemVO; import com.forgon.disinfectsystem.recyclingapplication.vo.ReturnGoodVo; @@ -1327,6 +1328,7 @@ List tousseItemJson = getTousseItemJsonArray(basketItemJson,record); //已归还的器械包数量,key为包定义id(不是祖先id,是TousseItem中的包定义id,value为已经归还的数量) Map returnedTousseAmount = new HashMap<>(); + ReturnGoodVo returnGoodsVo = null; if(autoReturnTheBorrowingTousse){ //自动归还 Map restApplyTousses = new HashMap<>(); @@ -1335,7 +1337,7 @@ Integer amount = tousseItem.getAmount(); restApplyTousses.put(tousseName, MathTools.add(amount, restApplyTousses.get(tousseName)).intValue()); } - ReturnGoodVo returnGoodsVo = recyclingApplicationManager.handleReturnGood(restApplyTousses, record.getDepartCode()); + returnGoodsVo = recyclingApplicationManager.handleReturnGood(restApplyTousses, record.getDepartCode()); if(returnGoodsVo != null){ //申请还物单的id List borrowRecyclingApplicationIds = returnGoodsVo.getNewBorrowingRecyclingApplicationIds(); @@ -1422,10 +1424,18 @@ addLogInfo(params,record.getId()); boolean isChangeApplyDepart = isChangeApplyDepartment(record); - //更新申请单 + //更新申请单(如果是回收页面直接产添加回收记录则创建申请单) updateInvoicePlan(record, tousseItemJson, deleteTousseItems, tousseDefinitions, errorDamageDetail, basketItemJson, urgentTousseItems,isForeignTousseApplication,isChangeApplyDepart,tousseDefIdTousseItemVoMap); + //等申请单确定创建了以后,如果需要自动归还所借的物品时,则添加相应的备注 + if(autoReturnTheBorrowingTousse){ + //回收记录的原申请单增加备注归还的备注信息(参考科室申领手工添加申请单时如果确定) + StringBuilder sb = RecyclingApplicationUtils.generateReturnGoodsRemark(RecyclingApplicationUtils.RETURNGOODSOPERATIONTYPE_RECYCLE, + returnGoodsVo.getActualAllReturnTousses(), returnGoodsVo.getRestApplyTousses()); + CssdUtils.appendRemarkOfInvoicePlan(record.getRecyclingApplication(),sb.toString()); + } + //修改已清洗或清洗中的篮筐,清洗工作量需要重新计算 Map toReSetWorkloadMap = new HashMap(); //设置篮筐及篮筐内物品 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationUtils.java =================================================================== diff -u -r13743 -r23905 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationUtils.java (.../RecyclingApplicationUtils.java) (revision 13743) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationUtils.java (.../RecyclingApplicationUtils.java) (revision 23905) @@ -3,19 +3,35 @@ */ package com.forgon.disinfectsystem.recyclingapplication.service; +import java.text.SimpleDateFormat; +import java.util.Collection; +import java.util.Date; import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.MultiValueMap; + import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.tools.date.DateTools; /** * @author jeffli * */ public class RecyclingApplicationUtils { + /** + * 归还物品的操作类型:申请 + */ + public final static String RETURNGOODSOPERATIONTYPE_APPLY = "申请"; + /** + * 归还物品的操作类型:回收 + */ + public final static String RETURNGOODSOPERATIONTYPE_RECYCLE = "回收"; + public static void appendTousseAmountRemark( RecyclingApplication recyclingApplication) { List items = recyclingApplication.getApplicationItems(); @@ -39,4 +55,39 @@ String remark = String.format("器械包数量:%s", totalAmount); CssdUtils.appendRemarkOfInvoicePlan(recyclingApplication, remark); } + + /** + * 根据实际归还物品及剩余待归还物品的参数生成相关的备份(作为之前科室申领或回收的申请单) + * @param returnGoodsOperationType 类型 即申请或回收 + * @param actualAllReturnTousses 实际归还物品 key为包名、value为数量 + * @param restApplyTousses 剩余待归还物品 key为包名、value为数量 + * @return + */ + public static StringBuilder generateReturnGoodsRemark(String returnGoodsOperationType,MultiValueMap actualAllReturnTousses, + Map restApplyTousses){ + StringBuilder sb = new StringBuilder("【系统备注】"); + if (restApplyTousses.isEmpty()) { + sb.append("本次"+ returnGoodsOperationType +"的所有物品已转换为申请还物单。"); + } else { + sb.append("本次"+ returnGoodsOperationType +"的以下物品已转换为申请还物单:"); + for (String key : actualAllReturnTousses.keySet()) { + Collection numbers = actualAllReturnTousses + .getCollection(key); + int actualAllReturnAmount = 0; + for (int number : numbers) { + actualAllReturnAmount += number; + } + sb.append(key); + sb.append(' '); + sb.append(actualAllReturnAmount); + sb.append("个、"); + } + sb.delete(sb.length() - 1, sb.length()); + } + + sb.append("——"); + sb.append(new SimpleDateFormat(DateTools.COMMON_DATE_HM).format(new Date())); + return sb; + } + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r23873 -r23905 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 23873) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 23905) @@ -68,6 +68,7 @@ import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationComparator; import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationManager; +import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationUtils; import com.forgon.disinfectsystem.recyclingapplication.updateLog.ApplicationLogManager; import com.forgon.disinfectsystem.recyclingapplication.vo.ReturnGoodVo; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; @@ -466,37 +467,6 @@ return applyTousses; } - // 转换为还物单后,根据情况,原有申请单添加备注 - private void appendReturnedRemark(RecyclingApplication ra, - MultiValueMap actualAllReturnTousses, - Map restApplyTousses) { - StringBuilder sb = new StringBuilder("【系统备注】"); - if (restApplyTousses.isEmpty()) { - sb.append("本次申请的所有物品已转换为申请还物单。"); - } else { - sb.append("本次申请的以下物品已转换为申请还物单:"); - for (String key : actualAllReturnTousses.keySet()) { - Collection numbers = actualAllReturnTousses - .getCollection(key); - int actualAllReturnAmount = 0; - for (int number : numbers) { - actualAllReturnAmount += number; - } - sb.append(key); - sb.append(' '); - sb.append(actualAllReturnAmount); - sb.append("个、"); - } - sb.delete(sb.length() - 1, sb.length()); - } - - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - sb.append("——"); - sb.append(dateFormat.format(new Date())); - - CssdUtils.appendRemarkOfInvoicePlan(ra,sb.toString()); - } - /** * 验证“科室名称”和“科室编码”是否对应. * @param departmentCode 科室编码 @@ -595,7 +565,9 @@ MultiValueMap actualAllReturnTousses = returnGoodVo.getActualAllReturnTousses(); Map restApplyTousses = returnGoodVo.getRestApplyTousses(); // 添加备注 - appendReturnedRemark(recyclingApplication, actualAllReturnTousses, restApplyTousses); + StringBuilder sb = RecyclingApplicationUtils.generateReturnGoodsRemark(RecyclingApplicationUtils.RETURNGOODSOPERATIONTYPE_APPLY, + actualAllReturnTousses, restApplyTousses); + CssdUtils.appendRemarkOfInvoicePlan(recyclingApplication,sb.toString()); if (recyclingApplicationManager.isAllReturn(restApplyTousses)) { // if (restApplyTousses.isEmpty()) { @@ -1698,19 +1670,14 @@ } public void getAllProject(){ + JSONObject result = new JSONObject(); String projectName = StrutsParamUtils.getPraramValue("spell", ""); String userCode = StrutsParamUtils.getPraramValue("userCode", null); - List projList = null;//projectManager.getAllProject(userCode , projectName); - if(projList == null){ - projList = new ArrayList(); - } - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; + List projList = projectManager.getAllProject(userCode , projectName); try { - //本地模拟造数代码 - /*projList = new ArrayList(); + /*List projList new ArrayList(); + projList = new ArrayList(); ProjectDict proj = new ProjectDict(); proj.setProjCode("aaa"); proj.setProjName("111"); @@ -1725,10 +1692,9 @@ proj.setProjCode("ccc"); proj.setProjName("333"); projList.add(proj);*/ - out = response.getWriter(); -// out.print("{\"data\":" + JSONArray.fromObject(projList) + "}"); - out.print(JSONArray.fromObject(projList)); - } catch (IOException e) { + result.put("data", JSONArray.fromObject(projList)); + StrutsResponseUtils.output(JSONArray.fromObject(projList)); + } catch (Exception e) { e.printStackTrace(); } }