Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/ApplicationGoodsVo.java =================================================================== diff -u -r29761 -r31188 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/ApplicationGoodsVo.java (.../ApplicationGoodsVo.java) (revision 29761) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/ApplicationGoodsVo.java (.../ApplicationGoodsVo.java) (revision 31188) @@ -109,6 +109,11 @@ * 库存数量(目前先用于优化改造后的一次性物品) */ private Long storage; + + /** + * 物品的申请单的申请科室编码 + */ + private String departCoding; public boolean isBeforeToday() { return beforeToday; @@ -359,6 +364,14 @@ this.status = status; } + public String getDepartCoding() { + return departCoding; + } + + public void setDepartCoding(String departCoding) { + this.departCoding = departCoding; + } + /** * 紧急程度grade最高的排前面 */ Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/InvoicePlanVo.java =================================================================== diff -u -r27812 -r31188 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/InvoicePlanVo.java (.../InvoicePlanVo.java) (revision 27812) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/vo/InvoicePlanVo.java (.../InvoicePlanVo.java) (revision 31188) @@ -57,6 +57,11 @@ * 单数量(用于发货计划优化) */ private Integer count; + + /** + * 申请单上物品的状态(已灭菌/未灭菌)(用于发货计划列表控制物品变色SZSDSRMYY-51) + */ + private String status; public Long getId() { return id; @@ -200,4 +205,12 @@ this.count = count; } + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanOptimizeManagerImpl.java =================================================================== diff -u -r31072 -r31188 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanOptimizeManagerImpl.java (.../InvoicePlanOptimizeManagerImpl.java) (revision 31072) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanOptimizeManagerImpl.java (.../InvoicePlanOptimizeManagerImpl.java) (revision 31188) @@ -50,6 +50,7 @@ import com.forgon.tools.MathTools; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.util.ConfigUtils; import com.forgon.tools.util.SqlUtils; /** @@ -229,6 +230,16 @@ } } } + + // colorChangeRuleOfInvoicPlanToSendGoodsList值为"2"时,启用已灭菌(含已消毒)物品变色功能(SZSDSRMYY-51) + // 在发货计划模块的待发货科室列表,如果某科室存在状态为已灭菌或者已消毒的待发货物品时,将该科室所在行的科室列单元格的背景颜色改为和物品已灭菌/已消毒背景色一致 + int colorChangeRuleOfInvoicPlanToSendGoodsList = + ConfigUtils.getSystemSetConfigByNameInt("colorChangeRuleOfInvoicPlanToSendGoodsList", 0); + Map statusMap = new HashMap(); + if(colorChangeRuleOfInvoicPlanToSendGoodsList == 2){ + statusMap = getDepartInvoicePlanStatus(departCodingList, applyDate, tousseTypes,disposableGoodsType, sterilingMethods,tousseGroupIds, appFormType); + } + for(String departCode : departCodingList){ OrgUnit orgUnit = orgUnitMap.get(departCode); if(orgUnit == null){ @@ -248,6 +259,11 @@ vo.setMaxUrgentLevel(gradeToUrgentLevelMap.get(departCodingGradeMap.get(departCode))); vo.setContainUrgentItem(true); } + vo.setStatus(ApplicationGoodsVo.STATUS_UNSTERILED); + String status = statusMap.get(departCode); + if(StringUtils.isNotBlank(status)){ + vo.setStatus(status); + } invoicePlans.add(vo); } } @@ -263,6 +279,334 @@ } /** + * 判断科室的申请单是否包含已灭菌/已消毒的物品(SZSDSRMYY-51) + * @param orgUnitCodingList + * @param applyDate + * @param tousseTypes + * @param disposableGoodsType + * @param sterilingMethods + * @param tousseGroupIds + * @param appFormType + * @return + */ + private Map getDepartInvoicePlanStatus(List orgUnitCodingList, String applyDate, String tousseTypes, + String disposableGoodsType, String sterilingMethods, String tousseGroupIds, String appFormType) { + + Map result = new HashMap(); + Collection list = new ArrayList(); + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + //发货数量依据:申请单或回收单 + String invoiceOrigin = config.getInvoiceOrigin(); + //器械包发货时间 + String tousseDeliverOccasion = config.getTousseDeliverOccasion(); + + //申请单的过滤条件 + //申请单表的别名 + String invoicePlanTableAlias = "po"; + //申请单过滤公共条件(按申请单id,申请科室等),用于所有类型场景的申请单过滤条件 + String invoicePlanCommonCondition = null; + //外来器械包申请单过滤条件(未装配的查申请项、装配过的查包实例)、还需要查出相关的申请单id + String invoicePlanForeignTousseCondition = null; + //需要绑定申请单的各种物品场景的过滤条件(除外来器械申请单外(不含),还有外部代理灭菌包、自定义器械包、代理灭菌的包等)、还需要查出相关的申请单id + String invoicePlanNeedReturnApplicationIdCondition = null; + //公共类型的申请单的过滤条件(一次性物品、器械包、敷料包、消毒物品等)、只统计物品不查申请单. + String invoicePlanCommonGoodsCondition = null; + + String orgUnitCoding = ""; + if(CollectionUtils.isNotEmpty(orgUnitCodingList)){ + invoicePlanCommonCondition = String.format(invoicePlanTableAlias +".%s", + InvoiceUtils.getInvoiceGroupByConfig()); + invoicePlanCommonCondition = SqlUtils.getStringFieldInLargeCollectionsPredicate(invoicePlanCommonCondition, orgUnitCodingList); + }else{ + throw new RuntimeException("科室编码不能为空"); + } + + /* + * 1.如果appFormType为null,则分开查询外来器械包申请单、需要绑定申请单的各种物品、公共类型的申请单的过滤条件(一次性物品、器械包、敷料包等)、消毒物品的过滤查询等分开查询 + * 2.如果appFormType为外来器械包申请单 + * 3.如果appFormType为代理灭菌单、外部代理灭菌单、自定义器械包申请单 + * 4.如果appFormType为以上申请单外的申请单 + * 4.1器械包、敷料包、一次性物品 + * 4.2消毒物品 + */ + //要排除的申请单类型集合 + List excludeInvoicePlanTypeList = + Arrays.asList(new String[]{ + InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION, + InvoicePlan.TYPE_PROXYDISINFECTION, + InvoicePlan.TYPE_FOREIGNPROXYDISINFECTION, + InvoicePlan.TYPE_CUSTOM_TOUSSE_APPLIACTION_FORM + }); + if(StringUtils.isNotBlank(appFormType)){ + if(InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION.equals(appFormType)){ + invoicePlanForeignTousseCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionOnlyForeignTousseApplication(null, + applyDate, invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + }else if(InvoicePlan.TYPE_PROXYDISINFECTION.equals(appFormType) + || InvoicePlan.TYPE_FOREIGNPROXYDISINFECTION.equals(appFormType) + || InvoicePlan.TYPE_CUSTOM_TOUSSE_APPLIACTION_FORM.equals(appFormType)){ + invoicePlanNeedReturnApplicationIdCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionNeedReturnApplicationId(null, applyDate, + invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + }else{ + invoicePlanCommonGoodsCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionOnlyInvoicePlan(orgUnitCoding, applyDate, + appFormType , excludeInvoicePlanTypeList , invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + } + }else{ + invoicePlanForeignTousseCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionOnlyForeignTousseApplication(null, + applyDate, invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + invoicePlanNeedReturnApplicationIdCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionNeedReturnApplicationId(null, applyDate, + invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + invoicePlanCommonGoodsCondition = String.format("%s and %s", + invoicePlanCommonCondition, + buildWaitSendInvoicePlanSqlContionOnlyInvoicePlan(orgUnitCoding, applyDate, + appFormType , excludeInvoicePlanTypeList , invoicePlanTableAlias , invoiceOrigin , tousseDeliverOccasion)); + } + + List tousseTypeList = null; + if(StringUtils.isNotBlank(tousseTypes)){ + tousseTypeList = Arrays.asList(tousseTypes.split(",")); + } + boolean includeForeignTousseType = false; + if(CollectionUtils.isEmpty(tousseTypeList) || tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_FOREIGN)){ + includeForeignTousseType = true; + } + //1.如果存在外来器械单的查询条件时 + if(StringUtils.isNotBlank(invoicePlanForeignTousseCondition) && includeForeignTousseType){ + //申请项的过滤条件 + //申请项表的别名 + String tousseItemTableAlias = "ti"; + String tousseItemCondition = + buildWaitSendInvoicePlanSqlContionOnlyTousseItem(TousseDefinition.PACKAGE_TYPE_FOREIGN, null, + sterilingMethods, tousseGroupIds , tousseItemTableAlias , invoicePlanTableAlias, + invoiceOrigin,tousseDeliverOccasion); + + //包实例表的别名 + String tousseInstanceTableAlias = "tis"; + String tousseInstanceCondition = String.format("%s", + SqlUtils.getStringFieldInLargeCollectionsPredicate(tousseInstanceTableAlias + ".status", + Arrays.asList(new String[]{ + TousseInstance.STATUS_PACKED, + TousseInstance.STATUS_REVIEWED, + TousseInstance.STATUS_STERILING, + TousseInstance.STATUS_DELAY_CONFIRM, + TousseInstance.STATUS_STERILED + }))); + + //数量合计语句(非外来器械包) + String tousseItemWaitSendAmountSumSql = "(recyclingAmount - sendOutAmount)"; + + //先查未装配生成包实例的申请单 + String queryTousseItemSql = String.format( + "select "+ invoicePlanTableAlias +".id invoicePlanId," + + invoicePlanTableAlias +".departCoding," + + tousseItemTableAlias +".id tousseItemId," + + tousseItemTableAlias +".tousseName," + + tousseItemTableAlias +".tousseType," + + tousseItemTableAlias +".diposable," + + invoicePlanTableAlias +".applicationTime," + + tousseItemWaitSendAmountSumSql +" amount " + + "from %s "+ tousseItemTableAlias +" " + + "join %s "+ invoicePlanTableAlias +" on "+ tousseItemTableAlias +".recyclingApplication_ID="+ invoicePlanTableAlias +".id " + + "where %s and %s and " + tousseItemWaitSendAmountSumSql +" > 0 ", + TousseItem.class.getSimpleName() , InvoicePlan.class.getSimpleName(), + tousseItemCondition,String.format("%s and %s", invoicePlanForeignTousseCondition, + String.format(invoicePlanTableAlias +".id not in (select foreignTousseApp_id from %s where foreignTousseApp_id is not null)",TousseInstance.class.getSimpleName()))); + + //再查已经装配生成包实例的申请单 + queryTousseItemSql += String.format(" union all " + + "select "+ invoicePlanTableAlias +".id invoicePlanId," + + invoicePlanTableAlias +".departCoding," + + "null tousseItemId," + + tousseInstanceTableAlias +".tousseName," + + "td.tousseType,'%s' diposable," + + invoicePlanTableAlias +".applicationTime," + + "1 amount " + + "from %s "+ tousseInstanceTableAlias +" " + + "join %s "+ invoicePlanTableAlias +" on "+ tousseInstanceTableAlias +".foreignTousseApp_id="+ invoicePlanTableAlias +".id " + + "left join %s td on "+ tousseInstanceTableAlias +".tousseDefinition_id=td.id " + + "where %s and %s order by applicationTime", Constants.STR_NO, + TousseInstance.class.getSimpleName() , InvoicePlan.class.getSimpleName(), + TousseDefinition.class.getSimpleName() ,invoicePlanForeignTousseCondition,tousseInstanceCondition); + + Collection list1 = getWaitDeliverGoodsForForeignTousse(queryTousseItemSql); + if(CollectionUtils.isNotEmpty(list1)){ + list.addAll(list1); + } + } + + //如果存在需返回申请单id的查询条件时(用于代理灭菌单、外部代理灭菌单、自定义器械包申请单) + if(StringUtils.isNotBlank(invoicePlanNeedReturnApplicationIdCondition)){ + //申请项的过滤条件 + //申请项表的别名 + String tousseItemTableAlias = "ti"; + String tousseItemCondition = + buildWaitSendInvoicePlanSqlContionOnlyTousseItem(tousseTypes, null, + sterilingMethods, tousseGroupIds , tousseItemTableAlias , invoicePlanTableAlias, + invoiceOrigin,tousseDeliverOccasion); + + //应发货数量 + String shouldSendAmountCaseSql = + CssdUtils.buildTousseItemShouldDeliverAmountSql(invoicePlanTableAlias, tousseItemTableAlias, + invoiceOrigin, tousseDeliverOccasion); + + //先查未装配生成包实例的申请单 + String queryTousseItemSql = String.format("select "+ invoicePlanTableAlias +".id invoicePlanId," + + invoicePlanTableAlias +".departCoding," + + invoicePlanTableAlias +".type invoicePlanType," + + tousseItemTableAlias +".tousseName," + + tousseItemTableAlias +".tousseType," + + tousseItemTableAlias +".diposable," + + invoicePlanTableAlias +".applicationTime," + + "(" + shouldSendAmountCaseSql +" - "+ tousseItemTableAlias +".sendoutAmount) amount " + + "from %s "+ tousseItemTableAlias +" " + + "join %s "+ invoicePlanTableAlias +" on "+ tousseItemTableAlias +".recyclingApplication_ID="+ invoicePlanTableAlias +".id " + + "where %s and %s and " + shouldSendAmountCaseSql +" > 0 " + + "order by "+ invoicePlanTableAlias +".applicationTime", + TousseItem.class.getSimpleName() , InvoicePlan.class.getSimpleName(), + invoicePlanNeedReturnApplicationIdCondition,tousseItemCondition); + + Collection list1 = getWaitDeliverGoodsForNeedReturnInvoicePlanId(queryTousseItemSql); + if(CollectionUtils.isNotEmpty(list1)){ + list.addAll(list1); + } + } + + //如果存在公共物品类型的查询条件时(分开成消毒物品与(器械包、一次性物品、敷料包)) + if(StringUtils.isNotBlank(invoicePlanCommonGoodsCondition)){ + + //申请项的过滤条件 + //申请项表的别名 + String tousseItemTableAlias = "ti"; + //应发货数量 + String shouldSendAmountCaseSql = + CssdUtils.buildTousseItemShouldDeliverAmountSql(invoicePlanTableAlias, tousseItemTableAlias, + invoiceOrigin, tousseDeliverOccasion); + + //数量合计语句 + String tousseItemWaitSendAmountSumSql = "((case " + + "when "+ tousseItemTableAlias +".tousseType='"+ DisposableGoods.TYPE_NAME +"' " + + "then case when ("+ tousseItemTableAlias +".transferScale is not null and "+ tousseItemTableAlias +".transferScale > 0) then "+ tousseItemTableAlias +".amount/"+ tousseItemTableAlias +".transferScale " + + "else "+ tousseItemTableAlias +".amount end " + + "else "+ shouldSendAmountCaseSql +" " + + "end) - (case when ("+ tousseItemTableAlias +".transferScale is not null and "+ tousseItemTableAlias +".transferScale > 0) then "+ tousseItemTableAlias +".sendOutAmount/"+ tousseItemTableAlias +".transferScale else "+ tousseItemTableAlias +".sendOutAmount end))"; + + //1.器械包、敷料包、一次性物品的待发货查询 + if(CollectionUtils.isEmpty(tousseTypeList) || tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_INSIDE) + || tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_DRESSING) || tousseTypeList.contains(DisposableGoods.TYPE_NAME)){ + List queryTousseTypeList = new ArrayList(); + if(CollectionUtils.isEmpty(tousseTypeList)){ + queryTousseTypeList.add(TousseDefinition.PACKAGE_TYPE_INSIDE); + queryTousseTypeList.add(TousseDefinition.PACKAGE_TYPE_DRESSING); + queryTousseTypeList.add(DisposableGoods.TYPE_NAME); + }else{ + if(tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_INSIDE)){ + queryTousseTypeList.add(TousseDefinition.PACKAGE_TYPE_INSIDE); + } + if(tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_DRESSING)){ + queryTousseTypeList.add(TousseDefinition.PACKAGE_TYPE_DRESSING); + } + if(tousseTypeList.contains(DisposableGoods.TYPE_NAME)){ + queryTousseTypeList.add(DisposableGoods.TYPE_NAME); + } + } + //通用物品类型,即器械包、敷料包、一次性物品(排除消毒物品) + String tousseItemCommonGoodsExcludeDisinfectGoodsCondition = + buildWaitSendInvoicePlanSqlContionOnlyTousseItem( + StringUtils.join(queryTousseTypeList, ","), + disposableGoodsType, sterilingMethods, tousseGroupIds , + tousseItemTableAlias , invoicePlanTableAlias,invoiceOrigin, + tousseDeliverOccasion); + + String queryNotDisinfectTousseItemSql = String.format("select disposableGoodsId,tousseName,tousseType,diposable," + + invoicePlanTableAlias +".departCoding," + + "min("+ invoicePlanTableAlias +".applicationTime) applicationTime," + + "dg.ttsName ,sum"+ tousseItemWaitSendAmountSumSql +" amount " + + "from %s "+ tousseItemTableAlias +" " + + "join %s "+ invoicePlanTableAlias +" on "+ tousseItemTableAlias +".recyclingApplication_ID="+ invoicePlanTableAlias +".id " + + "left join %s dg on dg.id="+ tousseItemTableAlias +".disposableGoodsId " + + "where %s and %s and " + tousseItemWaitSendAmountSumSql +" > 0 " + + "group by disposableGoodsId,tousseName,tousseType,diposable,dg.ttsName,po.departCoding " + + "order by " + + "(case when tousseType='%s' then 1 else 2 end)," + + "min("+ invoicePlanTableAlias +".applicationTime)", + TousseItem.class.getSimpleName() , InvoicePlan.class.getSimpleName(), + DisposableGoods.class.getSimpleName() ,invoicePlanCommonGoodsCondition , + tousseItemCommonGoodsExcludeDisinfectGoodsCondition , TousseItem.TYPE_DIPOSABLE_GOODS); + Collection list1 = getWaitDeliverGoodsForCommonGoodsButNotDisinfectGoods(queryNotDisinfectTousseItemSql); + if(CollectionUtils.isNotEmpty(list1)){ + list.addAll(list1); + } + } + + //2.消毒物品 + if(CollectionUtils.isEmpty(tousseTypeList) || tousseTypeList.contains(TousseDefinition.PACKAGE_TYPE_DISINFECTION)){ + + String tousseItemDisinfectGoodsCondition = + buildWaitSendInvoicePlanSqlContionOnlyTousseItem(TousseDefinition.PACKAGE_TYPE_DISINFECTION, null, sterilingMethods, tousseGroupIds , tousseItemTableAlias , invoicePlanTableAlias,invoiceOrigin,tousseDeliverOccasion); + String queryDisinfectTousseItemSql = String.format("select "+ tousseItemTableAlias +".tousseName," + + tousseItemTableAlias +".tousseType,'%s' diposable," + + invoicePlanTableAlias +".departCoding," + + "td.id tdId,td.materialsMD5,td.materialAmount,td.isApplyEntireTousse," + + "min("+invoicePlanTableAlias +".applicationTime) applicationTime," + + "sum"+ tousseItemWaitSendAmountSumSql +" amount " + + "from %s "+ tousseItemTableAlias +" " + + "join %s "+ invoicePlanTableAlias +" on "+ tousseItemTableAlias +".recyclingApplication_ID="+ invoicePlanTableAlias +".id " + + "left join %s td on td.id="+ tousseItemTableAlias +".tousseDefinitionId " + + "where %s and %s and " + tousseItemWaitSendAmountSumSql +" > 0 " + + "group by "+ tousseItemTableAlias +".tousseName,"+ tousseItemTableAlias +".tousseType, td.id ,td.materialsMD5,td.materialAmount,td.isApplyEntireTousse,po.departCoding " + + "order by min(" + invoicePlanTableAlias +".applicationTime)", Constants.STR_NO, + TousseItem.class.getSimpleName() , InvoicePlan.class.getSimpleName(), + TousseDefinition.class.getSimpleName() ,invoicePlanCommonGoodsCondition , + tousseItemDisinfectGoodsCondition); + Collection list2 = getWaitDeliverGoodsForDisinfectGoods(queryDisinfectTousseItemSql); + if(CollectionUtils.isNotEmpty(list2)){ + list.addAll(list2); + } + } + } + + // 科室对应的物品 + Map> departToGoodsMap = new HashMap>(); + if(CollectionUtils.isNotEmpty(list)){ + for (ApplicationGoodsVo vo : list) { + String departCoding = vo.getDepartCoding(); + List voList = departToGoodsMap.get(departCoding); + if(CollectionUtils.isEmpty(voList)){ + voList = new ArrayList(); + } + voList.add(vo); + departToGoodsMap.put(departCoding, voList); + } + } + + if(!departToGoodsMap.isEmpty()){ + for (String departCode : departToGoodsMap.keySet()) { + List voList = departToGoodsMap.get(departCode); + if(CollectionUtils.isNotEmpty(voList)){ + addApplicationGoodsVoStatus(voList, departCode); + for (ApplicationGoodsVo applicationGoodsVo : voList) { + if(StringUtils.equals(applicationGoodsVo.getStatus(), ApplicationGoodsVo.STATUS_STERILED)){ + result.put(departCode, ApplicationGoodsVo.STATUS_STERILED); + break; + } + } + } + } + } + + return result; + } + + /** * 构造发货计划过滤条件,包括按申请项及申请项,where开头 * @param departCodes 科室编码 * @param applyDate 申请日期 @@ -1527,6 +1871,8 @@ vo.setName(tousseName); vo.setShowTousseName(tousseName); vo.setGoodsType(tousseType); + String departCoding = (String)map.get("departCoding"); + vo.setDepartCoding(departCoding); //待发货数量 Number amount = (Number)map.get("amount"); if(amount != null){ @@ -1596,6 +1942,8 @@ vo.setName(tousseName); vo.setShowTousseName(tousseName); vo.setGoodsType(tousseType); + String departCoding = (String)map.get("departCoding"); + vo.setDepartCoding(departCoding); //待发货数量 Number amount = (Number)map.get("amount"); if(amount != null){ @@ -1657,6 +2005,8 @@ vo.setShowTousseName(showName); vo.setGoodsType(tousseType); vo.setDiposable((String)map.get("diposable")); + String departCoding = (String)map.get("departCoding"); + vo.setDepartCoding(departCoding); //待发货数量 vo.setCount(((Number)map.get("amount")).intValue()); vo.setApplicationAmount(vo.getCount()); @@ -1666,7 +2016,9 @@ vo.setMaxUrgentLevelGrade(Math.max(grade.intValue(), vo.getMaxUrgentLevelGrade())); } //加急数量 - vo.setUrgentAmount(((Number)map.get("urgentAmount")).intValue()); + if(map.get("urgentAmount") != null){ + vo.setUrgentAmount(((Number)map.get("urgentAmount")).intValue()); + } //申请时间 Date applicationTime = (Date)map.get("applicationTime"); if(applicationTime != null){ @@ -1705,6 +2057,8 @@ vo.setShowTousseName(tousseName); vo.setGoodsType(tousseType); vo.setDiposable((String)map.get("diposable")); + String departCoding = (String)map.get("departCoding"); + vo.setDepartCoding(departCoding); //待发货数量 vo.setCount(MathTools.add(vo.getCount(), (Number)map.get("amount")).intValue()); //加急级别