Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r13445 -r13807 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 13445) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 13807) @@ -808,28 +808,10 @@ tousseDefinitionManager.saveOrUpdate(tousseDefinition); packingManager.saveOrUpdate(packingTask); } - - public void findPackingTaskByBasket() { - String basketBarcode = StrutsParamUtils.getPraramValue( - "basketBarcode", ""); - if(StringUtils.isBlank(basketBarcode)){ - return; - } - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); - String jsonStr = packingManager.getWaitPackingTaskJson(taskGroup,basketBarcode); - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - jsonStr = jsonStr.substring(1,jsonStr.length()-1); - try { - response.getWriter().print(jsonStr); - } catch (Exception e) { - e.printStackTrace(); - } - } - + // 获取待装配任务,装配界面左下角grid调用 public void loadWaitPackingTaskJson(){ String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); - String jsonStr = packingManager.getWaitPackingTaskJson(taskGroup,null); + String jsonStr = packingManager.getWaitPackingTaskJson(taskGroup); HttpServletResponse response = StrutsParamUtils.getResponse(); response.setCharacterEncoding("UTF-8"); jsonStr = jsonStr.substring(1,jsonStr.length()-1); @@ -839,7 +821,7 @@ e.printStackTrace(); } } - + // 扫描清洗篮筐获取装配任务 public void loadPackingTaskByBasketBarCode(){ String basketBarcode = StrutsParamUtils.getPraramValue("basketBarcode", null); String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r13461 -r13807 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 13461) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 13807) @@ -86,6 +86,7 @@ String basketBarcode, String basketName,String department); public String getWaitPackingTaskJson(String taskGroup,String basketBarcode); + public String getWaitPackingTaskJson(String taskGroup); public void createWashedClassifyBasketPackingTask(); Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r13746 -r13807 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 13746) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 13807) @@ -2290,85 +2290,85 @@ myMask.hide(); Ext4.getCmp('basketBarcodeInput').setValue(''); var jsonObj = Ext4.JSON.decode(result.responseText); - var pLength = jsonObj.length; + if(!jsonObj.success){ + showResult(jsonObj.errorMessage); + return; + } + var taskList = jsonObj.data; + var nLength = taskList.length; var speakBasket = new SpeakBasket(); - for (var i = 0; i < pLength; i++) { - var nLength = jsonObj[i].length - if(nLength == 0){ - showResult('该篮筐在'+taskGroup+'内无装配任务!'); + for(var n = 0;n < nLength; n++){ + var taskVO = taskList[n]; + var td_id = taskVO.tousseID; + var videoNames = taskVO.uuid_vedioNames; + var tousseName = taskVO.tousseName; + var amount = taskVO.amount; + var tousseType = taskVO.tousseType; + var packageType = taskVO.packageType; + var sterilingMethod = taskVO.sterilingMethod; + var isTraceable = taskVO.isTraceable; + var isPrint = taskVO.isPrint; + var isReview = taskVO.isReview; + var rMaterils = taskVO.replenishMaterils; + var rootNode = basketStore.getRootNode(); + var haveIDCard = taskVO.haveIDCard; + var parentNode = null; + rootNode.cascade(function(n) { + if(!n.get('leaf') && n.get('tousseName') == tousseName){ + parentNode = n; + } + }); + var newParentNode = false; + if(parentNode == null){ + parentNode = addTaskNode('',td_id,videoNames,tousseName,0,'','','', + '','',tousseType, packageType, + sterilingMethod,'',isTraceable,isPrint,isReview,'','',rMaterils,'','',haveIDCard); + newParentNode = true; } - for(var n = 0;n < nLength; n++){ - var td_id = jsonObj[i][n].tousseID; - var videoNames = jsonObj[i][n].uuid_vedioNames; - var tousseName = jsonObj[i][n].tousseName; - var amount = jsonObj[i][n].amount; - var tousseType = jsonObj[i][n].tousseType; - var packageType = jsonObj[i][n].packageType; - var sterilingMethod = jsonObj[i][n].sterilingMethod; - var isTraceable = jsonObj[i][n].isTraceable; - var isPrint = jsonObj[i][n].isPrint; - var isReview = jsonObj[i][n].isReview; - var rMaterils = jsonObj[i][n].replenishMaterils; - var rootNode = basketStore.getRootNode(); - var haveIDCard = jsonObj[i][n].haveIDCard; - var parentNode = null; - rootNode.cascade(function(n) { - if(!n.get('leaf') && n.get('tousseName') == tousseName){ - parentNode = n; + var cLength = taskVO.children.length; + for (var j = 0; j < cLength; j++) { + var task = taskVO.children[j]; + var taskId = task.taskId; + var tousseName = task.tousseName; + var amount = task.amount; + var washTime = task.washTime; + var basketBarcode = task.basketBarcode; + var basketName = task.basketName; + var taskStatus = task.status; + var dateTime = task.dateTime; + var department = task.department; + var isTraceable = task.isTraceable; + var isPrint = task.isPrint; + var isReview = task.isReview; + var errors = task.errors; + var damages = task.damages; + var replenishMaterils = task.replenishMaterils; + var taskType = task.taskType; + var supplierName = task.supplierName; + var sigle = true; + var childNodes = parentNode.childNodes; + speakBasket.addGoods(basketName, tousseName, amount); + for (var m = 0; m < childNodes.length; m++) { + var cNode = childNodes[m]; + if(cNode.get('taskId') == taskId){ + sigle = false; + return; } - }); - var newParentNode = false; - if(parentNode == null){ - parentNode = addTaskNode('',td_id,videoNames,tousseName,0,'','','', - '','',tousseType, packageType, - sterilingMethod,'',isTraceable,isPrint,isReview,'','',rMaterils,'','',haveIDCard); - newParentNode = true; + } + if(sigle){ + var childNode = addTaskNode(taskId,td_id,videoNames,tousseName,amount,washTime,basketBarcode,basketName, + taskStatus,department,tousseType, packageType, + sterilingMethod,dateTime,isTraceable,isPrint,isReview,errors,damages,replenishMaterils,taskType,supplierName,task.haveIDCard); + parentNode.appendChild(childNode); + var pNewAmount = parentNode.get('amount') + amount; + parentNode.set('amount',pNewAmount); + parentNode.set('unPackingAmount',pNewAmount); } - var cLength = jsonObj[i][n].children.length; - for (var j = 0; j < cLength; j++) { - var task = jsonObj[i][n].children[j]; - var taskId = task.taskId; - var tousseName = task.tousseName; - var amount = task.amount; - var washTime = task.washTime; - var basketBarcode = task.basketBarcode; - var basketName = task.basketName; - var taskStatus = task.status; - var dateTime = task.dateTime; - var department = task.department; - var isTraceable = task.isTraceable; - var isPrint = task.isPrint; - var isReview = task.isReview; - var errors = task.errors; - var damages = task.damages; - var replenishMaterils = task.replenishMaterils; - var taskType = task.taskType; - var supplierName = task.supplierName; - var sigle = true; - var childNodes = parentNode.childNodes; - speakBasket.addGoods(basketName, tousseName, amount); - for (var m = 0; m < childNodes.length; m++) { - var cNode = childNodes[m]; - if(cNode.get('taskId') == taskId){ - sigle = false; - return; - } - } - if(sigle){ - var childNode = addTaskNode(taskId,td_id,videoNames,tousseName,amount,washTime,basketBarcode,basketName, - taskStatus,department,tousseType, packageType, - sterilingMethod,dateTime,isTraceable,isPrint,isReview,errors,damages,replenishMaterils,taskType,supplierName,task.haveIDCard); - parentNode.appendChild(childNode); - var pNewAmount = parentNode.get('amount') + amount; - parentNode.set('amount',pNewAmount); - parentNode.set('unPackingAmount',pNewAmount); - } - } - if(newParentNode){ - rootNode.appendChild(parentNode); - } } - } + if(newParentNode){ + rootNode.appendChild(parentNode); + } + } speakBasket.speakContent(); }, failure : function(){myMask.hide();} Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r13802 -r13807 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13802) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13807) @@ -1138,135 +1138,152 @@ return map; } + public String getWaitPackingTaskJson(String taskGroup){ + List taskVos = getWaitPackingTaskTaskVoList(taskGroup, null); + JSONArray jsonArray = new JSONArray(); + jsonArray.add(taskVos); + return jsonArray.toString(); + } @Override public String getWaitPackingTaskJson(String taskGroup, String basketBarcode) { - List taskVos = new ArrayList(); + JSONObject retObj = new JSONObject(); + retObj.put("success", true); try { - if (StringUtils.isNotBlank(taskGroup)) { - //普通器械包、消毒物品及敷料包的装配任务查询 - List taskList = findPackingTaskFromCssdHandleToussesConfig(taskGroup,basketBarcode); + List taskVos = getWaitPackingTaskTaskVoList(taskGroup, basketBarcode); + retObj.put("data", taskVos); + } catch (Exception e) { + e.printStackTrace(); + retObj.put("success", false); + retObj.put("errorMessage", e.getMessage()); + } + + return retObj.toString(); + } + + private List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode) { + List taskVos = new ArrayList(); + + if(StringUtils.isBlank(taskGroup)){ + throw new RuntimeException("任务组不能为空"); + } + + //普通器械包、消毒物品及敷料包的装配任务查询 + List taskList = findPackingTaskFromCssdHandleToussesConfig(taskGroup,basketBarcode); + + SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); + if(supplyRoomConfig != null){ + if(StringUtils.equals(taskGroup, supplyRoomConfig.getDefalutTaskGroup())){ + //外来器械包的装配任务查询 + List foreignTousseTaskList = findForeignToussePackingTask(basketBarcode); + if(CollectionUtils.isNotEmpty(foreignTousseTaskList)){ + taskList.addAll(foreignTousseTaskList); + } + } + + if(StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ + //自定义器械包的装配任务查询 + List customerTousseTaskList = findCustomerToussePackingTask(basketBarcode); + if(CollectionUtils.isNotEmpty(customerTousseTaskList)){ + taskList.addAll(customerTousseTaskList); + } + } + } + + Map taskMap = new HashMap(); + if (taskList != null) { + + Map> errorsMap = loadWaitSupplementRecyclingErrors(); + Map> damagesMap = loadWaitSupplementRecyclingDamages(); + + for (Object[] result : taskList) { - SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); - if(supplyRoomConfig != null){ - if(StringUtils.equals(taskGroup, supplyRoomConfig.getDefalutTaskGroup())){ - //外来器械包的装配任务查询 - List foreignTousseTaskList = findForeignToussePackingTask(basketBarcode); - if(CollectionUtils.isNotEmpty(foreignTousseTaskList)){ - taskList.addAll(foreignTousseTaskList); - } - } - - if(StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ - //自定义器械包的装配任务查询 - List customerTousseTaskList = findCustomerToussePackingTask(basketBarcode); - if(CollectionUtils.isNotEmpty(customerTousseTaskList)){ - taskList.addAll(customerTousseTaskList); - } - } + PackingTask task = (PackingTask)result[0]; + TousseDefinition td = (TousseDefinition)result[1]; + + String tousseName = td.getName(); + Long tousseID = td.getId(); + boolean haveIDCard = tousseDefinitionManager.isThereIDCard(td); + WaitPackingTaskItemVo itemVo = new WaitPackingTaskItemVo(); + itemVo.setTaskId(task.getId()); + itemVo.setBasketName(task.getRecyclingBasketName()); + itemVo.setBasketBarcode(task.getBasketBarcode()); + itemVo.setDepartment(task.getDepartment()); + itemVo.setTousseType(td.getTousseType()); + itemVo.setStatus(task.getStatus()); + itemVo.setHaveIDCard(haveIDCard); + String washTime = task.getWashTime(); + if (StringUtils.isNotBlank(washTime) + && washTime.length() > 16) { + washTime = washTime.substring(0, 16); } + itemVo.setWashTime(washTime); + Date startDate = task.getStartTime(); + if (startDate != null) { + itemVo.setDateTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").format(startDate)); + } + itemVo.setPackageType(td.getPackageType()); + itemVo.setSterilingMethod(td.getSterilingMethod()); + itemVo.setIsTraceable(td.getIsTraceable()); + itemVo.setIsPrint(td.getIsPrint()); + itemVo.setIsReview(td.getIsReview()); + itemVo.setNote(td.getNote()); + itemVo.setUuid_vedioNames(td.getUuid_vedioNames()); + itemVo.setIsUploadVideo(td.getIsUploadVideo()); + itemVo.setTousseName(tousseName); + itemVo.setTousseID(tousseID); + String nodeText = tousseName; + itemVo.setText(nodeText); + WaitPackingTaskVo vo = taskMap.get(nodeText); + if(vo == null){ + vo = new WaitPackingTaskVo(); + vo.setAmount(task.getUnPackAmount()); + vo.setText(nodeText); + vo.setPackageType(td.getPackageType()); + vo.setSterilingMethod(td.getSterilingMethod()); + vo.setTousseType(td.getTousseType()); + vo.setIsTraceable(td.getIsTraceable()); + vo.setIsPrint(td.getIsPrint()); + vo.setIsReview(td.getIsReview()); + vo.setTousseName(tousseName); + vo.setTousseID(tousseID); + vo.setTaskType(task.getTaskType()); + vo.setUuid_vedioNames(td.getUuid_vedioNames()); + vo.setHaveIDCard(haveIDCard); + taskMap.put(nodeText, vo); + }else{ + vo.setAmount(vo.getAmount() + task.getUnPackAmount()); + } + vo.setUnPackingAmount(vo.getAmount()); + List childrens = vo.getChildren(); + childrens.add(itemVo); - Map taskMap = new HashMap(); - if (taskList != null) { - - Map> errorsMap = loadWaitSupplementRecyclingErrors(); - Map> damagesMap = loadWaitSupplementRecyclingDamages(); - - for (Object[] result : taskList) { - - PackingTask task = (PackingTask)result[0]; - TousseDefinition td = (TousseDefinition)result[1]; - - String tousseName = td.getName(); - Long tousseID = td.getId(); - boolean haveIDCard = tousseDefinitionManager.isThereIDCard(td); - WaitPackingTaskItemVo itemVo = new WaitPackingTaskItemVo(); - itemVo.setTaskId(task.getId()); - itemVo.setBasketName(task.getRecyclingBasketName()); - itemVo.setBasketBarcode(task.getBasketBarcode()); - itemVo.setDepartment(task.getDepartment()); - itemVo.setTousseType(td.getTousseType()); - itemVo.setStatus(task.getStatus()); - itemVo.setHaveIDCard(haveIDCard); - String washTime = task.getWashTime(); - if (StringUtils.isNotBlank(washTime) - && washTime.length() > 16) { - washTime = washTime.substring(0, 16); - } - itemVo.setWashTime(washTime); - Date startDate = task.getStartTime(); - if (startDate != null) { - itemVo.setDateTime(new SimpleDateFormat( - "yyyy-MM-dd HH:mm").format(startDate)); - } - itemVo.setPackageType(td.getPackageType()); - itemVo.setSterilingMethod(td.getSterilingMethod()); - itemVo.setIsTraceable(td.getIsTraceable()); - itemVo.setIsPrint(td.getIsPrint()); - itemVo.setIsReview(td.getIsReview()); - itemVo.setNote(td.getNote()); - itemVo.setUuid_vedioNames(td.getUuid_vedioNames()); - itemVo.setIsUploadVideo(td.getIsUploadVideo()); - itemVo.setTousseName(tousseName); - itemVo.setTousseID(tousseID); - String nodeText = tousseName; - itemVo.setText(nodeText); - WaitPackingTaskVo vo = taskMap.get(nodeText); - if(vo == null){ - vo = new WaitPackingTaskVo(); - vo.setAmount(task.getUnPackAmount()); - vo.setText(nodeText); - vo.setPackageType(td.getPackageType()); - vo.setSterilingMethod(td.getSterilingMethod()); - vo.setTousseType(td.getTousseType()); - vo.setIsTraceable(td.getIsTraceable()); - vo.setIsPrint(td.getIsPrint()); - vo.setIsReview(td.getIsReview()); - vo.setTousseName(tousseName); - vo.setTousseID(tousseID); - vo.setTaskType(task.getTaskType()); - vo.setUuid_vedioNames(td.getUuid_vedioNames()); - vo.setHaveIDCard(haveIDCard); - taskMap.put(nodeText, vo); - }else{ - vo.setAmount(vo.getAmount() + task.getUnPackAmount()); - } - vo.setUnPackingAmount(vo.getAmount()); - List childrens = vo.getChildren(); - childrens.add(itemVo); - - itemVo.setAmount(task.getUnPackAmount()); - itemVo.setSupplierName(td.getSupplierName()); - itemVo.setTaskType(task.getTaskType()); - - List errorList = errorsMap.get(task.getId()); - if(errorList != null && errorList.size() > 0){ - itemVo.setReplenishMaterils(true); - vo.setReplenishMaterils(true); - itemVo.getErrors().addAll(errorList); - } - List damages = damagesMap.get(task.getId()); - if(damages != null && damages.size() > 0){ - itemVo.setReplenishMaterils(true); - vo.setReplenishMaterils(true); - itemVo.getDamages().addAll(damages); - } - } + itemVo.setAmount(task.getUnPackAmount()); + itemVo.setSupplierName(td.getSupplierName()); + itemVo.setTaskType(task.getTaskType()); + + List errorList = errorsMap.get(task.getId()); + if(errorList != null && errorList.size() > 0){ + itemVo.setReplenishMaterils(true); + vo.setReplenishMaterils(true); + itemVo.getErrors().addAll(errorList); } - Iterator itr = taskMap.keySet().iterator(); - while(itr.hasNext()){ - String name = itr.next(); - taskVos.add(taskMap.get(name)); + List damages = damagesMap.get(task.getId()); + if(damages != null && damages.size() > 0){ + itemVo.setReplenishMaterils(true); + vo.setReplenishMaterils(true); + itemVo.getDamages().addAll(damages); } } - } catch (Exception e) { - e.printStackTrace(); } - JSONArray jsonArray = new JSONArray(); - jsonArray.add(taskVos); - return jsonArray.toString(); + Iterator itr = taskMap.keySet().iterator(); + while(itr.hasNext()){ + String name = itr.next(); + taskVos.add(taskMap.get(name)); + } + return taskVos; } - /** * 查询待装配装配任务集合(v4.0代码旧的方法,按包定义的任务组查询) * @param taskGroup @@ -1318,12 +1335,13 @@ //验证篮筐是否清洗 Container basket = containerManager .getContainerByBarcode(basketBarcode); + if(basket == null){ + throw new RuntimeException(String.format("未找到条码为%s的篮筐", basketBarcode)); + } String status = basket .getStatus(); - if (basket != null - && Container.CONTAINER_STATUS_WASHLOADING.equals(status) - || Container.CONTAINER_STATUS_WASHING.equals(status)) { - return null; + if (!Container.CONTAINER_STATUS_WASHED.equals(status)) { + throw new RuntimeException(String.format("只能扫描清洗完成的篮筐,该篮筐状态为%s!",status)); } sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; }