Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r33483 -r33503 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 33483) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 33503) @@ -144,6 +144,8 @@ */ public List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode, JSONObject returnObj, Integer pageIndex, Integer pageSize); + public List getWaitPackingTaskTaskVoList(Long packingTaskId, String taskGroup, String basketBarcode, JSONObject returnObj, Integer pageIndex, Integer pageSize); + public void createWashedClassifyBasketPackingTask(); public int loadTodayPackingRecordTotalAmount(String taskGroup); @@ -179,7 +181,7 @@ public List getPackingTaskListByIDCardInstanceID( Long idCardInstanceID); - public String getIDCardInfoForPackingView(String barcode); + public String getIDCardInfoForPackingView(String barcode, String taskGroup); public String packingTousse_TRANS_REQUIRED(String params,HttpSession session) ; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r33495 -r33503 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 33495) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 33503) @@ -1460,7 +1460,7 @@ } @Override - public List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode, JSONObject returnObj, Integer pageIndex, Integer pageSize) { + public List getWaitPackingTaskTaskVoList(Long packingTaskId, String taskGroup, String basketBarcode, JSONObject returnObj, Integer pageIndex, Integer pageSize) { List taskVos = new ArrayList(); if(StringUtils.isBlank(taskGroup)){ @@ -1470,7 +1470,15 @@ List tousseNamesAndTaskTypes = null; SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); Set queryTousseTypes = getQueryTousseTypes(taskGroup, supplyRoomConfig); - if(pageSize != null && pageIndex != null && pageIndex > 0 && pageSize > 0){ + PackingTask packingTask = null; + TousseDefinition tdOfPackingTask = null; + if(DatabaseUtil.isPoIdValid(packingTaskId)){ + packingTask = get(packingTaskId); + if(packingTask != null){ + tdOfPackingTask = packingTask.getTousseDefinition(); + } + } + if(!DatabaseUtil.isPoIdValid(packingTaskId) && pageSize != null && pageIndex != null && pageIndex > 0 && pageSize > 0){ tousseNamesAndTaskTypes = getTousseNamesAndTaskType(taskGroup, basketBarcode, pageIndex, pageSize, queryTousseTypes); } boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); @@ -1487,22 +1495,26 @@ } boolean showRecyclingPeopleColumnInPackingTasksList = CssdUtils.getSystemSetConfigByNameBool("showRecyclingPeopleColumnInPackingTasksList", false); //普通器械包、消毒物品及敷料包的装配任务查询 - List taskList = findPackingTaskFromCssdHandleToussesConfig(showRecyclingPeopleColumnInPackingTasksList, taskGroup,basketBarcode,supplyRoomConfig, tousseNamesAndTaskTypes); - + List taskList = new ArrayList(); + if(tdOfPackingTask == null || !TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tdOfPackingTask.getTousseType()) + && !TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tdOfPackingTask.getTousseType()) + && !TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(tdOfPackingTask.getTousseType())){ + taskList = findPackingTaskFromCssdHandleToussesConfig(packingTaskId, showRecyclingPeopleColumnInPackingTasksList, taskGroup,basketBarcode,supplyRoomConfig, tousseNamesAndTaskTypes); + } if(supplyRoomConfig != null){ //外来器械包默认处理科室及任务组 JSONObject foreignTousseHandleDepartAndTaskGroupJsonobject = supplyRoomConfig.getOneForeignTousseHandleDepartAndTaskGroupByDepartCode(AcegiHelper.getCurrentOrgUnitCode()); - if(foreignTousseHandleDepartAndTaskGroupJsonobject != null && StringUtils.equals(taskGroup, foreignTousseHandleDepartAndTaskGroupJsonobject.optString("taskGroup"))){ + if(tdOfPackingTask != null && TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tdOfPackingTask.getTousseType()) || foreignTousseHandleDepartAndTaskGroupJsonobject != null && StringUtils.equals(taskGroup, foreignTousseHandleDepartAndTaskGroupJsonobject.optString("taskGroup"))){ //外来器械包的装配任务查询 - List foreignTousseTaskList = findForeignToussePackingTask(showRecyclingPeopleColumnInPackingTasksList, basketBarcode, enableUrgentFunction, tousseNamesAndTaskTypes); + List foreignTousseTaskList = findForeignToussePackingTask(packingTaskId, showRecyclingPeopleColumnInPackingTasksList, basketBarcode, enableUrgentFunction, tousseNamesAndTaskTypes); if(CollectionUtils.isNotEmpty(foreignTousseTaskList)){ taskList.addAll(foreignTousseTaskList); } } - if(StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ + if(tdOfPackingTask != null && TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(tdOfPackingTask.getTousseType()) || StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ //自定义器械包的装配任务查询 - List customerTousseTaskList = findCustomerToussePackingTask(showRecyclingPeopleColumnInPackingTasksList, basketBarcode, tousseNamesAndTaskTypes); + List customerTousseTaskList = findCustomerToussePackingTask(packingTaskId, showRecyclingPeopleColumnInPackingTasksList, basketBarcode, tousseNamesAndTaskTypes); if(CollectionUtils.isNotEmpty(customerTousseTaskList)){ taskList.addAll(customerTousseTaskList); } @@ -1517,7 +1529,7 @@ //不用扫篮筐的装配任务 Map unScanBasketTaskMap = new LinkedHashMap(); - if (taskList != null) { + if (CollectionUtils.isNotEmpty(taskList)) { Map> errorsMap = loadWaitSupplementRecyclingErrors(); Map> damagesMap = loadWaitSupplementRecyclingDamages(); @@ -1919,6 +1931,10 @@ } return taskVos; } + @Override + public List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode, JSONObject returnObj, Integer pageIndex, Integer pageSize) { + return getWaitPackingTaskTaskVoList(null, taskGroup, basketBarcode, returnObj, pageIndex, pageSize); + } /** * 获取待装配任务分页的文件夹的包名称和任务类型 任务类型返回1 和 0(此处0为非1的数) * @param taskGroup 任务组 @@ -2184,7 +2200,7 @@ * @param tousseNamesAndTaskTypes 包名称和装配任务类型 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findPackingTaskFromCssdHandleToussesConfig(boolean showRecyclingPeopleColumnInPackingTasksList, String taskGroup,String basketBarcode,SupplyRoomConfig config, List tousseNamesAndTaskTypes) { + private List findPackingTaskFromCssdHandleToussesConfig(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String taskGroup,String basketBarcode,SupplyRoomConfig config, List tousseNamesAndTaskTypes) { String recyclingAmountConfirmSql = "1=1"; if(CssdUtils.getSystemSetConfigByNameBool("confirmRecyclingAmount", false)){ recyclingAmountConfirmSql = String.format("(po.recycleAmountNeedConfirm<>'%s' or po.recycleAmountNeedConfirm is null)",Constants.STR_YES); @@ -2241,7 +2257,9 @@ + "and (td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) " //外来器械和自定义器械,有专门获取装配任务 + "and ct.taskGroup = '"+taskGroup+"' and po.orgUnitCoding = '" + orgCode + "' and po.unPackAmount > 0 and " + recyclingAmountConfirmSql; } - if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ + if(DatabaseUtil.isPoIdValid(packingTaskId)){ + sql += " and po.id=" + packingTaskId; + }else if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sql += " and ("; for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { Object[] tousseNamesAndTaskType = tousseNamesAndTaskTypes.get(i); @@ -2297,7 +2315,7 @@ * @param tousseNamesAndTaskTypes 包名称和装配任务类型 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findForeignToussePackingTask(boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, boolean enableUrgentFunction, List tousseNamesAndTaskTypes) { + private List findForeignToussePackingTask(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, boolean enableUrgentFunction, List tousseNamesAndTaskTypes) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); String recyclingAmountConfirmSql = "1=1"; @@ -2352,7 +2370,9 @@ } sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; } - if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ + if(DatabaseUtil.isPoIdValid(packingTaskId)){ + sql += " and po.id=" + packingTaskId; + }else if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sql += " and ("; for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { Object[] tousseNamesAndTaskType = tousseNamesAndTaskTypes.get(i); @@ -2380,7 +2400,7 @@ * @param tousseNamesAndTaskTypes 包名称和装配任务类型 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findCustomerToussePackingTask(boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, List tousseNamesAndTaskTypes) { + private List findCustomerToussePackingTask(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, List tousseNamesAndTaskTypes) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); String recyclingAmountConfirmSql = "1=1"; @@ -2419,7 +2439,9 @@ } sql += " and po.basketBarcode like '%" + basketBarcode + "%' "; } - if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ + if(DatabaseUtil.isPoIdValid(packingTaskId)){ + sql += " and po.id=" + packingTaskId; + }else if(CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sql += " and ("; for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { Object[] tousseNamesAndTaskType = tousseNamesAndTaskTypes.get(i); @@ -3412,9 +3434,8 @@ // 根据条码获取标识牌信息和装配任务信息 @Override - public String getIDCardInfoForPackingView(String barcode) { - JsonObject jsonObject = new JsonObject(); - Gson gson = new Gson(); + public String getIDCardInfoForPackingView(String barcode, String taskGroup) { + JSONObject jsonObject = new JSONObject(); // 首先获取标识牌实例 int errorCode = 0;//Constants.ERROR_CODE_SUCCESS; String errorMsg = ""; @@ -3463,9 +3484,9 @@ tousseDefinition.getTousseDefinitionShowName(), barcode)); } - JsonObject idCardInstanceJsonObj = new JsonObject(); - JsonObject tousseDefinitionJsonObj = new JsonObject(); - JsonObject idCardDefinitionJsonObj = new JsonObject(); + JSONObject idCardInstanceJsonObj = new JSONObject(); + JSONObject tousseDefinitionJsonObj = new JSONObject(); + JSONObject idCardDefinitionJsonObj = new JSONObject(); // 获取装配任务 List packingTaskList = getPackingTaskListByIDCardInstanceID(idCardInstance .getId()); @@ -3475,7 +3496,7 @@ TousseInstance ti = tousseInstanceManager.get(lastTousseInstanceId); ErrorDamageRemark errorDamageRemark = ti.getErrorDamageRemark(); if(errorDamageRemark != null){ - idCardInstanceJsonObj.addProperty("errorDamageRemarkId", errorDamageRemark.getId()); + idCardInstanceJsonObj.put("errorDamageRemarkId", errorDamageRemark.getId()); if(StringUtils.isNotBlank(msg) && errorDamageRemark.getErrorDamageRemark().equals(msg)){//如果丢失报损数据和上一轮无变动,则使用用户最后一次修改的丢失报损备注 msg = errorDamageRemark.getCustomErrorDamageRemark(); }else{ @@ -3484,52 +3505,56 @@ } } } - idCardInstanceJsonObj.addProperty("errorDamageRemark", msg); - idCardInstanceJsonObj.addProperty("id", idCardInstance.getId()); - idCardInstanceJsonObj.addProperty("barcode", + idCardInstanceJsonObj.put("errorDamageRemark", msg); + idCardInstanceJsonObj.put("id", idCardInstance.getId()); + idCardInstanceJsonObj.put("barcode", idCardInstance.getBarcode()); - tousseDefinitionJsonObj.addProperty("id", tousseDefinition.getId()); - tousseDefinitionJsonObj.addProperty("needInspectMaterials", tousseDefinition.getNeedInspectMaterials()); - tousseDefinitionJsonObj.addProperty("name", + tousseDefinitionJsonObj.put("id", tousseDefinition.getId()); + tousseDefinitionJsonObj.put("needInspectMaterials", tousseDefinition.getNeedInspectMaterials()); + tousseDefinitionJsonObj.put("name", tousseDefinition.getName()); - tousseDefinitionJsonObj.addProperty("tousseType", + tousseDefinitionJsonObj.put("tousseType", tousseDefinition.getTousseType()); - idCardDefinitionJsonObj.addProperty("id", idCardDefinition.getId()); - idCardDefinitionJsonObj.addProperty("useAmount", idCardDefinition.getUseAmount()); + idCardDefinitionJsonObj.put("id", idCardDefinition.getId()); + idCardDefinitionJsonObj.put("useAmount", idCardDefinition.getUseAmount()); // 获取标识牌定义的默认包装类型,返回给前端 String packageType = idCardDefinition.getPackageType(); if (StringUtils.isBlank(packageType)){ packageType = tousseDefinition.getPackageType(); } - idCardDefinitionJsonObj.addProperty("packageType", packageType); + idCardDefinitionJsonObj.put("packageType", packageType); - idCardInstanceJsonObj.add("tousseDefinition", + idCardInstanceJsonObj.put("tousseDefinition", tousseDefinitionJsonObj); - idCardInstanceJsonObj.add("idCardDefinition", + idCardInstanceJsonObj.put("idCardDefinition", idCardDefinitionJsonObj); - - List packingTaskInfoList = new LinkedList(); + JSONArray packingTaskInfoList = new JSONArray(); if(packingTaskList != null){ for (PackingTask packingTask : packingTaskList) { - JsonObject packingTaskInfo = new JsonObject(); - packingTaskInfo.addProperty("id", packingTask.getId()); - packingTaskInfo.addProperty("basketBarcode", packingTask.getBasketBarcode()); - packingTaskInfoList.add(packingTaskInfo); + List vos = getWaitPackingTaskTaskVoList(packingTask.getId(), taskGroup, null, null, 0, 0); + if(CollectionUtils.isNotEmpty(vos)){ + for (WaitPackingTaskVo vo : vos) { + List childrens = vo.getChildren(); + packingTaskInfoList.addAll(childrens); + } + } + } } - - idCardInstanceJsonObj.add("packingTaskInfo", - gson.toJsonTree(packingTaskInfoList)); - jsonObject.add("idCard", idCardInstanceJsonObj); + if(CollectionUtils.isEmpty(packingTaskInfoList)){ + throw new RuntimeException(taskGroup + "不存在该标识牌对应的装配任务!"); + } + idCardInstanceJsonObj.put("packingTaskInfo", packingTaskInfoList); + jsonObject.put("idCard", idCardInstanceJsonObj); } catch (Exception e) { errorMsg = e.getMessage(); } - jsonObject.addProperty("errorMsg", errorMsg); - jsonObject.addProperty("errorCode", errorCode); + jsonObject.put("errorMsg", errorMsg); + jsonObject.put("errorCode", errorCode); return jsonObject.toString(); } @Override Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java =================================================================== diff -u -r32767 -r33503 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java (.../PackingTableManager.java) (revision 32767) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java (.../PackingTableManager.java) (revision 33503) @@ -724,8 +724,8 @@ obj = JSONObject.fromObject(json); return obj.toString(); } - public String getIDCardInfoForPackingView(String barcode) { - return packingManager.getIDCardInfoForPackingView(barcode); + public String getIDCardInfoForPackingView(String barcode, String taskGroup) { + return packingManager.getIDCardInfoForPackingView(barcode, taskGroup); } public boolean isMaintainTousse(Long idCardInstanceId){