diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index ea00fbac5..a4e639629 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -104,13 +104,13 @@ public class InBoxManageServiceImpl implements InBoxManageService { .eq("task_type", "010702") .eq("is_delete", "0") .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (count>0){ - throw new BadRequestException("当前木箱入库任务已存在"+ boxNo); + if (count > 0) { + throw new BadRequestException("当前木箱入库任务已存在" + boxNo); } //查询仓库是否存在相同木箱 JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0); - if (stIvtStructattr!=null && stIvtStructattr.size()>0){ - throw new BadRequestException("当前木箱已经存在库中"+stIvtStructattr.getJSONObject(0).getString("struct_code")); + if (stIvtStructattr != null && stIvtStructattr.size() > 0) { + throw new BadRequestException("当前木箱已经存在库中" + stIvtStructattr.getJSONObject(0).getString("struct_code")); } // 查询木箱信息 BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( @@ -201,10 +201,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { throw new BadRequestException("扫描的木箱个数和选择的木箱层数不一致!"); } Set collect = Arrays.stream(split).collect(Collectors.toSet()); - if (collect.size()!=split.length){ + if (collect.size() != split.length) { throw new BadRequestException("扫描的木箱条码不能相同"); } - if (split.length>3){ + if (split.length > 3) { throw new BadRequestException("堆叠木箱最大不能超过3层"); } // 校验是否有相同木箱号 @@ -218,8 +218,8 @@ public class InBoxManageServiceImpl implements InBoxManageService { //查询仓库是否存在相同木箱 for (String boxSn : split) { JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxSn + "'").getResultJSONArray(0); - if (stIvtStructattr!=null && stIvtStructattr.size()>0){ - throw new BadRequestException("当前木箱已经存在库中"+stIvtStructattr.getJSONObject(0).getString("struct_code")); + if (stIvtStructattr != null && stIvtStructattr.size() > 0) { + throw new BadRequestException("当前木箱已经存在库中" + stIvtStructattr.getJSONObject(0).getString("struct_code")); } } @@ -349,13 +349,13 @@ public class InBoxManageServiceImpl implements InBoxManageService { // 手工入库 if (whereJson.getString("bill_type").equals(IOSEnum.IN_TYPE.code("手工入库"))) { if (!ifFirst) { - throw new BadRequestException("此木箱【"+whereJson.getString("box_no")+"】未入过库,请选择【生产入库】!"); + throw new BadRequestException("此木箱【" + whereJson.getString("box_no") + "】未入过库,请选择【生产入库】!"); } } if (whereJson.getString("bill_type").equals(IOSEnum.IN_TYPE.code("生产入库"))) { if (ifFirst) { - throw new BadRequestException("此木箱【"+whereJson.getString("box_no")+"】已入过库,请选择【手工入库】!"); + throw new BadRequestException("此木箱【" + whereJson.getString("box_no") + "】已入过库,请选择【手工入库】!"); } } } @@ -368,15 +368,15 @@ public class InBoxManageServiceImpl implements InBoxManageService { JSONObject param = new JSONObject(); param.put("pcsn", ""); WQLObject.getWQLObject("md_pb_storagevehicleext") - .update(param,"pcsn = '"+whereJson.getString("box_no")+"'"); + .update(param, "pcsn = '" + whereJson.getString("box_no") + "'"); } // 更新子卷包装关系创建人 JSONObject param2 = new JSONObject(); - param2.put("create_id",SecurityUtils.getCurrentUserId()); - param2.put("create_name",SecurityUtils.getCurrentNickName()); + param2.put("create_id", SecurityUtils.getCurrentUserId()); + param2.put("create_name", SecurityUtils.getCurrentNickName()); WQLObject.getWQLObject("pdm_bi_subpackagerelation") - .update(param2,"package_box_sn = '"+whereJson.getString("box_no")+"'"); + .update(param2, "package_box_sn = '" + whereJson.getString("box_no") + "'"); /* * 查询mes木箱信息,插入木箱信息表 @@ -423,6 +423,12 @@ public class InBoxManageServiceImpl implements InBoxManageService { param.put("height", boxDao.getBox_high()); param.put("containerType", boxDao.getVehicle_type()); String type = whereJson.getString("bill_type"); + if (StrUtil.isEmpty(type)) { + throw new BadRequestException("入库类型不能为空!"); + } + if (type.length() < 4) { + throw new BadRequestException("入库类型字段长度不能少于4!"); + } param.put("barcode", whereJson.getString("box_no") + "-" + type.substring(3, 4)); //根据木箱高度,判断入库仓位的高度 diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/common/utils/FileUtil.java b/lms/nladmin-system/src/main/java/org/nl/modules/common/utils/FileUtil.java index df4af2968..e221f58f0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/common/utils/FileUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/common/utils/FileUtil.java @@ -16,6 +16,7 @@ package org.nl.modules.common.utils;/* import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelUtil; import org.apache.poi.util.IOUtils; @@ -203,26 +204,34 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { * 导出excel */ public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { - String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; - File file = new File(tempPath); - BigExcelWriter writer = ExcelUtil.getBigWriter(file); - // 一次性写出内容,使用默认样式,强制输出标题 - writer.write(list, true); - SXSSFSheet sheet = (SXSSFSheet)writer.getSheet(); - //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 - sheet.trackAllColumnsForAutoSizing(); - //列宽自适应 - writer.autoSizeColumnAll(); - //response为HttpServletResponse对象 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); - //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 - response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); - ServletOutputStream out = response.getOutputStream(); - // 终止后删除临时文件 - file.deleteOnExit(); - writer.flush(out, true); - //此处记得关闭输出Servlet流 - IoUtil.close(out); + ServletOutputStream out = null; + BigExcelWriter writer; + try { + String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; + File file = new File(tempPath); + writer = ExcelUtil.getBigWriter(file); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + SXSSFSheet sheet = (SXSSFSheet) writer.getSheet(); + //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 + sheet.trackAllColumnsForAutoSizing(); + //列宽自适应 + writer.autoSizeColumnAll(); + //response为HttpServletResponse对象 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 + response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); + out = response.getOutputStream(); + // 终止后删除临时文件 + file.deleteOnExit(); + writer.flush(out, true); + } finally { + //此处记得关闭输出Servlet流 + if (ObjectUtil.isNotEmpty(out)) { + IoUtil.close(out); + } + } + } public static String getFileType(String type) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java index 358478262..e400cfff2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java @@ -67,6 +67,9 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { JSONObject param = new JSONObject(); if (ObjectUtil.isNotEmpty(device_code)) { JSONObject device_jo = WQLObject.getWQLObject("EM_BI_MonitorDevice").query("device_code = '" + device_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(device_jo)){ + throw new BadRequestException("未查询到设备号为["+device_code+"]的设备信息!"); + } param.put("device_code", device_code); param.put("product_area", device_jo.getString("product_area")); } else { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 4de5461d6..79c0dc35a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -192,10 +192,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task") .query("task_id = '" + task_id + "'") .uniqueResult(0); + if (ObjectUtil.isEmpty(task)){ + throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!"); + } if (StrUtil.isNotEmpty(row.getString("car_no"))) { WQLObject.getWQLObject("SCH_BASE_Task") .update(MapOf.of("car_no",row.getString("car_no")),"task_id = '" + task_id + "'"); } + String handleClassName = task.getString("handle_class"); + if (StrUtil.isEmpty(handleClassName)) { + throw new BadRequestException("当前任务的处理类未找到!"); + } AbstractAcsTask abstractTask = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getString("handle_class"))); abstractTask.updateTaskStatus(task,Task_Status_Convers.get(row.getString("task_status"))); } else { @@ -2089,7 +2096,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); // 6-退货入库 String materialBarcode = whereJson.getString("material_barcode"); + if(StrUtil.isEmpty(materialBarcode)){ + throw new BadRequestException("当前木箱号不能为空!"); + } String[] box_arr = materialBarcode.split("-"); + if (box_arr.length < 2) { + // 处理分割结果不足的情况 + throw new BadRequestException("当前木箱号数据异常!"+box_arr.toString()); + } //获取当前的入库类型 whereJson.put("bill_type", "000" + box_arr[1]); whereJson.put("box_no", box_arr[0]); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java index 5861731de..146e64dbe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java @@ -97,6 +97,9 @@ public class VirtualOutServiceImpl implements VirtualOutService { if (ObjectUtil.isNotEmpty(whereJson.getString("box_no"))) { JSONObject jsonSub = WQL.getWO("PDA_VIRTUALOUT").addParam("flag", "4").addParam("box_no", whereJson.getString("box_no")).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonSub)){ + throw new BadRequestException("未查询到设木箱号为["+whereJson.getString("box_no")+"]的子卷包装关系信息!"); + } jo.put("net_weight_num", ObjectUtil.isNotEmpty(jsonSub) ? NumberUtil.round(jsonSub.getString("net_weight_num"), 3) : "0"); } else {