Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r41137 -r41613 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 41137) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 41613) @@ -30,6 +30,7 @@ import com.forgon.disinfectsystem.packing.vo.PackingTaskVoForContainer; import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskInfoVo; +import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskTaskParam; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskVo; import com.forgon.disinfectsystem.packing.vo.PackingRecordVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskVoGroupClassifyBasket; @@ -140,7 +141,7 @@ int packingAmount, Long sourceId, Integer taskType, String basketBarcode, String basketName,String department); - public JSONArray getWaitPackingTaskJson(String taskGroup,String basketBarcodes, JSONObject returnObj, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding); + public JSONArray getWaitPackingTaskJson(WaitPackingTaskTaskParam param, JSONObject returnObj); /** * * @param taskGroup 任务组 @@ -149,18 +150,9 @@ * @param pageSize * @return */ - public JSONArray getWaitPackingTaskJson(String taskGroup, String tousseOrDepart, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding); + public JSONArray getWaitPackingTaskJson(WaitPackingTaskTaskParam param); /** * 获取装配任务,返回vo对象 - * @param taskGroup - * @param basketBarcode - * @param returnObj 存放一些键值对 目前用来保存发给前台的提示显示 - * @param tousseOrDepart 模糊查询 科室或包名 - * @return - */ - public List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode, JSONObject returnObj,String tousseOrDepart, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding); - /** - * 获取装配任务,返回vo对象 * @param packingTaskId 装配任务id * @param taskGroup 任务组 * @param basketBarcode 篮筐条码 @@ -172,8 +164,8 @@ * @param enableGroupPendingAssemblyTasksByBasket 是否开启 写在参数里 方便测试用例测试不同配置项得场景 * @return */ - public List getWaitPackingTaskTaskVoList(Long packingTaskId, String taskGroup, String basketBarcode, JSONObject returnObj,String tousseOrDepart, Integer pageIndex, Integer pageSize, List waitPackingTaskVoGroupClassifyBaskets - , Boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding); + public List getWaitPackingTaskTaskVoList(WaitPackingTaskTaskParam param, JSONObject returnObj, List waitPackingTaskVoGroupClassifyBaskets + , Boolean enableGroupPendingAssemblyTasksByBasket); public void createWashedClassifyBasketPackingTask(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r41137 -r41613 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 41137) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 41613) @@ -59,6 +59,7 @@ import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskInfoVo; import com.forgon.disinfectsystem.packing.vo.PackingRecordVo; +import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskTaskParam; import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; @@ -68,7 +69,6 @@ import com.forgon.entity.PageEntity; import com.forgon.exception.SystemException; import com.forgon.exception.service.ExceptionHandler; -import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.tools.GB2Alpha; import com.forgon.tools.ImageUtils; @@ -84,6 +84,7 @@ import com.forgon.tools.util.ExtJsUtil; import com.forgon.tools.util.FileUtils; import com.forgon.tools.util.PageUtil; +import com.forgon.tools.util.RequestUtils; import com.forgon.tools.util.SqlUtils; import com.forgon.util.ExtGridUtils; import com.forgon.util.StringUtil; @@ -731,14 +732,12 @@ // 获取待装配任务,装配界面左下角grid调用 public void loadWaitPackingTaskJson(){ try { - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); - int pageIndex = StrutsParamUtils.getPraramValue("pageIndex", 1); - int pageSize = StrutsParamUtils.getPraramValue("pageSize", 20); - String settleAccountsDepartCoding = StrutsParamUtils.getPraramValue("settleAccountsDepartCoding", null); - String tousseOrDepart = StrutsParamUtils.getPraramValue("tousseOrDepart", null); - SqlUtils.checkInputParam(settleAccountsDepartCoding); - SqlUtils.checkInputParam(tousseOrDepart); - StrutsResponseUtils.output(packingManager.getWaitPackingTaskJson(taskGroup,tousseOrDepart,pageIndex,pageSize, settleAccountsDepartCoding)); + // 把参数设置进入 WaitPackingTaskTaskParam + WaitPackingTaskTaskParam param = new WaitPackingTaskTaskParam(); + RequestUtils.setPropertiesFromRequest(StrutsParamUtils.getRequest(), param); + SqlUtils.checkInputParam(param.getSettleAccountsDepartCoding()); + SqlUtils.checkInputParam(param.getTousseOrDepart()); + StrutsResponseUtils.output(packingManager.getWaitPackingTaskJson(param)); } catch (Exception e) { e.printStackTrace(); StrutsResponseUtils.output(new JSONArray()); @@ -752,6 +751,7 @@ String tousseOrDepart = StrutsParamUtils.getPraramValue("tousseOrDepart", null); String settleAccountsDepartCoding = StrutsParamUtils.getPraramValue("settleAccountsDepartCoding", null); SqlUtils.checkInputParam(settleAccountsDepartCoding); + SqlUtils.checkInputParam(tousseOrDepart); int totalCount = packingManager.getPackingTaskTousseNameCount(taskGroup, tousseOrDepart, settleAccountsDepartCoding); int pageSize = StrutsParamUtils.getPraramValue("pageSize", 20); int pageNo = 0; @@ -785,19 +785,16 @@ // 扫描清洗篮筐获取装配任务 public void loadPackingTaskByBasketBarCode(){ String basketBarcode = StrutsParamUtils.getPraramValue("basketBarcode", null); - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); - JSONObject retObj = new JSONObject(); JSONUtil.addSuccess(retObj, false); try { if(StringUtils.isNotBlank(basketBarcode)){ JSONObject returnObj = new JSONObject(); - int pageIndex = StrutsParamUtils.getPraramValue("pageIndex", 0); - int pageSize = StrutsParamUtils.getPraramValue("pageSize", 0); - String settleAccountsDepartCoding = StrutsParamUtils.getPraramValue("settleAccountsDepartCoding", null); - SqlUtils.checkInputParam(settleAccountsDepartCoding); - JSONArray taskVos = packingManager.getWaitPackingTaskJson(taskGroup,basketBarcode,returnObj,pageIndex, pageSize, settleAccountsDepartCoding); - Set taskGroups = packingManager.getTaskGroupsOfContainer(basketBarcode, taskGroup); + WaitPackingTaskTaskParam param = new WaitPackingTaskTaskParam(); + RequestUtils.setPropertiesFromRequest(StrutsParamUtils.getRequest(), param); + SqlUtils.checkInputParam(param.getSettleAccountsDepartCoding()); + JSONArray taskVos = packingManager.getWaitPackingTaskJson(param,returnObj); + Set taskGroups = packingManager.getTaskGroupsOfContainer(basketBarcode, param.getTaskGroup()); StringBuilder otherTaskGroupMsgBuilder = new StringBuilder(); if (CollectionUtils.isNotEmpty(taskVos)) { Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java =================================================================== diff -u -r40694 -r41613 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java (.../PackingController.java) (revision 40694) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java (.../PackingController.java) (revision 41613) @@ -33,6 +33,7 @@ import com.forgon.disinfectsystem.idcardinstance.service.IDCardInstanceManager; import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.packing.service.VirtualBasketNotEnoughException; +import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskTaskParam; import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; @@ -106,8 +107,15 @@ int pageIndex = SpringUtils.getPraramValue("pageIndex", 0); int pageSize = SpringUtils.getPraramValue("pageSize", 0); String settleAccountsDepartCoding = StrutsParamUtils.getPraramValue("settleAccountsDepartCoding", null); + + WaitPackingTaskTaskParam param = new WaitPackingTaskTaskParam(); + param.setBasketBarcode(basketBarcodes); + param.setTaskGroup(taskGroup); + param.setPageIndex(pageIndex); + param.setPageSize(pageSize); + param.setSettleAccountsDepartCoding(settleAccountsDepartCoding); SqlUtils.checkInputParam(settleAccountsDepartCoding); - JSONArray data = packingManager.getWaitPackingTaskJson(taskGroup,basketBarcodes,returnObj, pageIndex, pageSize, settleAccountsDepartCoding); + JSONArray data = packingManager.getWaitPackingTaskJson(param,returnObj); obj.put("data", data); obj.put("notWashedInfo", returnObj.optString("notWashedInfo")); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r41435 -r41613 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 41435) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 41613) @@ -40,9 +40,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; - -import com.forgon.disinfectsystem.entity.basedatamanager.container.ContainerBinding; import com.forgon.disinfectsystem.packing.vo.*; + import net.sf.json.JSONArray; import net.sf.json.JSONException; import net.sf.json.JSONObject; @@ -808,7 +807,7 @@ JSONObject foreignTousseHandleDepartAndTaskGroupJsonobject = supplyRoomConfig.getOneForeignTousseHandleDepartAndTaskGroupByDepartCode(orgUnitCode); if(foreignTousseHandleDepartAndTaskGroupJsonobject != null && (StringUtils.equals(taskGroup, foreignTousseHandleDepartAndTaskGroupJsonobject.optString("taskGroup")) || StringUtils.isBlank(taskGroup))){ //外来器械包、外来器械拆分小包 - sql += " union all select d.name,i.reviewer as reviewer,d.isTraceable amount " + + sql += " union all select d.name,i.reviewer as reviewer,d.isTraceable " + "from tousseInstance i,tousseDefinition d where i.toussedefinition_id = d.id and d.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') " + "and i.reviewTime between "+dateQueryAdapter.dateConverAdapter2(startDateTime, fmt)+" and " + dateQueryAdapter.dateConverAdapter2(endDateTime, fmt) @@ -821,7 +820,7 @@ if(StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup()) || StringUtils.isBlank(taskGroup)){ //自定义器械包 - sql += " union all select d.name,i.reviewer as reviewer,d.isTraceable amount " + + sql += " union all select d.name,i.reviewer as reviewer,d.isTraceable " + "from tousseInstance i,tousseDefinition d where i.toussedefinition_id = d.id and d.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') " + "and i.reviewTime between "+dateQueryAdapter.dateConverAdapter2(startDateTime, fmt)+" and " + dateQueryAdapter.dateConverAdapter2(endDateTime, fmt) @@ -1778,10 +1777,10 @@ } @Override - public JSONArray getWaitPackingTaskJson(String taskGroup, String tousseOrDepart, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding){ + public JSONArray getWaitPackingTaskJson(WaitPackingTaskTaskParam param){ boolean enableGroupPendingAssemblyTasksByBasket = CssdUtils.getSystemSetConfigByNameBool("enableGroupPendingAssemblyTasksByBasket", false); List waitPackingTaskVoGroupClassifyBaskets = enableGroupPendingAssemblyTasksByBasket? new ArrayList():null; - List taskVos = getWaitPackingTaskTaskVoList(null, taskGroup, null,null,tousseOrDepart, pageIndex,pageSize, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + List taskVos = getWaitPackingTaskTaskVoList(param, null, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket); JSONArray jsonArray = new JSONArray(); if(enableGroupPendingAssemblyTasksByBasket){ jsonArray.addAll(waitPackingTaskVoGroupClassifyBaskets); @@ -1792,25 +1791,24 @@ } @Override - public JSONArray getWaitPackingTaskJson(String taskGroup, String basketBarcodes, JSONObject returnObj, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding) { + public JSONArray getWaitPackingTaskJson(WaitPackingTaskTaskParam param, JSONObject returnObj) { List taskVos = null; JSONArray jsonArray = new JSONArray(); //有篮筐条码时 返回数据结构和enableGroupPendingAssemblyTasksByBasket没开启一样 - boolean enableGroupPendingAssemblyTasksByBasket = StringUtils.isNotBlank(basketBarcodes)?false:CssdUtils.getSystemSetConfigByNameBool("enableGroupPendingAssemblyTasksByBasket", false); + boolean enableGroupPendingAssemblyTasksByBasket = StringUtils.isNotBlank(param.getBasketBarcode())?false:CssdUtils.getSystemSetConfigByNameBool("enableGroupPendingAssemblyTasksByBasket", false); List waitPackingTaskVoGroupClassifyBaskets = enableGroupPendingAssemblyTasksByBasket? new ArrayList():null; - - if(StringUtils.isNotBlank(basketBarcodes)){ + if(StringUtils.isNotBlank(param.getBasketBarcode())){ taskVos = new LinkedList(); - String[] basketBarcodesArray = basketBarcodes.split(";"); + String[] basketBarcodesArray = param.getBasketBarcode().split(";"); for (String basketBarcode : basketBarcodesArray) { - List taskVos_basket = getWaitPackingTaskTaskVoList(null, taskGroup, basketBarcode,returnObj,null,pageIndex,pageSize, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + param.setBasketBarcode(basketBarcode); + List taskVos_basket = getWaitPackingTaskTaskVoList(param,returnObj, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket); if(taskVos_basket != null){ taskVos.addAll(taskVos_basket); } } }else{ - - taskVos = getWaitPackingTaskTaskVoList(null, taskGroup, basketBarcodes,null,null, pageIndex, pageSize, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + taskVos = getWaitPackingTaskTaskVoList(param,null, waitPackingTaskVoGroupClassifyBaskets, enableGroupPendingAssemblyTasksByBasket); } if(enableGroupPendingAssemblyTasksByBasket){ jsonArray.addAll(waitPackingTaskVoGroupClassifyBaskets); @@ -1821,14 +1819,15 @@ } @Override - public List getWaitPackingTaskTaskVoList(Long packingTaskId, String taskGroup, String basketBarcode, JSONObject returnObj,String tousseOrDepart, Integer pageIndex, Integer pageSize, List waitPackingTaskVoGroupClassifyBaskets, Boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding) { + public List getWaitPackingTaskTaskVoList(WaitPackingTaskTaskParam param, JSONObject returnObj, List waitPackingTaskVoGroupClassifyBaskets, Boolean enableGroupPendingAssemblyTasksByBasket) { List taskVos = new ArrayList(); if(enableGroupPendingAssemblyTasksByBasket == null){ enableGroupPendingAssemblyTasksByBasket = false; } if(enableGroupPendingAssemblyTasksByBasket && waitPackingTaskVoGroupClassifyBaskets == null){ waitPackingTaskVoGroupClassifyBaskets = new ArrayList(); } + String tousseOrDepart = param.getTousseOrDepart(); if (tousseOrDepart == null) { tousseOrDepart = ""; } @@ -1840,6 +1839,8 @@ e.printStackTrace(); } } + param.setTousseOrDepart(tousseOrDepart); + String taskGroup = param.getTaskGroup(); if(StringUtils.isBlank(taskGroup)){ throw new RuntimeException("任务组不能为空"); } @@ -1849,6 +1850,7 @@ Set queryTousseTypes = getQueryTousseTypes(taskGroup, supplyRoomConfig); PackingTask packingTask = null; TousseDefinition tdOfPackingTask = null; + Long packingTaskId = param.getPackingTaskId(); if(DatabaseUtil.isPoIdValid(packingTaskId)){ packingTask = get(packingTaskId); if(packingTask != null){ @@ -1861,8 +1863,12 @@ if(timeoutSetting != null && (timeoutSetting.getHour() > 0 || timeoutSetting.getMinute() > 0)){ orderByWashTime = true; } + Integer pageIndex = param.getPageIndex(); + Integer pageSize = param.getPageSize(); + String basketBarcode = param.getBasketBarcode(); + String settleAccountsDepartCoding = param.getSettleAccountsDepartCoding(); if(!DatabaseUtil.isPoIdValid(packingTaskId) && pageSize != null && pageIndex != null && pageIndex > 0 && pageSize > 0){ - foldersAndTaskTypes = getFoldersAndTaskType(orderByWashTime,taskGroup, basketBarcode, pageIndex, pageSize, queryTousseTypes, tousseOrDepart, recyclingAmountConfirmSql, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + foldersAndTaskTypes = getFoldersAndTaskType(param, orderByWashTime, queryTousseTypes, recyclingAmountConfirmSql, enableGroupPendingAssemblyTasksByBasket); if(CollectionUtils.isEmpty(foldersAndTaskTypes)){ return taskVos; } @@ -1887,22 +1893,22 @@ 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, foldersAndTaskTypes, tousseOrDepart,recyclingAmountConfirmSql, enableUrgentFunction,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + taskList = findPackingTaskFromCssdHandleToussesConfig(param, showRecyclingPeopleColumnInPackingTasksList,supplyRoomConfig, foldersAndTaskTypes,recyclingAmountConfirmSql, enableUrgentFunction,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket); } if(supplyRoomConfig != null){ //外来器械包默认处理科室及任务组 JSONObject foreignTousseHandleDepartAndTaskGroupJsonobject = supplyRoomConfig.getOneForeignTousseHandleDepartAndTaskGroupByDepartCode(AcegiHelper.getCurrentOrgUnitCode()); if(tdOfPackingTask != null && TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tdOfPackingTask.getTousseType()) || foreignTousseHandleDepartAndTaskGroupJsonobject != null && StringUtils.equals(taskGroup, foreignTousseHandleDepartAndTaskGroupJsonobject.optString("taskGroup"))){ //外来器械包的装配任务查询 - List foreignTousseTaskList = findForeignToussePackingTask(packingTaskId, showRecyclingPeopleColumnInPackingTasksList, basketBarcode, enableUrgentFunction, foldersAndTaskTypes, tousseOrDepart, recyclingAmountConfirmSql,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + List foreignTousseTaskList = findForeignToussePackingTask(param, showRecyclingPeopleColumnInPackingTasksList, enableUrgentFunction, foldersAndTaskTypes, recyclingAmountConfirmSql,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket); if(CollectionUtils.isNotEmpty(foreignTousseTaskList)){ taskList.addAll(foreignTousseTaskList); } } if(tdOfPackingTask != null && TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(tdOfPackingTask.getTousseType()) || StringUtils.equals(taskGroup, supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ //自定义器械包的装配任务查询 - List customerTousseTaskList = findCustomerToussePackingTask(packingTaskId, showRecyclingPeopleColumnInPackingTasksList, basketBarcode, foldersAndTaskTypes, tousseOrDepart, recyclingAmountConfirmSql, enableUrgentFunction,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket, settleAccountsDepartCoding); + List customerTousseTaskList = findCustomerToussePackingTask(param, showRecyclingPeopleColumnInPackingTasksList, foldersAndTaskTypes, recyclingAmountConfirmSql, enableUrgentFunction,enableExtendedInformationOfUrgentFunction, enableGroupPendingAssemblyTasksByBasket); if(CollectionUtils.isNotEmpty(customerTousseTaskList)){ taskList.addAll(customerTousseTaskList); } @@ -2710,10 +2716,6 @@ } @Override - public List getWaitPackingTaskTaskVoList(String taskGroup, String basketBarcode, JSONObject returnObj, String tousseOrDepart, Integer pageIndex, Integer pageSize, String settleAccountsDepartCoding) { - return getWaitPackingTaskTaskVoList(null, taskGroup, basketBarcode, returnObj,tousseOrDepart, pageIndex, pageSize, null, null, settleAccountsDepartCoding); - } - @Override public Set getTaskGroupsOfContainer(String containerBarcode, String filterTaskGroup) { if (StringUtils.isBlank(containerBarcode)) { return Collections.emptySet(); @@ -2770,17 +2772,17 @@ * @param pageSize 每页条数 * @return */ - public List getFoldersAndTaskType(boolean orderByWashTime, String taskGroup, String basketBarcode, int pageIndex, int pageSize, Set queryTousseTypes, String tousseOrDepart, String recyclingAmountConfirmSql, boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding){ + public List getFoldersAndTaskType(WaitPackingTaskTaskParam param, boolean orderByWashTime, Set queryTousseTypes, String recyclingAmountConfirmSql, boolean enableGroupPendingAssemblyTasksByBasket){ String tousseTypeAndTaskGroupSql = ""; if(queryTousseTypes.contains(TousseDefinition.PACKAGE_TYPE_FOREIGN) && queryTousseTypes.contains(TousseDefinition.PACKAGE_TYPE_CUSTOM)){ - tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_CUSTOM+ "','"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ taskGroup +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 + tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_CUSTOM+ "','"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ param.getTaskGroup() +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 }else if(queryTousseTypes.contains(TousseDefinition.PACKAGE_TYPE_FOREIGN)){ - tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_SPLIT +"') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ taskGroup +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 + tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_SPLIT +"') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ param.getTaskGroup() +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 }else if(queryTousseTypes.contains(TousseDefinition.PACKAGE_TYPE_CUSTOM)){ - tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_CUSTOM+ "') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ taskGroup +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 + tousseTypeAndTaskGroupSql = " and (td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_CUSTOM+ "') or td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ param.getTaskGroup() +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; //外来器械和自定义器械,有专门获取装配任务 }else{ - tousseTypeAndTaskGroupSql = " and (td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ taskGroup +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; + tousseTypeAndTaskGroupSql = " and (td.ancestorID in(select tousseDefinitionId from CssdHandleTousses where taskGroup='"+ param.getTaskGroup() +"' ) and td.tousseType not in('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"','"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"')) "; } String tousseNameOrBasketSlq = null; String tNameDesc = null; @@ -2792,6 +2794,7 @@ tNameDesc = ",t.name desc"; } String tousseOrDepartSql = ""; + String tousseOrDepart = param.getTousseOrDepart(); if(StringUtils.isNotBlank(tousseOrDepart)){ // sqlServer如果字符串中有"[",进行转译 if(tousseOrDepart.contains("[") && dbConnection.isSqlServer()){ @@ -2832,17 +2835,17 @@ + AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig() + "' " + recyclingAmountConfirmSql - + getQuerySettleAccountsDepartCoding(settleAccountsDepartCoding) + + getQuerySettleAccountsDepartCoding(param.getSettleAccountsDepartCoding()) + " and td.ancestorID in (select id from TousseDefinition where (hidePackingTask is null or hidePackingTask<>'是') and (forDisplay=1 or tousseType='外来器械拆分小包')) %s %s %s" + ") t group by "+ (orderByWashTime?"t.washTime,":"")+ tousseNameOrBasketSlq + "t.taskType" + oracleOrderBysql , PackingTask.class.getSimpleName() - ,StringUtils.isBlank(basketBarcode)?"":" and po.basketBarcode like '%" + basketBarcode + "%' " + ,StringUtils.isBlank(param.getBasketBarcode())?"":" and po.basketBarcode like '%" + param.getBasketBarcode() + "%' " ,tousseTypeAndTaskGroupSql,tousseOrDepartSql); if(isSqlServer || dbConnection.isMySQLOrTiDB()){ - sql = "select * from ( " + sql + " ) temp2 where rowNo between "+ (pageSize * (pageIndex - 1) + 1) +" and "+ (pageSize * pageIndex); + sql = "select * from ( " + sql + " ) temp2 where rowNo between "+ (param.getPageSize() * (param.getPageIndex() - 1) + 1) +" and "+ (param.getPageSize() * param.getPageIndex()); }else{ - sql = "select * from ( select rownum as rowno,temp2.* from (" + sql + " ) temp2 where rownum <="+ (pageSize * pageIndex) +" ) temp3 where temp3.rowno>" + (pageSize * (pageIndex - 1)); + sql = "select * from ( select rownum as rowno,temp2.* from (" + sql + " ) temp2 where rownum <="+ (param.getPageSize() * param.getPageIndex()) +" ) temp3 where temp3.rowno>" + (param.getPageSize() * (param.getPageIndex() - 1)); } ResultSet rs = null; logger.debug("获取待装配任务sql:" + sql); @@ -3252,8 +3255,8 @@ * @param recyclingAmountConfirmSql 确认沟通是否隐藏装配任务的过滤条件 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findPackingTaskFromCssdHandleToussesConfig(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String taskGroup,String basketBarcode,SupplyRoomConfig config, List tousseNamesAndTaskTypes, String tousseOrDepart, String recyclingAmountConfirmSql, boolean enableUrgentFunction - , boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding) { + private List findPackingTaskFromCssdHandleToussesConfig(WaitPackingTaskTaskParam param, boolean showRecyclingPeopleColumnInPackingTasksList,SupplyRoomConfig config, List tousseNamesAndTaskTypes, String recyclingAmountConfirmSql, boolean enableUrgentFunction + , boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); StringBuffer sbf = new StringBuffer(); String extraOrder = ""; @@ -3306,10 +3309,10 @@ + "where " //+ "po.tousseDefinition_id = td.id and " + "ct.tousseDefinitionId=td.ancestorID " - + getQuerySettleAccountsDepartCoding(settleAccountsDepartCoding) + + getQuerySettleAccountsDepartCoding(param.getSettleAccountsDepartCoding()) //+ "and po.orgUnitCoding = ct.orgUnitCode " + "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 " + recyclingAmountConfirmSql); + + "and ct.taskGroup = '"+param.getTaskGroup()+"' and po.orgUnitCoding = '" + orgCode + "' and po.unPackAmount > 0 " + recyclingAmountConfirmSql); }else{ extraOrder = " po.urgentAmount desc, "; @@ -3328,12 +3331,12 @@ + " left join IDCardDefinition idn on idn.id=ii.idCardDefinitionID " + leftJoinRecyclingRecordSql + "where po.orgUnitCoding = ct.orgUnitCode " - + getQuerySettleAccountsDepartCoding(settleAccountsDepartCoding) + + getQuerySettleAccountsDepartCoding(param.getSettleAccountsDepartCoding()) + " 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 " + recyclingAmountConfirmSql); + + " and ct.taskGroup = '"+param.getTaskGroup()+"' and po.orgUnitCoding = '" + orgCode + "' and po.unPackAmount > 0 " + recyclingAmountConfirmSql); } - if(DatabaseUtil.isPoIdValid(packingTaskId)){ - sbf.append(" and po.id=" + packingTaskId); + if(DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ + sbf.append(" and po.id=" + param.getPackingTaskId()); }else if(!enableGroupPendingAssemblyTasksByBasket && CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sbf.append(" and ("); for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { @@ -3375,7 +3378,8 @@ } sbf.append(") "); } - if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(packingTaskId)){ + String tousseOrDepart = param.getTousseOrDepart(); + if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ // sqlServer如果字符串中有"[",进行转译 if(tousseOrDepart.contains("[") && dbConnection.isSqlServer()){ int index = tousseOrDepart.indexOf("["); @@ -3400,11 +3404,11 @@ } } } - if(StringUtils.isNotBlank(basketBarcode)){ + if(StringUtils.isNotBlank(param.getBasketBarcode())){ //验证篮筐是否清洗 - Container basket = containerManager.getContainerByBarcode(basketBarcode); + Container basket = containerManager.getContainerByBarcode(param.getBasketBarcode()); if(basket == null){ - throw new RuntimeException(String.format("未找到条码为%s的篮筐", basketBarcode)); + throw new RuntimeException(String.format("未找到条码为%s的篮筐", param.getBasketBarcode())); } String status = basket.getStatus(); if (Container.CONTAINER_STATUS_WASHLOADING.equals(status) @@ -3424,12 +3428,12 @@ } } }*/ - ClassifyBasket classifyBasket = beCleanItemManager.getLatestWashedBasketByBarcode(basketBarcode); + ClassifyBasket classifyBasket = beCleanItemManager.getLatestWashedBasketByBarcode(param.getBasketBarcode()); //JYSRMYY-22 科室供应室设置里的“是否清洗时间结束后装配”改进为在清洗机定义中进行配置 if(!isPackingAfterWashTimeEnd(classifyBasket)){ throw new RuntimeException("该篮筐清洗未结束,请清洗结束后再扫描!"); } - sbf.append(" and po.basketBarcode like '%" + basketBarcode + "%' "); + sbf.append(" and po.basketBarcode like '%" + param.getBasketBarcode() + "%' "); } if(enableExtendedInformationOfUrgentFunction){ sbf.append(" order by ui.expectUseTime desc,"+ extraOrder +"po.id asc"); @@ -3479,7 +3483,7 @@ * @param tousseNamesAndTaskTypes 包名称和装配任务类型 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findForeignToussePackingTask(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, boolean enableUrgentFunction, List tousseNamesAndTaskTypes, String tousseOrDepart, String recyclingAmountConfirmSql, boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding) { + private List findForeignToussePackingTask(WaitPackingTaskTaskParam param, boolean showRecyclingPeopleColumnInPackingTasksList, boolean enableUrgentFunction, List tousseNamesAndTaskTypes, String recyclingAmountConfirmSql, boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); String urgentlevelQuery = null; String urgentlevelJoin = null; @@ -3525,12 +3529,12 @@ + leftJoinRecyclingRecordSql + " where (td.tousseType='"+TousseDefinition.PACKAGE_TYPE_FOREIGN + "' or td.tousseType='" + TousseDefinition.PACKAGE_TYPE_SPLIT + "')" + " and po.orgUnitCoding = '" + orgCode + "' " + recyclingAmountConfirmSql - + getQuerySettleAccountsDepartCoding(settleAccountsDepartCoding)); + + getQuerySettleAccountsDepartCoding(param.getSettleAccountsDepartCoding())); Container basket = null; - if(StringUtils.isNotBlank(basketBarcode)){ + if(StringUtils.isNotBlank(param.getBasketBarcode())){ //验证篮筐是否清洗 basket = containerManager - .getContainerByBarcode(basketBarcode); + .getContainerByBarcode(param.getBasketBarcode()); if(basket == null){ return null;// 未找到篮筐,异常情况 } @@ -3539,10 +3543,10 @@ || Container.CONTAINER_STATUS_WASHING.equals(status)) { return null; } - sbf.append(" and po.basketBarcode like '%" + basketBarcode + "%' "); + sbf.append(" and po.basketBarcode like '%" + param.getBasketBarcode() + "%' "); } - if(DatabaseUtil.isPoIdValid(packingTaskId)){ - sbf.append(" and po.id=" + packingTaskId); + if(DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ + sbf.append(" and po.id=" + param.getPackingTaskId()); }else if(!enableGroupPendingAssemblyTasksByBasket && CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sbf.append(" and ("); for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { @@ -3584,7 +3588,8 @@ } sbf.append(") "); } - if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(packingTaskId)){ + String tousseOrDepart = param.getTousseOrDepart(); + if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ // sqlServer如果字符串中有"[",进行转译 if(tousseOrDepart.contains("[") && dbConnection.isSqlServer()){ int index = tousseOrDepart.indexOf("["); @@ -3619,7 +3624,7 @@ * @param tousseNamesAndTaskTypes 包名称和装配任务类型 * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 */ - private List findCustomerToussePackingTask(Long packingTaskId, boolean showRecyclingPeopleColumnInPackingTasksList, String basketBarcode, List tousseNamesAndTaskTypes, String tousseOrDepart, String recyclingAmountConfirmSql, boolean enableUrgentFunction, boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket, String settleAccountsDepartCoding) { + private List findCustomerToussePackingTask(WaitPackingTaskTaskParam param, boolean showRecyclingPeopleColumnInPackingTasksList, List tousseNamesAndTaskTypes, String recyclingAmountConfirmSql, boolean enableUrgentFunction, boolean enableExtendedInformationOfUrgentFunction, boolean enableGroupPendingAssemblyTasksByBasket) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); String selectRecyclingUserSql = null; String leftJoinRecyclingRecordSql = null; @@ -3661,22 +3666,22 @@ + " left join IDCardDefinition idn on idn.id=ii.idCardDefinitionID " + leftJoinRecyclingRecordSql + "where td.tousseType='"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"' and po.orgUnitCoding = '" + orgCode + "' " - + getQuerySettleAccountsDepartCoding(settleAccountsDepartCoding) + + getQuerySettleAccountsDepartCoding(param.getSettleAccountsDepartCoding()) + recyclingAmountConfirmSql); - if(StringUtils.isNotBlank(basketBarcode)){ + if(StringUtils.isNotBlank(param.getBasketBarcode())){ //验证篮筐是否清洗 Container basket = containerManager - .getContainerByBarcode(basketBarcode); + .getContainerByBarcode(param.getBasketBarcode()); String status = basket .getStatus(); if (Container.CONTAINER_STATUS_WASHLOADING.equals(status) || Container.CONTAINER_STATUS_WASHING.equals(status)) { return null; } - sbf.append(" and po.basketBarcode like '%" + basketBarcode + "%' "); + sbf.append(" and po.basketBarcode like '%" + param.getBasketBarcode() + "%' "); } - if(DatabaseUtil.isPoIdValid(packingTaskId)){ - sbf.append(" and po.id=" + packingTaskId); + if(DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ + sbf.append(" and po.id=" + param.getPackingTaskId()); }else if(!enableGroupPendingAssemblyTasksByBasket && CollectionUtils.isNotEmpty(tousseNamesAndTaskTypes)){ sbf.append(" and ("); for (int i = 0; i < tousseNamesAndTaskTypes.size(); i++) { @@ -3718,7 +3723,8 @@ } sbf.append(") "); } - if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(packingTaskId)){ + String tousseOrDepart = param.getTousseOrDepart(); + if(StringUtils.isNotBlank(tousseOrDepart) && !DatabaseUtil.isPoIdValid(param.getPackingTaskId())){ // sqlServer如果字符串中有"[",进行转译 if(tousseOrDepart.contains("[") && dbConnection.isSqlServer()){ int index = tousseOrDepart.indexOf("["); @@ -5148,7 +5154,12 @@ } } for (PackingTask packingTask : packingTaskList) { - List vos = getWaitPackingTaskTaskVoList(packingTask.getId(), taskGroup, null, null,null, 0, 0, null, null, null); + WaitPackingTaskTaskParam param = new WaitPackingTaskTaskParam(); + param.setPackingTaskId(packingTask.getId()); + param.setTaskGroup(taskGroup); + param.setPageIndex(0); + param.setPageSize(0); + List vos = getWaitPackingTaskTaskVoList(param, null, null, null); if(CollectionUtils.isNotEmpty(vos)){ for (WaitPackingTaskVo vo : vos) { List childrens = vo.getChildren(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskTaskParam.java =================================================================== diff -u --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskTaskParam.java (revision 0) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskTaskParam.java (revision 41613) @@ -0,0 +1,79 @@ +package com.forgon.disinfectsystem.packing.vo; +/** + * 获取装配任务的参数vo 前端的传参 + * + */ +public class WaitPackingTaskTaskParam { + + /** + * 页码 + */ + private Integer pageIndex = 1; + /** + * 每页大小 + */ + private Integer pageSize = 20; + /** + * 任务组 + */ + private String taskGroup; + /** + * 包名或部门 + */ + private String tousseOrDepart; + /** + * 结算科室编码 + */ + private String settleAccountsDepartCoding; + /** + * 装配任务id + */ + private Long packingTaskId; + /** + * 篮筐条码 + */ + private String basketBarcode; + public Integer getPageIndex() { + return pageIndex; + } + public void setPageIndex(Integer pageIndex) { + this.pageIndex = pageIndex; + } + public Integer getPageSize() { + return pageSize; + } + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + public String getTaskGroup() { + return taskGroup; + } + public void setTaskGroup(String taskGroup) { + this.taskGroup = taskGroup; + } + public String getTousseOrDepart() { + return tousseOrDepart; + } + public void setTousseOrDepart(String tousseOrDepart) { + this.tousseOrDepart = tousseOrDepart; + } + public String getSettleAccountsDepartCoding() { + return settleAccountsDepartCoding; + } + public void setSettleAccountsDepartCoding(String settleAccountsDepartCoding) { + this.settleAccountsDepartCoding = settleAccountsDepartCoding; + } + public Long getPackingTaskId() { + return packingTaskId; + } + public void setPackingTaskId(Long packingTaskId) { + this.packingTaskId = packingTaskId; + } + public String getBasketBarcode() { + return basketBarcode; + } + public void setBasketBarcode(String basketBarcode) { + this.basketBarcode = basketBarcode; + } + +}