forked from BaoKaiWms/202501-Wms-Kate-Wuxi
1. 增加需求看板的导出
2. 修复图纸的显示 3. 兼容料盒号为中文的二维码数据
This commit is contained in:
parent
c853315460
commit
ee307fe9ea
|
|
@ -146,4 +146,13 @@ public class ExcelController {
|
|||
public void exportWorkSummaryExcel(@RequestBody WorkSummaryQuery workSummaryQuery, HttpServletResponse response) throws IOException {
|
||||
exportExcelEasyPoi.exportWorkSummaryExcel(workSummaryQuery, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出看板需求
|
||||
* @param kanbanQuery 请求
|
||||
*/
|
||||
@PostMapping("/exportKanbanExcel")
|
||||
public void exportKanbanExcel(@RequestBody KanbanQuery kanbanQuery, HttpServletResponse response) throws IOException {
|
||||
exportExcelEasyPoi.exportKanbanExcel(kanbanQuery, response);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,4 +23,9 @@ public class KanbanExcelTemplate {
|
|||
*/
|
||||
@Excel(name = "标识编号")
|
||||
private String kanbanId;
|
||||
/**
|
||||
* 看板状态
|
||||
*/
|
||||
@Excel(name = "状态")
|
||||
private String kanbanStatus;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
package com.wms_main.excel.easypoi.service;
|
||||
|
||||
import com.wms_main.excel.easypoi.service.base.IBaseExportExcelEasyPoi;
|
||||
import com.wms_main.model.dto.query.DbsQuery;
|
||||
import com.wms_main.model.dto.query.KittingBomQuery;
|
||||
import com.wms_main.model.dto.query.KittingBomRelationQuery;
|
||||
import com.wms_main.model.dto.query.WorkSummaryQuery;
|
||||
import com.wms_main.model.dto.query.*;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
|
|
@ -37,4 +34,10 @@ public interface IExportExcelEasyPoi extends IBaseExportExcelEasyPoi {
|
|||
* @param workSummaryQuery 查询条件
|
||||
*/
|
||||
void exportWorkSummaryExcel(@RequestBody WorkSummaryQuery workSummaryQuery, HttpServletResponse response) throws IOException;
|
||||
|
||||
/**
|
||||
* 导出看板需求
|
||||
* @param kanbanQuery 查询条件
|
||||
*/
|
||||
void exportKanbanExcel(@RequestBody KanbanQuery kanbanQuery, HttpServletResponse response) throws IOException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,11 +6,8 @@ import com.wms_main.dao.*;
|
|||
import com.wms_main.excel.easypoi.excelTemplate.*;
|
||||
import com.wms_main.excel.easypoi.service.IExportExcelEasyPoi;
|
||||
import com.wms_main.excel.easypoi.service.base.impl.BaseExportExcelEasyPoi;
|
||||
import com.wms_main.model.dto.query.KittingBomQuery;
|
||||
import com.wms_main.model.dto.query.KittingBomRelationQuery;
|
||||
import com.wms_main.model.dto.query.WorkSummaryQuery;
|
||||
import com.wms_main.model.dto.query.*;
|
||||
import com.wms_main.model.po.*;
|
||||
import com.wms_main.model.dto.query.DbsQuery;
|
||||
import com.wms_main.repository.utils.StringUtils;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -29,6 +26,7 @@ public class ExportExcelEasyPoi extends BaseExportExcelEasyPoi implements IExpor
|
|||
private final ITAppSingleProductService tAppSingleProductService;// 单片服务
|
||||
private final ITAppWorkService appWorkService;// 工作服务
|
||||
private final ITAppWorkRecordService appWorkRecordService;// 工作记录服务
|
||||
private final ITAppKanbanService appKanbanService;// 看板服务
|
||||
|
||||
/**
|
||||
* 导出DBS计划实现
|
||||
|
|
@ -252,4 +250,36 @@ public class ExportExcelEasyPoi extends BaseExportExcelEasyPoi implements IExpor
|
|||
throw new IOException("数据类型不在设定值范围内。");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出看板数据 实现
|
||||
* @param kanbanQuery 查询条件
|
||||
* @param response 响应
|
||||
* @throws IOException 异常
|
||||
*/
|
||||
@Override
|
||||
public void exportKanbanExcel(KanbanQuery kanbanQuery, HttpServletResponse response) throws IOException {
|
||||
if (kanbanQuery == null) {
|
||||
throw new IOException("参数不能为空");
|
||||
}
|
||||
// 配对关系列表
|
||||
List<TAppKanban> kanbanList = appKanbanService.list(new LambdaQueryWrapper<TAppKanban>()
|
||||
.like(StringUtils.isNotEmpty(kanbanQuery.getGoodsId()), TAppKanban::getGoodsId, kanbanQuery.getGoodsId())
|
||||
.like(StringUtils.isNotEmpty(kanbanQuery.getKanbanId()), TAppKanban::getKanbanId, kanbanQuery.getKanbanId())
|
||||
.eq(kanbanQuery.getKanbanStatus() != null, TAppKanban::getKanbanStatus, kanbanQuery.getKanbanStatus()));
|
||||
// excel模版列表
|
||||
List<KanbanExcelTemplate> resultList = new ArrayList<>();
|
||||
if (!kanbanList.isEmpty()) {
|
||||
for (TAppKanban kanban : kanbanList) {
|
||||
resultList.add(new KanbanExcelTemplate(
|
||||
kanban.getGoodsId(),
|
||||
kanban.getKanbanId(),
|
||||
kanban.getKanbanStatus() == 1 ? "满" : "空"
|
||||
));
|
||||
}
|
||||
} else {
|
||||
resultList.add(new KanbanExcelTemplate());
|
||||
}
|
||||
doWriteExcel("看板需求", response, resultList, KanbanExcelTemplate.class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -578,7 +578,7 @@ public class ImportExcelEasyPoi extends BaseImportExcelEasyPoi implements IImpor
|
|||
String oldImageName = imageRawData.getImageDetail().substring(startIndex + 1);
|
||||
String fileType = imageRawData.getImageDetail().substring(endIndex);
|
||||
// 文件路径
|
||||
tempImage.setImagePath(fileDir + File.separator);
|
||||
tempImage.setImagePath(fileDir);
|
||||
// 格式化文件名
|
||||
String newImageName = productId + "_" + imageRawData.getBoxNo() + fileType;
|
||||
//将图片文件转为base64图片
|
||||
|
|
@ -590,14 +590,6 @@ public class ImportExcelEasyPoi extends BaseImportExcelEasyPoi implements IImpor
|
|||
} else {
|
||||
tempImage.setImageName(oldImageName);
|
||||
}
|
||||
// 存储图片实例
|
||||
// FileInputStream inputStream = new FileInputStream(renamedFile);
|
||||
// byte[] buffer = new byte[inputStream.available()];
|
||||
// if (inputStream.read(buffer) == -1) {
|
||||
// inputStream.close();
|
||||
// }
|
||||
// StringBuilder imageBase64 = new StringBuilder(Base64.getEncoder().encodeToString(buffer));
|
||||
// tempImage.setImageDetail(new String(imageBase64));
|
||||
tempImage.setImageDetail("");
|
||||
tempImage.setImageType(imageType);
|
||||
tempImage.setFirstImportTime(LocalDateTime.now());
|
||||
|
|
|
|||
|
|
@ -75,4 +75,9 @@ public class BoxSummary {
|
|||
*/
|
||||
@JsonProperty("boxQty")
|
||||
private Integer boxQty;
|
||||
/**
|
||||
* 用于生成图纸二维码
|
||||
*/
|
||||
@JsonProperty("imageId")
|
||||
private String imageId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,11 @@ import lombok.NoArgsConstructor;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ImageQuery extends PageQuery {
|
||||
/**
|
||||
* 图纸id
|
||||
*/
|
||||
@JsonProperty("imageId")
|
||||
private String imageId;
|
||||
/**
|
||||
* 成品号/单片号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,4 +1,108 @@
|
|||
package com.wms_main.model.vo.wms;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 任务记录Vo
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TaskRecordVo {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@JsonProperty("taskId")
|
||||
private String taskId;
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
@JsonProperty("taskType")
|
||||
private Integer taskType;
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
@JsonProperty("taskStatus")
|
||||
private Integer taskStatus;
|
||||
/**
|
||||
* 任务优先级
|
||||
*/
|
||||
@JsonProperty("taskPriority")
|
||||
private Integer taskPriority;
|
||||
/**
|
||||
* 载具号
|
||||
*/
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 起点
|
||||
*/
|
||||
@JsonProperty("origin")
|
||||
private String origin;
|
||||
/**
|
||||
* 终点
|
||||
*/
|
||||
@JsonProperty("destination")
|
||||
private String destination;
|
||||
/**
|
||||
* wcs任务id
|
||||
*/
|
||||
@JsonProperty("wcsTaskId")
|
||||
private String wcsTaskId;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonProperty("createTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@JsonProperty("finishTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime finishTime;
|
||||
/**
|
||||
* 料号
|
||||
*/
|
||||
@JsonProperty("goodsId")
|
||||
private String goodsId;
|
||||
/**
|
||||
* 操作数量
|
||||
*/
|
||||
@JsonProperty("opNum")
|
||||
private Integer opNum;
|
||||
/**
|
||||
* 库存数量
|
||||
*/
|
||||
@JsonProperty("stockNum")
|
||||
private Integer stockNum;
|
||||
/**
|
||||
* 操纵用户
|
||||
*/
|
||||
@JsonProperty("opUser")
|
||||
private String opUser;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@JsonProperty("remark")
|
||||
private String remark;
|
||||
/**
|
||||
* 申请出库的站台
|
||||
*/
|
||||
@JsonProperty("callStand")
|
||||
private String callStand;
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
@JsonProperty("goodsDesc")
|
||||
private String goodsDesc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,94 +1,108 @@
|
|||
package com.wms_main.model.vo.wms;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 任务Vo
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TaskVo {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@TableId(value = "task_id")
|
||||
@JsonProperty("taskId")
|
||||
private String taskId;
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
@TableField(value = "task_type")
|
||||
@JsonProperty("taskType")
|
||||
private Integer taskType;
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
@TableField(value = "task_status")
|
||||
@JsonProperty("taskStatus")
|
||||
private Integer taskStatus;
|
||||
/**
|
||||
* 任务优先级
|
||||
*/
|
||||
@TableField(value = "task_priority")
|
||||
@JsonProperty("taskPriority")
|
||||
private Integer taskPriority;
|
||||
/**
|
||||
* 载具号
|
||||
*/
|
||||
@TableField(value = "vehicle_id")
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 起点
|
||||
*/
|
||||
@TableField(value = "origin")
|
||||
@JsonProperty("origin")
|
||||
private String origin;
|
||||
/**
|
||||
* 终点
|
||||
*/
|
||||
@TableField(value = "destination")
|
||||
@JsonProperty("destination")
|
||||
private String destination;
|
||||
/**
|
||||
* wcs任务id
|
||||
*/
|
||||
@TableField(value = "wcs_task_id")
|
||||
@JsonProperty("wcsTaskId")
|
||||
private String wcsTaskId;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "create_time")
|
||||
@JsonProperty("createTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@TableField(value = "finish_time")
|
||||
@JsonProperty("finishTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime finishTime;
|
||||
/**
|
||||
* 料号
|
||||
*/
|
||||
@TableField(value = "goods_id")
|
||||
@JsonProperty("goodsId")
|
||||
private String goodsId;
|
||||
/**
|
||||
* 操作数量
|
||||
*/
|
||||
@TableField(value = "op_num")
|
||||
@JsonProperty("opNum")
|
||||
private Integer opNum;
|
||||
/**
|
||||
* 库存数量
|
||||
*/
|
||||
@TableField(value = "stock_num")
|
||||
@JsonProperty("stockNum")
|
||||
private Integer stockNum;
|
||||
/**
|
||||
* 操纵用户
|
||||
*/
|
||||
@TableField(value = "op_user")
|
||||
@JsonProperty("opUser")
|
||||
private String opUser;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
@JsonProperty("remark")
|
||||
private String remark;
|
||||
/**
|
||||
* 申请出库的站台
|
||||
*/
|
||||
@TableField(value = "call_stand")
|
||||
@JsonProperty("callStand")
|
||||
private String callStand;
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
@TableField(value = "goods_desc")
|
||||
@JsonProperty("goodsDesc")
|
||||
private String goodsDesc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ public class WcsTaskRecordVo {
|
|||
private LocalDateTime finishTime;
|
||||
/**
|
||||
* 备注
|
||||
*/@JsonProperty("remark")
|
||||
*/
|
||||
@JsonProperty("remark")
|
||||
private String remark;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.wms_main.model.vo.wms;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
|
@ -16,45 +19,64 @@ public class WcsTaskVo {
|
|||
/**
|
||||
* wcs任务id
|
||||
*/
|
||||
@JsonProperty("wcsTaskId")
|
||||
private String wcsTaskId;
|
||||
/**
|
||||
* wcs任务状态
|
||||
*/
|
||||
@JsonProperty("wcsTaskStatus")
|
||||
private Integer wcsTaskStatus;
|
||||
/**
|
||||
* wcs任务类型
|
||||
*/
|
||||
@JsonProperty("wcsTaskType")
|
||||
private Integer wcsTaskType;
|
||||
/**
|
||||
* wcs任务优先级
|
||||
*/
|
||||
@JsonProperty("taskPriority")
|
||||
private Integer taskPriority;
|
||||
/**
|
||||
* 载具号
|
||||
*/
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 起点
|
||||
*/
|
||||
@JsonProperty("origin")
|
||||
private String origin;
|
||||
/**
|
||||
* 终点
|
||||
*/
|
||||
@JsonProperty("destination")
|
||||
private String destination;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonProperty("createTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
@JsonProperty("sendTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime sendTime;
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@JsonProperty("finishTime")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime finishTime;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@JsonProperty("remark")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String remark;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,18 @@ public class FileUtils {
|
|||
public static String getImageDetail(String imagePath, String imageName) {
|
||||
// 获取图片实例
|
||||
String imageDetail = "";
|
||||
if (StringUtils.isEmpty(imagePath) || StringUtils.isEmpty(imageName)) {
|
||||
// 空文件信息,直接返回
|
||||
return imageDetail;
|
||||
}
|
||||
try {
|
||||
// 如果最后一位是/或者\,则去掉
|
||||
String lastStr = imagePath.substring(imagePath.length() - 1);
|
||||
if (lastStr.equals("/") || lastStr.equals("\\")) {
|
||||
imagePath = imagePath.substring(0, imagePath.length() - 1);
|
||||
}
|
||||
//将图片文件转为base64图片
|
||||
File imageFile = new File(imagePath + imageName);
|
||||
File imageFile = new File(imagePath + File.separator + imageName);
|
||||
FileInputStream inputStream = new FileInputStream(imageFile);
|
||||
byte[] buffer = new byte[inputStream.available()];
|
||||
if (inputStream.read(buffer) == -1) {
|
||||
|
|
|
|||
|
|
@ -579,6 +579,13 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
|
|||
if (StringUtils.isNotEmpty(thisStandWork.getSingleProductId())) {
|
||||
queryProductId = thisStandWork.getSingleProductId();
|
||||
}
|
||||
// 查询到对应的图纸信息
|
||||
List<TAppImage> imageList = appImageService.list(new LambdaQueryWrapper<TAppImage>()
|
||||
.eq(TAppImage::getProductId, queryProductId)
|
||||
.eq(TAppImage::getBoxNo, thisStandWork.getBoxNo()));
|
||||
if (imageList != null && !imageList.isEmpty()) {
|
||||
boxSummary.setImageId(imageList.getFirst().getImageId());
|
||||
}
|
||||
if (productType == 1) {
|
||||
// 非服务件---查询非服务件清单
|
||||
List<TAppProduct> productList = appProductService.list(new LambdaQueryWrapper<TAppProduct>()
|
||||
|
|
@ -783,6 +790,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
|
|||
}
|
||||
// 查询图纸
|
||||
List<TAppImage> imageList = appImageService.list(new LambdaQueryWrapper<TAppImage>()
|
||||
.eq(StringUtils.isNotEmpty(imageQuery.getImageId()), TAppImage::getImageId, imageQuery.getImageId())
|
||||
.eq(StringUtils.isNotEmpty(imageQuery.getProductId()), TAppImage::getProductId, imageQuery.getProductId())
|
||||
.eq(StringUtils.isNotEmpty(imageQuery.getBoxNo()), TAppImage::getBoxNo, imageQuery.getBoxNo())
|
||||
.eq(imageQuery.getImageType() != null, TAppImage::getImageType, imageQuery.getImageType()));
|
||||
|
|
@ -980,6 +988,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
|
|||
|
||||
/**
|
||||
* 更新工作信息---实现
|
||||
*
|
||||
* @param updateWorkRequest 更新请求
|
||||
* @return 处理结果
|
||||
*/
|
||||
|
|
@ -1022,6 +1031,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
|
|||
|
||||
/**
|
||||
* 关闭当前工作
|
||||
*
|
||||
* @param closeWorkRequest 关闭请求
|
||||
* @return 处理结果
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user