fix:修复空指针报错问题
This commit is contained in:
@@ -104,13 +104,13 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
.eq("task_type", "010702")
|
.eq("task_type", "010702")
|
||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (count>0){
|
if (count > 0) {
|
||||||
throw new BadRequestException("当前木箱入库任务已存在"+ boxNo);
|
throw new BadRequestException("当前木箱入库任务已存在" + boxNo);
|
||||||
}
|
}
|
||||||
//查询仓库是否存在相同木箱
|
//查询仓库是否存在相同木箱
|
||||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0);
|
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0);
|
||||||
if (stIvtStructattr!=null && stIvtStructattr.size()>0){
|
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||||
throw new BadRequestException("当前木箱已经存在库中"+stIvtStructattr.getJSONObject(0).getString("struct_code"));
|
throw new BadRequestException("当前木箱已经存在库中" + stIvtStructattr.getJSONObject(0).getString("struct_code"));
|
||||||
}
|
}
|
||||||
// 查询木箱信息
|
// 查询木箱信息
|
||||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||||
@@ -201,10 +201,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
throw new BadRequestException("扫描的木箱个数和选择的木箱层数不一致!");
|
throw new BadRequestException("扫描的木箱个数和选择的木箱层数不一致!");
|
||||||
}
|
}
|
||||||
Set<String> collect = Arrays.stream(split).collect(Collectors.toSet());
|
Set<String> collect = Arrays.stream(split).collect(Collectors.toSet());
|
||||||
if (collect.size()!=split.length){
|
if (collect.size() != split.length) {
|
||||||
throw new BadRequestException("扫描的木箱条码不能相同");
|
throw new BadRequestException("扫描的木箱条码不能相同");
|
||||||
}
|
}
|
||||||
if (split.length>3){
|
if (split.length > 3) {
|
||||||
throw new BadRequestException("堆叠木箱最大不能超过3层");
|
throw new BadRequestException("堆叠木箱最大不能超过3层");
|
||||||
}
|
}
|
||||||
// 校验是否有相同木箱号
|
// 校验是否有相同木箱号
|
||||||
@@ -218,8 +218,8 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
//查询仓库是否存在相同木箱
|
//查询仓库是否存在相同木箱
|
||||||
for (String boxSn : split) {
|
for (String boxSn : split) {
|
||||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxSn + "'").getResultJSONArray(0);
|
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxSn + "'").getResultJSONArray(0);
|
||||||
if (stIvtStructattr!=null && stIvtStructattr.size()>0){
|
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||||
throw new BadRequestException("当前木箱已经存在库中"+stIvtStructattr.getJSONObject(0).getString("struct_code"));
|
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 (whereJson.getString("bill_type").equals(IOSEnum.IN_TYPE.code("手工入库"))) {
|
||||||
if (!ifFirst) {
|
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 (whereJson.getString("bill_type").equals(IOSEnum.IN_TYPE.code("生产入库"))) {
|
||||||
if (ifFirst) {
|
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();
|
JSONObject param = new JSONObject();
|
||||||
param.put("pcsn", "");
|
param.put("pcsn", "");
|
||||||
WQLObject.getWQLObject("md_pb_storagevehicleext")
|
WQLObject.getWQLObject("md_pb_storagevehicleext")
|
||||||
.update(param,"pcsn = '"+whereJson.getString("box_no")+"'");
|
.update(param, "pcsn = '" + whereJson.getString("box_no") + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新子卷包装关系创建人
|
// 更新子卷包装关系创建人
|
||||||
JSONObject param2 = new JSONObject();
|
JSONObject param2 = new JSONObject();
|
||||||
param2.put("create_id",SecurityUtils.getCurrentUserId());
|
param2.put("create_id", SecurityUtils.getCurrentUserId());
|
||||||
param2.put("create_name",SecurityUtils.getCurrentNickName());
|
param2.put("create_name", SecurityUtils.getCurrentNickName());
|
||||||
WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||||
.update(param2,"package_box_sn = '"+whereJson.getString("box_no")+"'");
|
.update(param2, "package_box_sn = '" + whereJson.getString("box_no") + "'");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 查询mes木箱信息,插入木箱信息表
|
* 查询mes木箱信息,插入木箱信息表
|
||||||
@@ -423,6 +423,12 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
param.put("height", boxDao.getBox_high());
|
param.put("height", boxDao.getBox_high());
|
||||||
param.put("containerType", boxDao.getVehicle_type());
|
param.put("containerType", boxDao.getVehicle_type());
|
||||||
String type = whereJson.getString("bill_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));
|
param.put("barcode", whereJson.getString("box_no") + "-" + type.substring(3, 4));
|
||||||
|
|
||||||
//根据木箱高度,判断入库仓位的高度
|
//根据木箱高度,判断入库仓位的高度
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ package org.nl.modules.common.utils;/*
|
|||||||
|
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.poi.excel.BigExcelWriter;
|
import cn.hutool.poi.excel.BigExcelWriter;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import org.apache.poi.util.IOUtils;
|
import org.apache.poi.util.IOUtils;
|
||||||
@@ -203,12 +204,15 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
|
|||||||
* 导出excel
|
* 导出excel
|
||||||
*/
|
*/
|
||||||
public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
|
public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
|
||||||
|
ServletOutputStream out = null;
|
||||||
|
BigExcelWriter writer;
|
||||||
|
try {
|
||||||
String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx";
|
String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx";
|
||||||
File file = new File(tempPath);
|
File file = new File(tempPath);
|
||||||
BigExcelWriter writer = ExcelUtil.getBigWriter(file);
|
writer = ExcelUtil.getBigWriter(file);
|
||||||
// 一次性写出内容,使用默认样式,强制输出标题
|
// 一次性写出内容,使用默认样式,强制输出标题
|
||||||
writer.write(list, true);
|
writer.write(list, true);
|
||||||
SXSSFSheet sheet = (SXSSFSheet)writer.getSheet();
|
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
|
||||||
//上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法
|
//上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法
|
||||||
sheet.trackAllColumnsForAutoSizing();
|
sheet.trackAllColumnsForAutoSizing();
|
||||||
//列宽自适应
|
//列宽自适应
|
||||||
@@ -217,13 +221,18 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
|
|||||||
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
|
||||||
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
||||||
response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
|
response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
|
||||||
ServletOutputStream out = response.getOutputStream();
|
out = response.getOutputStream();
|
||||||
// 终止后删除临时文件
|
// 终止后删除临时文件
|
||||||
file.deleteOnExit();
|
file.deleteOnExit();
|
||||||
writer.flush(out, true);
|
writer.flush(out, true);
|
||||||
|
} finally {
|
||||||
//此处记得关闭输出Servlet流
|
//此处记得关闭输出Servlet流
|
||||||
|
if (ObjectUtil.isNotEmpty(out)) {
|
||||||
IoUtil.close(out);
|
IoUtil.close(out);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static String getFileType(String type) {
|
public static String getFileType(String type) {
|
||||||
String documents = "txt doc pdf ppt pps xlsx xls docx";
|
String documents = "txt doc pdf ppt pps xlsx xls docx";
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public class FaultDeviceServiceImpl implements FaultDeviceService {
|
|||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
if (ObjectUtil.isNotEmpty(device_code)) {
|
if (ObjectUtil.isNotEmpty(device_code)) {
|
||||||
JSONObject device_jo = WQLObject.getWQLObject("EM_BI_MonitorDevice").query("device_code = '" + device_code + "'").uniqueResult(0);
|
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("device_code", device_code);
|
||||||
param.put("product_area", device_jo.getString("product_area"));
|
param.put("product_area", device_jo.getString("product_area"));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -192,10 +192,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task")
|
JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task")
|
||||||
.query("task_id = '" + task_id + "'")
|
.query("task_id = '" + task_id + "'")
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(task)){
|
||||||
|
throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!");
|
||||||
|
}
|
||||||
if (StrUtil.isNotEmpty(row.getString("car_no"))) {
|
if (StrUtil.isNotEmpty(row.getString("car_no"))) {
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task")
|
WQLObject.getWQLObject("SCH_BASE_Task")
|
||||||
.update(MapOf.of("car_no",row.getString("car_no")),"task_id = '" + task_id + "'");
|
.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")));
|
AbstractAcsTask abstractTask = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getString("handle_class")));
|
||||||
abstractTask.updateTaskStatus(task,Task_Status_Convers.get(row.getString("task_status")));
|
abstractTask.updateTaskStatus(task,Task_Status_Convers.get(row.getString("task_status")));
|
||||||
} else {
|
} else {
|
||||||
@@ -2089,7 +2096,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||||
// 6-退货入库
|
// 6-退货入库
|
||||||
String materialBarcode = whereJson.getString("material_barcode");
|
String materialBarcode = whereJson.getString("material_barcode");
|
||||||
|
if(StrUtil.isEmpty(materialBarcode)){
|
||||||
|
throw new BadRequestException("当前木箱号不能为空!");
|
||||||
|
}
|
||||||
String[] box_arr = materialBarcode.split("-");
|
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("bill_type", "000" + box_arr[1]);
|
||||||
whereJson.put("box_no", box_arr[0]);
|
whereJson.put("box_no", box_arr[0]);
|
||||||
|
|||||||
@@ -97,6 +97,9 @@ public class VirtualOutServiceImpl implements VirtualOutService {
|
|||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(whereJson.getString("box_no"))) {
|
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);
|
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");
|
jo.put("net_weight_num", ObjectUtil.isNotEmpty(jsonSub) ? NumberUtil.round(jsonSub.getString("net_weight_num"), 3) : "0");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user