|
|
CameraController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.camera;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.camera.vo.CameraPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.camera.vo.CameraRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.camera.vo.CameraSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.camera.CameraDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.TreeVo;
|
|
|
import cn.iocoder.yudao.module.camera.framework.netty.intellBlink.CameraPhotoDecoder;
|
|
|
import cn.iocoder.yudao.module.camera.framework.netty.intellBlink.CameraPhotoInfo;
|
|
|
import cn.iocoder.yudao.module.camera.service.camera.CameraService;
|
|
|
import cn.iocoder.yudao.module.camera.service.street.StreetService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.annotation.security.PermitAll;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 相机")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/camera")
|
|
|
@Validated
|
|
|
public class CameraController {
|
|
|
@Resource
|
|
|
private CameraService cameraService;
|
|
|
@Resource
|
|
|
private StreetService streetService;
|
|
|
@PostMapping("/logisticsResults")
|
|
|
@Operation(summary = "货位状态查看")
|
|
|
@PermitAll
|
|
|
public CommonResult<List<CameraPhotoInfo>> logisticsResults(@Valid @RequestBody CameraPhotoInfo createReqVO) {
|
|
|
CameraPhotoInfo cameraPhotoInfo = CameraPhotoDecoder.cameraPhotoInfoMap.get(createReqVO.getPosition());
|
|
|
if(cameraPhotoInfo != null ){
|
|
|
if(cameraPhotoInfo.getMode()!=null && cameraPhotoInfo.getMode().equals("AGV")){
|
|
|
cameraPhotoInfo.setMode("AGV");
|
|
|
CameraPhotoDecoder.cameraPhotoInfoMap.put(createReqVO.getPosition(),cameraPhotoInfo);
|
|
|
}
|
|
|
}else {
|
|
|
cameraPhotoInfo = createReqVO;
|
|
|
cameraPhotoInfo.setResult(0);
|
|
|
CameraPhotoDecoder.cameraPhotoInfoMap.put(createReqVO.getPosition(),cameraPhotoInfo);
|
|
|
}
|
|
|
List<CameraPhotoInfo> list =new ArrayList<>();
|
|
|
list.add(cameraPhotoInfo);
|
|
|
return success(list);
|
|
|
}
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建相机")
|
|
|
public CommonResult<Integer> createCamera(@Valid @RequestBody CameraSaveReqVO createReqVO) {
|
|
|
return success(cameraService.createCamera(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新相机")
|
|
|
public CommonResult<Boolean> updateCamera(@Valid @RequestBody CameraSaveReqVO updateReqVO) {
|
|
|
cameraService.updateCamera(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除相机")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteCamera(@RequestParam("id") Integer id) {
|
|
|
cameraService.deleteCamera(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得相机")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<CameraRespVO> getCamera(@RequestParam("id") Integer id) {
|
|
|
CameraDO camera = cameraService.getCamera(id);
|
|
|
return success(BeanUtils.toBean(camera, CameraRespVO.class));
|
|
|
}
|
|
|
@PostMapping("/tree")
|
|
|
@Operation(summary = "获得相机树")
|
|
|
@PermitAll
|
|
|
public CommonResult<List<TreeVo>> tree() {
|
|
|
List<CameraDO> camera = cameraService.list();
|
|
|
List<StreetDO> street = streetService.list();
|
|
|
List<TreeVo> cameraTreeVos = new ArrayList<>();
|
|
|
for (StreetDO streetDO : street) {
|
|
|
TreeVo cameraTreeVo = new TreeVo();
|
|
|
cameraTreeVo.setLabel(streetDO.getName());
|
|
|
cameraTreeVo.setChildren(new ArrayList<>());
|
|
|
for (CameraDO cameraDO : camera) {
|
|
|
if (cameraDO.getId().equals(streetDO.getCamera2Id()) || cameraDO.getId().equals(streetDO.getCamera1Id())) {
|
|
|
TreeVo treeVo = new TreeVo();
|
|
|
treeVo.setLabel(cameraDO.getName());
|
|
|
treeVo.setId(cameraDO.getId().toString());
|
|
|
cameraTreeVo.getChildren().add(treeVo);
|
|
|
}
|
|
|
}
|
|
|
cameraTreeVos.add(cameraTreeVo);
|
|
|
}
|
|
|
return success(cameraTreeVos);
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得相机分页")
|
|
|
public CommonResult<PageResult<CameraRespVO>> getCameraPage(@Valid CameraPageReqVO pageReqVO) {
|
|
|
PageResult<CameraDO> pageResult = cameraService.getCameraPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, CameraRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/list")
|
|
|
@Operation(summary = "获得相机list")
|
|
|
public CommonResult<List<CameraRespVO>> getCameraList() {
|
|
|
List<CameraDO> pageResult = cameraService.list();
|
|
|
return success(BeanUtils.toBean(pageResult, CameraRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出相机 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportCameraExcel(@Valid CameraPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<CameraDO> list = cameraService.getCameraPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "相机.xls", "数据", CameraRespVO.class,
|
|
|
BeanUtils.toBean(list, CameraRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
CameraPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.camera.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 相机分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class CameraPageReqVO extends PageParam {
|
|
|
@Schema(description = "名称", example = "赵六")
|
|
|
private String name;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
private Integer type;
|
|
|
@Schema(description = "流媒体ip")
|
|
|
private String rtcServer;
|
|
|
@Schema(description = "流媒体端口")
|
|
|
private Integer rtcServerPort;
|
|
|
@Schema(description = "rtsp端口")
|
|
|
private Integer rtspPort;
|
|
|
@Schema(description = "通道", example = "D1")
|
|
|
private String channel;
|
|
|
@Schema(description = "录像机ip")
|
|
|
private String recorderIp;
|
|
|
}
|
|
|
CameraRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.camera.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - 相机 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class CameraRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31657")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "名称", example = "赵六")
|
|
|
@ExcelProperty("名称")
|
|
|
private String name;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
@ExcelProperty(value = "类型", converter = DictConvert.class)
|
|
|
@DictFormat("camera_type")
|
|
|
private Integer type;
|
|
|
@Schema(description = "ip")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
@ExcelProperty("端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "流媒体ip")
|
|
|
@ExcelProperty("流媒体ip")
|
|
|
private String rtcServer;
|
|
|
@Schema(description = "流媒体端口")
|
|
|
@ExcelProperty("流媒体端口")
|
|
|
private Integer rtcServerPort;
|
|
|
@Schema(description = "rtsp端口")
|
|
|
@ExcelProperty("rtsp端口")
|
|
|
private Integer rtspPort;
|
|
|
@Schema(description = "通道", example = "D1")
|
|
|
@ExcelProperty("通道")
|
|
|
private String channel;
|
|
|
@Schema(description = "录像机ip")
|
|
|
@ExcelProperty("录像机ip")
|
|
|
private String recorderIp;
|
|
|
}
|
|
|
CameraSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.camera.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - 相机新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class CameraSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31657")
|
|
|
private Integer id;
|
|
|
@Schema(description = "名称", example = "赵六")
|
|
|
private String name;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
private Integer type;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "用户名")
|
|
|
private String user;
|
|
|
@Schema(description = "密码")
|
|
|
private String password;
|
|
|
@Schema(description = "流媒体ip")
|
|
|
private String rtcServer;
|
|
|
@Schema(description = "流媒体端口")
|
|
|
private Integer rtcServerPort;
|
|
|
@Schema(description = "rtsp端口")
|
|
|
private Integer rtspPort;
|
|
|
@Schema(description = "通道", example = "D1")
|
|
|
private String channel;
|
|
|
@Schema(description = "录像机ip")
|
|
|
private String recorderIp;
|
|
|
}
|
|
|
CameraIoController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraio;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo.CameraIoPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo.CameraIoRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo.CameraIoSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.camera.CameraDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.cameraio.CameraIoDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.camera.CameraService;
|
|
|
import cn.iocoder.yudao.module.camera.service.cameraio.CameraIoService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 相机预置点位")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/camera-io")
|
|
|
@Validated
|
|
|
public class CameraIoController {
|
|
|
@Resource
|
|
|
private CameraIoService cameraIoService;
|
|
|
@Resource
|
|
|
private CameraService cameraService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建相机预置点位")
|
|
|
public CommonResult<Integer> createCameraIo(@Valid @RequestBody CameraIoSaveReqVO createReqVO) {
|
|
|
List<CameraIoDO> list = cameraIoService.list(new QueryWrapper<CameraIoDO>()
|
|
|
.eq("camera_id", createReqVO.getCameraId()));
|
|
|
Integer ptzId = list.stream().map(CameraIoDO::getPtzId).max(Integer::compareTo).orElse(0)+1;
|
|
|
createReqVO.setPtzId(ptzId);
|
|
|
int i= cameraIoService.createCameraIo(createReqVO);
|
|
|
CameraDO cameraIoDO = cameraService.getById(createReqVO.getCameraId());
|
|
|
return success(i);
|
|
|
}
|
|
|
@PostMapping("/callPtz")
|
|
|
@Operation(summary = "调用预置点位")
|
|
|
public CommonResult<Integer> callPtz(@Valid @RequestBody CameraIoSaveReqVO createReqVO) {
|
|
|
CameraDO cameraIoDO = cameraService.getById(createReqVO.getCameraId());
|
|
|
return success(cameraIoService.createCameraIo(createReqVO));
|
|
|
}
|
|
|
@PostMapping("/overwritePtz")
|
|
|
@Operation(summary = "创建或覆盖相机预置点位")
|
|
|
public CommonResult<Integer> overwritePtz(@Valid @RequestBody CameraIoSaveReqVO createReqVO) {
|
|
|
CameraDO cameraIoDO = cameraService.getById(createReqVO.getCameraId());
|
|
|
return success(cameraIoService.createCameraIo(createReqVO));
|
|
|
}
|
|
|
@PostMapping("/list")
|
|
|
@Operation(summary = "获得相机预置点位分页")
|
|
|
public CommonResult<List<CameraIoRespVO>> list(@Valid @RequestBody CameraIoPageReqVO pageReqVO) {
|
|
|
List<CameraIoDO> pageResult = cameraIoService.list(new QueryWrapper<CameraIoDO>()
|
|
|
.eq("camera_id", pageReqVO.getCameraId())
|
|
|
.orderByAsc("id"));
|
|
|
return success(BeanUtils.toBean(pageResult, CameraIoRespVO.class));
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除相机预置点位")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteCameraIo(@RequestParam("id") Integer id) {
|
|
|
cameraIoService.deleteCameraIo(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新相机预置点位")
|
|
|
public CommonResult<Boolean> updateCameraIo(@Valid @RequestBody CameraIoSaveReqVO updateReqVO) {
|
|
|
cameraIoService.updateCameraIo(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得相机预置点位")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<CameraIoRespVO> getCameraIo(@RequestParam("id") Integer id) {
|
|
|
CameraIoDO cameraIo = cameraIoService.getCameraIo(id);
|
|
|
return success(BeanUtils.toBean(cameraIo, CameraIoRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得相机预置点位分页")
|
|
|
public CommonResult<PageResult<CameraIoRespVO>> getCameraIoPage(@Valid CameraIoPageReqVO pageReqVO) {
|
|
|
PageResult<CameraIoDO> pageResult = cameraIoService.getCameraIoPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, CameraIoRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出相机预置点位 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportCameraIoExcel(@Valid CameraIoPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<CameraIoDO> list = cameraIoService.getCameraIoPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "相机预置点位.xls", "数据", CameraIoRespVO.class,
|
|
|
BeanUtils.toBean(list, CameraIoRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
CameraIoPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 相机预置点位分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class CameraIoPageReqVO extends PageParam {
|
|
|
@Schema(description = "预置点名", example = "张三")
|
|
|
private String name;
|
|
|
@Schema(description = "预置点code")
|
|
|
private String code;
|
|
|
@Schema(description = "相机id", example = "11423")
|
|
|
private Integer cameraId;
|
|
|
@Schema(description = "预置点id", example = "25023")
|
|
|
private Integer ptzId;
|
|
|
@Schema(description = "位置")
|
|
|
private String position;
|
|
|
@Schema(description = "对焦")
|
|
|
private String focusing;
|
|
|
@Schema(description = "光圈")
|
|
|
private String aperture;
|
|
|
@Schema(description = "倍数")
|
|
|
private String multiple;
|
|
|
}
|
|
|
CameraIoRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
@Schema(description = "管理后台 - 相机预置点位 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class CameraIoRespVO {
|
|
|
@Schema(description = "预置点id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10596")
|
|
|
@ExcelProperty("预置点id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "预置点名", example = "张三")
|
|
|
@ExcelProperty("预置点名")
|
|
|
private String name;
|
|
|
@Schema(description = "预置点code")
|
|
|
@ExcelProperty("预置点code")
|
|
|
private String code;
|
|
|
@Schema(description = "相机id", example = "11423")
|
|
|
@ExcelProperty("相机id")
|
|
|
private Integer cameraId;
|
|
|
@Schema(description = "预置点id", example = "25023")
|
|
|
@ExcelProperty("预置点id")
|
|
|
private Integer ptzId;
|
|
|
@Schema(description = "位置")
|
|
|
@ExcelProperty("位置")
|
|
|
private String position;
|
|
|
@Schema(description = "对焦")
|
|
|
@ExcelProperty("对焦")
|
|
|
private String focusing;
|
|
|
@Schema(description = "光圈")
|
|
|
@ExcelProperty("光圈")
|
|
|
private String aperture;
|
|
|
@Schema(description = "倍数")
|
|
|
@ExcelProperty("倍数")
|
|
|
private String multiple;
|
|
|
}
|
|
|
CameraIoSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraio.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - 相机预置点位新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class CameraIoSaveReqVO {
|
|
|
@Schema(description = "预置点id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10596")
|
|
|
private Integer id;
|
|
|
@Schema(description = "预置点名", example = "张三")
|
|
|
private String name;
|
|
|
@Schema(description = "预置点code")
|
|
|
private String code;
|
|
|
@Schema(description = "相机id", example = "11423")
|
|
|
private Integer cameraId;
|
|
|
@Schema(description = "预置点id", example = "25023")
|
|
|
private Integer ptzId;
|
|
|
@Schema(description = "位置")
|
|
|
private String position;
|
|
|
@Schema(description = "对焦")
|
|
|
private String focusing;
|
|
|
@Schema(description = "光圈")
|
|
|
private String aperture;
|
|
|
@Schema(description = "倍数")
|
|
|
private String multiple;
|
|
|
}
|
|
|
CameraIoConfigController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo.CameraIoConfigPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo.CameraIoConfigRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo.CameraIoConfigSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.cameraioconfig.CameraIoConfigDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.cameraioconfig.CameraIoConfigService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 预置点位配置")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/camera-io-config")
|
|
|
@Validated
|
|
|
public class CameraIoConfigController {
|
|
|
@Resource
|
|
|
private CameraIoConfigService cameraIoConfigService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建预置点位配置")
|
|
|
public CommonResult<Integer> createCameraIoConfig(@Valid @RequestBody CameraIoConfigSaveReqVO createReqVO) {
|
|
|
return success(cameraIoConfigService.createCameraIoConfig(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新预置点位配置")
|
|
|
public CommonResult<Boolean> updateCameraIoConfig(@Valid @RequestBody CameraIoConfigSaveReqVO updateReqVO) {
|
|
|
cameraIoConfigService.updateCameraIoConfig(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除预置点位配置")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteCameraIoConfig(@RequestParam("id") Integer id) {
|
|
|
cameraIoConfigService.deleteCameraIoConfig(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得预置点位配置")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<CameraIoConfigRespVO> getCameraIoConfig(@RequestParam("id") Integer id) {
|
|
|
CameraIoConfigDO cameraIoConfig = cameraIoConfigService.getCameraIoConfig(id);
|
|
|
return success(BeanUtils.toBean(cameraIoConfig, CameraIoConfigRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得预置点位配置分页")
|
|
|
public CommonResult<PageResult<CameraIoConfigRespVO>> getCameraIoConfigPage(@Valid CameraIoConfigPageReqVO pageReqVO) {
|
|
|
PageResult<CameraIoConfigDO> pageResult = cameraIoConfigService.getCameraIoConfigPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, CameraIoConfigRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出预置点位配置 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportCameraIoConfigExcel(@Valid CameraIoConfigPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<CameraIoConfigDO> list = cameraIoConfigService.getCameraIoConfigPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "预置点位配置.xls", "数据", CameraIoConfigRespVO.class,
|
|
|
BeanUtils.toBean(list, CameraIoConfigRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
CameraIoConfigPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 预置点位配置分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class CameraIoConfigPageReqVO extends PageParam {
|
|
|
@Schema(description = "预置点位code")
|
|
|
private String code;
|
|
|
@Schema(description = "预置点位名称", example = "赵六")
|
|
|
private String name;
|
|
|
}
|
|
|
CameraIoConfigRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
@Schema(description = "管理后台 - 预置点位配置 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class CameraIoConfigRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6144")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "预置点位code")
|
|
|
@ExcelProperty("预置点位code")
|
|
|
private String code;
|
|
|
@Schema(description = "预置点位名称", example = "赵六")
|
|
|
@ExcelProperty("预置点位名称")
|
|
|
private String name;
|
|
|
}
|
|
|
CameraIoConfigSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.cameraioconfig.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - 预置点位配置新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class CameraIoConfigSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6144")
|
|
|
private Integer id;
|
|
|
@Schema(description = "预置点位code")
|
|
|
private String code;
|
|
|
@Schema(description = "预置点位名称", example = "赵六")
|
|
|
private String name;
|
|
|
}
|
|
|
CheckLogController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.checklog;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.checklog.vo.CheckLogPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.checklog.vo.CheckLogRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.checklog.vo.CheckLogSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.checklog.CheckLogDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.checklog.CheckLogService;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 盘点")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/check-log")
|
|
|
@Validated
|
|
|
public class CheckLogController {
|
|
|
@Resource
|
|
|
private CheckLogService checkLogService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建盘点")
|
|
|
public CommonResult<Integer> createCheckLog(@Valid @RequestBody CheckLogSaveReqVO createReqVO) {
|
|
|
return success(checkLogService.createCheckLog(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新盘点")
|
|
|
public CommonResult<Boolean> updateCheckLog(@Valid @RequestBody CheckLogSaveReqVO updateReqVO) {
|
|
|
checkLogService.updateCheckLog(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除盘点")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteCheckLog(@RequestParam("id") Integer id) {
|
|
|
checkLogService.deleteCheckLog(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得盘点")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<CheckLogRespVO> getCheckLog(@RequestParam("id") Integer id) {
|
|
|
CheckLogDO checkLog = checkLogService.getCheckLog(id);
|
|
|
return success(BeanUtils.toBean(checkLog, CheckLogRespVO.class));
|
|
|
}
|
|
|
@Resource
|
|
|
private DictDataService dictDataService;
|
|
|
@PostMapping("/getColumns")
|
|
|
@Operation(summary = "获得盘点类型")
|
|
|
public CommonResult<List<DictDataDO>> getColumns() {
|
|
|
Map<String, DictDataDO> dictDataList = dictDataService.getDictDataList("scan_conf");
|
|
|
List<DictDataDO> dictDataDOS = dictDataList.values().stream().filter(dictDataDO -> !dictDataDO.getValue().equals("0")).toList();
|
|
|
return success(dictDataDOS);
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得盘点分页")
|
|
|
public CommonResult<PageResult<CheckLogDO>> getCheckLogPage(@Valid CheckLogPageReqVO pageReqVO) {
|
|
|
PageResult<CheckLogDO> pageResult = checkLogService.getCheckLogPage(pageReqVO);
|
|
|
return success(pageResult);
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出盘点 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportCheckLogExcel(@Valid CheckLogPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<CheckLogDO> list = checkLogService.getCheckLogPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "盘点.xls", "数据", CheckLogRespVO.class,
|
|
|
BeanUtils.toBean(list, CheckLogRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
CheckLogPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.checklog.vo;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import lombok.EqualsAndHashCode;
|
|
|
import lombok.ToString;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - 盘点分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class CheckLogPageReqVO extends PageParam {
|
|
|
@Schema(description = "盘点批次号", example = "001_11")
|
|
|
private String lotnum;
|
|
|
@Schema(description = "层")
|
|
|
private Short row;
|
|
|
@Schema(description = "列")
|
|
|
private Short column;
|
|
|
@Schema(description = "巷道id", example = "16940")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "修改时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] exportTime;
|
|
|
@Schema(description = "taskid", example = "24302")
|
|
|
private String taskId;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "1:浅侧 2:深测")
|
|
|
private Integer side;
|
|
|
@Schema(description = "1:盘点异常 2:盘点正确 3:人工核对正确", example = "1")
|
|
|
private Integer status;
|
|
|
@Schema(description = "货位号")
|
|
|
private String storagCode;
|
|
|
}
|
|
|
CheckLogRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.checklog.vo;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - 盘点 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class CheckLogRespVO {
|
|
|
@Schema(description = "id")
|
|
|
@ExcelProperty("id")
|
|
|
private LocalDateTime id;
|
|
|
@Schema(description = "盘点批次号", example = "001_11")
|
|
|
@ExcelProperty("盘点批次号")
|
|
|
private String lotnum;
|
|
|
@Schema(description = "层")
|
|
|
@ExcelProperty("层")
|
|
|
private Short row;
|
|
|
@Schema(description = "列")
|
|
|
@ExcelProperty("列")
|
|
|
private Short column;
|
|
|
@Schema(description = "托盘码")
|
|
|
@ExcelProperty("托盘码")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "操作前图片")
|
|
|
@ExcelProperty("操作前图片")
|
|
|
private String pic;
|
|
|
@Schema(description = "巷道id", example = "16940")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "巷道名", example = "16940")
|
|
|
@ExcelProperty("巷道名")
|
|
|
private String streetName;
|
|
|
@Schema(description = "修改时间")
|
|
|
@ExcelProperty("修改时间")
|
|
|
private LocalDateTime exportTime;
|
|
|
@Schema(description = "taskid", example = "24302")
|
|
|
@ExcelProperty("taskid")
|
|
|
private String taskId;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
@ExcelProperty("1:左 2:右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "1:浅侧 2:深测")
|
|
|
@ExcelProperty("1:浅侧 2:深测")
|
|
|
private Integer side;
|
|
|
@Schema(description = "1:盘点异常 2:盘点正确 3:人工核对正确", example = "1")
|
|
|
@ExcelProperty(value = "1:盘点异常 2:盘点正确 3:人工核对正确", converter = DictConvert.class)
|
|
|
@DictFormat("check_status")
|
|
|
private Integer status;
|
|
|
@Schema(description = "货位号")
|
|
|
@ExcelProperty("货位号")
|
|
|
private String storagCode;
|
|
|
}
|
|
|
CheckLogSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.checklog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
@Schema(description = "管理后台 - 盘点新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class CheckLogSaveReqVO {
|
|
|
}
|
|
|
LightSourceController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.lightsource;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourcePageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo.LightSourceSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.lightsource.LightSourceService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 光源")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/light-source")
|
|
|
@Validated
|
|
|
public class LightSourceController {
|
|
|
@Resource
|
|
|
private LightSourceService lightSourceService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建光源")
|
|
|
public CommonResult<Integer> createLightSource(@Valid @RequestBody LightSourceSaveReqVO createReqVO) {
|
|
|
return success(lightSourceService.createLightSource(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新光源")
|
|
|
public CommonResult<Boolean> updateLightSource(@Valid @RequestBody LightSourceSaveReqVO updateReqVO) {
|
|
|
lightSourceService.updateLightSource(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除光源")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteLightSource(@RequestParam("id") Integer id) {
|
|
|
lightSourceService.deleteLightSource(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得光源")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<LightSourceRespVO> getLightSource(@RequestParam("id") Integer id) {
|
|
|
LightSourceDO lightSource = lightSourceService.getLightSource(id);
|
|
|
return success(BeanUtils.toBean(lightSource, LightSourceRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得光源分页")
|
|
|
public CommonResult<PageResult<LightSourceRespVO>> getLightSourcePage(@Valid LightSourcePageReqVO pageReqVO) {
|
|
|
PageResult<LightSourceDO> pageResult = lightSourceService.getLightSourcePage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, LightSourceRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出光源 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportLightSourceExcel(@Valid LightSourcePageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<LightSourceDO> list = lightSourceService.getLightSourcePage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "光源.xls", "数据", LightSourceRespVO.class,
|
|
|
BeanUtils.toBean(list, LightSourceRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
LightSourcePageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 光源分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class LightSourcePageReqVO extends PageParam {
|
|
|
@Schema(description = "巷道id", example = "641")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "ip", example = "192.168.1.1")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口", example = "2000")
|
|
|
private String port;
|
|
|
@Schema(description = "方向 ", example = "1")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
private Integer type;
|
|
|
}
|
|
|
LightSourceRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - 光源 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class LightSourceRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22832")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", requiredMode = Schema.RequiredMode.REQUIRED, example = "641")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "ip", example = "192.168.1.1")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口", example = "2000")
|
|
|
@ExcelProperty("端口")
|
|
|
private String port;
|
|
|
@Schema(description = "方向 ", example = "1")
|
|
|
@ExcelProperty(value = "方向 ", converter = DictConvert.class)
|
|
|
@DictFormat("direction")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "信息")
|
|
|
@ExcelProperty("信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
@ExcelProperty(value = "类型", converter = DictConvert.class)
|
|
|
@DictFormat("light_type")
|
|
|
private Integer type;
|
|
|
}
|
|
|
LightSourceSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.lightsource.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import jakarta.validation.constraints.*;
|
|
|
@Schema(description = "管理后台 - 光源新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class LightSourceSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22832")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", requiredMode = Schema.RequiredMode.REQUIRED, example = "641")
|
|
|
@NotNull(message = "巷道id不能为空")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "ip", example = "192.168.1.1")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口", example = "2000")
|
|
|
private String port;
|
|
|
@Schema(description = "方向 ", example = "1")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型", example = "2")
|
|
|
private Integer type;
|
|
|
}
|
|
|
OrderController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.order;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.order.vo.OrderPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.order.vo.OrderRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.order.vo.OrderSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.order.vo.OrderStatistics;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.order.OrderDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.echarts.EChartsOption;
|
|
|
import cn.iocoder.yudao.module.camera.service.checklog.CheckLogService;
|
|
|
import cn.iocoder.yudao.module.camera.service.order.OrderService;
|
|
|
import cn.iocoder.yudao.module.camera.service.stock.StockService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 随行记录")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/order")
|
|
|
@Validated
|
|
|
public class OrderController {
|
|
|
@Resource
|
|
|
private OrderService orderService;
|
|
|
@Resource
|
|
|
private CheckLogService checkLogService;
|
|
|
@Resource
|
|
|
private StockService stockService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建随行记录")
|
|
|
public CommonResult<Long> createOrder(@Valid @RequestBody OrderSaveReqVO createReqVO) {
|
|
|
return success(orderService.createOrder(createReqVO));
|
|
|
}
|
|
|
@PostMapping("/statistics")
|
|
|
@Operation(summary = "首页个数统计")
|
|
|
public CommonResult<OrderStatistics> statistics() {
|
|
|
LocalDate today = LocalDate.now();
|
|
|
LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
|
|
|
LocalDateTime firstDayOfMonthStart = firstDayOfMonth.atStartOfDay();
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
String firstDayOfMonthStr = firstDayOfMonthStart.format(formatter);
|
|
|
OrderStatistics orderStatistics = new OrderStatistics();
|
|
|
orderStatistics.setOrderCount(orderService.count(null,null));
|
|
|
orderStatistics.setOrderMonthCount(orderService.count(firstDayOfMonthStr,null));
|
|
|
orderStatistics.setCheckLogCount(checkLogService.count(null,null));
|
|
|
orderStatistics.setCheckLogMonthCount(checkLogService.count(firstDayOfMonthStr,null));
|
|
|
return success(orderStatistics);
|
|
|
}
|
|
|
@PostMapping("/laneInventoryStatistics")
|
|
|
@Operation(summary = "首页巷道随行统计")
|
|
|
public CommonResult<EChartsOption> laneInventoryStatistics() {
|
|
|
EChartsOption bars = orderService.laneInventoryStatistics();
|
|
|
return success(bars);
|
|
|
}
|
|
|
@PostMapping("/laneInventoryLine")
|
|
|
@Operation(summary = "首页巷道随行折线图")
|
|
|
public CommonResult<EChartsOption> laneInventoryLine() {
|
|
|
EChartsOption bars = orderService.laneInventoryLine();
|
|
|
return success(bars);
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新随行记录")
|
|
|
public CommonResult<Boolean> updateOrder(@Valid @RequestBody OrderSaveReqVO updateReqVO) {
|
|
|
orderService.updateOrder(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除随行记录")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteOrder(@RequestParam("id") Long id) {
|
|
|
orderService.deleteOrder(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得随行记录")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<OrderRespVO> getOrder(@RequestParam("id") Long id) {
|
|
|
OrderDO order = orderService.getOrder(id);
|
|
|
return success(BeanUtils.toBean(order, OrderRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得随行记录分页")
|
|
|
public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) {
|
|
|
PageResult<OrderDO> pageResult = orderService.getOrderPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, OrderRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出随行记录 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportOrderExcel(@Valid OrderPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<OrderDO> list = orderService.getOrderPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "随行记录.xls", "数据", OrderRespVO.class,
|
|
|
BeanUtils.toBean(list, OrderRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
OrderPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.order.vo;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import lombok.EqualsAndHashCode;
|
|
|
import lombok.ToString;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - 随行记录分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class OrderPageReqVO extends PageParam {
|
|
|
@Schema(description = "开始时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] startTime;
|
|
|
@Schema(description = "结束时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] endTime;
|
|
|
@Schema(description = "巷道id")
|
|
|
private String srmNumber;
|
|
|
@Schema(description = "随行工单号", example = "26503")
|
|
|
private String taskId;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
private Integer fromDirection;
|
|
|
@Schema(description = "出列")
|
|
|
private Integer fromColumn;
|
|
|
@Schema(description = "出层")
|
|
|
private Integer fromRow;
|
|
|
@Schema(description = "出库内外")
|
|
|
private Integer fromSeparation;
|
|
|
@Schema(description = "图片地址")
|
|
|
private String pics;
|
|
|
@Schema(description = "wms货物code")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "子标签")
|
|
|
private String storageCode;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
private Integer toDirection;
|
|
|
@Schema(description = "入列")
|
|
|
private Integer toColumn;
|
|
|
@Schema(description = "出库内外")
|
|
|
private Integer toSeparation;
|
|
|
@Schema(description = "入层")
|
|
|
private Integer toRow;
|
|
|
}
|
|
|
OrderRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.order.vo;
|
|
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - 随行记录 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class OrderRespVO {
|
|
|
@Schema(description = "id")
|
|
|
@ExcelProperty("id")
|
|
|
private LocalDateTime id;
|
|
|
@Schema(description = "开始时间")
|
|
|
@ExcelProperty("开始时间")
|
|
|
private LocalDateTime startTime;
|
|
|
@Schema(description = "巷道id")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private String srmNumber;
|
|
|
@Schema(description = "随行工单号", example = "26503")
|
|
|
@ExcelProperty("随行工单号")
|
|
|
private String taskId;
|
|
|
@Schema(description = "1:库内 2:库外")
|
|
|
@ExcelProperty("1:库内 2:库外")
|
|
|
private Integer fromSide;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
@ExcelProperty("1:左 2:右")
|
|
|
private Integer fromDirection;
|
|
|
@Schema(description = "出列")
|
|
|
@ExcelProperty("出列")
|
|
|
private Integer fromColumn;
|
|
|
@Schema(description = "出层")
|
|
|
@ExcelProperty("出层")
|
|
|
private Integer fromRow;
|
|
|
@Schema(description = "出库内外")
|
|
|
@ExcelProperty("出库内外")
|
|
|
private Integer fromSeparation;
|
|
|
@Schema(description = "图片地址")
|
|
|
@ExcelProperty("图片地址")
|
|
|
private String pics;
|
|
|
@Schema(description = "wms货物code")
|
|
|
@ExcelProperty("wms货物code")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "子标签")
|
|
|
@ExcelProperty("子标签")
|
|
|
private String storageCode;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
@ExcelProperty("1:左 2:右")
|
|
|
private Integer toDirection;
|
|
|
@Schema(description = "入列")
|
|
|
@ExcelProperty("入列")
|
|
|
private Integer toColumn;
|
|
|
@Schema(description = "视频1")
|
|
|
private String videoPath2 ;
|
|
|
@Schema(description = "视频1")
|
|
|
private String videoPath1 ;
|
|
|
@Schema(description = "出库内外")
|
|
|
@ExcelProperty("出库内外")
|
|
|
private Integer toSeparation;
|
|
|
@Schema(description = "入层")
|
|
|
@ExcelProperty("入层")
|
|
|
private Integer toRow;
|
|
|
}
|
|
|
OrderSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.order.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
@Schema(description = "管理后台 - 随行记录新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class OrderSaveReqVO {
|
|
|
@Schema(description = "巷道id")
|
|
|
private String srmNumber;
|
|
|
@Schema(description = "随行工单号", example = "26503")
|
|
|
private String taskId;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
private Integer fromDirection;
|
|
|
@Schema(description = "出列")
|
|
|
private Integer fromColumn;
|
|
|
@Schema(description = "出层")
|
|
|
private Integer fromRow;
|
|
|
@Schema(description = "出库内外")
|
|
|
private Integer fromSeparation;
|
|
|
@Schema(description = "图片地址")
|
|
|
private String pics;
|
|
|
@Schema(description = "wms货物code")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "子标签")
|
|
|
private String storageCode;
|
|
|
@Schema(description = "1:左 2:右")
|
|
|
private Integer toDirection;
|
|
|
@Schema(description = "入列")
|
|
|
private Integer toColumn;
|
|
|
@Schema(description = "出库内外")
|
|
|
private Integer toSeparation;
|
|
|
@Schema(description = "入层")
|
|
|
private Integer toRow;
|
|
|
}
|
|
|
OrderStatistics.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.order.vo;
|
|
|
import lombok.Data;
|
|
|
@Data
|
|
|
public class OrderStatistics {
|
|
|
private Long orderCount;
|
|
|
private Long checkLogCount;
|
|
|
private Long checkLogMonthCount;
|
|
|
private Long orderMonthCount;
|
|
|
}
|
|
|
RfidController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfid;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfid.vo.RfidPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfid.vo.RfidRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfid.vo.RfidSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.rfid.RfidService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - RFID")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/rfid")
|
|
|
@Validated
|
|
|
public class RfidController {
|
|
|
@Resource
|
|
|
private RfidService rfidService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建RFID")
|
|
|
public CommonResult<Integer> createRfid(@Valid @RequestBody RfidSaveReqVO createReqVO) {
|
|
|
return success(rfidService.createRfid(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新RFID")
|
|
|
public CommonResult<Boolean> updateRfid(@Valid @RequestBody RfidSaveReqVO updateReqVO) {
|
|
|
rfidService.updateRfid(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除RFID")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteRfid(@RequestParam("id") Integer id) {
|
|
|
rfidService.deleteRfid(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得RFID")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<RfidRespVO> getRfid(@RequestParam("id") Integer id) {
|
|
|
RfidDO rfid = rfidService.getRfid(id);
|
|
|
return success(BeanUtils.toBean(rfid, RfidRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得RFID分页")
|
|
|
public CommonResult<PageResult<RfidRespVO>> getRfidPage(@Valid RfidPageReqVO pageReqVO) {
|
|
|
PageResult<RfidDO> pageResult = rfidService.getRfidPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, RfidRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出RFID Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportRfidExcel(@Valid RfidPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<RfidDO> list = rfidService.getRfidPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "RFID.xls", "数据", RfidRespVO.class,
|
|
|
BeanUtils.toBean(list, RfidRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
RfidPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfid.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - RFID分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class RfidPageReqVO extends PageParam {
|
|
|
@Schema(description = "巷道id", example = "8923")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "方向")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
RfidRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfid.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - RFID Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class RfidRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3186")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", example = "8923")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "方向")
|
|
|
@ExcelProperty(value = "方向", converter = DictConvert.class)
|
|
|
@DictFormat("direction")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
@ExcelProperty("端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
RfidSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfid.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - RFID新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class RfidSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3186")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", example = "8923")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "方向")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
RfidLiveController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlive;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import jakarta.validation.*;
|
|
|
import jakarta.servlet.http.*;
|
|
|
import java.util.*;
|
|
|
import java.io.IOException;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfidlive.vo.*;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.rfidlive.RfidLiveDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.rfidlive.RfidLiveService;
|
|
|
@Tag(name = "管理后台 - rfid当前记录情况")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/rfid-live")
|
|
|
@Validated
|
|
|
public class RfidLiveController {
|
|
|
@Resource
|
|
|
private RfidLiveService rfidLiveService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建rfid当前记录情况")
|
|
|
public CommonResult<Integer> createRfidLive(@Valid @RequestBody RfidLiveSaveReqVO createReqVO) {
|
|
|
return success(rfidLiveService.createRfidLive(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新rfid当前记录情况")
|
|
|
public CommonResult<Boolean> updateRfidLive(@Valid @RequestBody RfidLiveSaveReqVO updateReqVO) {
|
|
|
rfidLiveService.updateRfidLive(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除rfid当前记录情况")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteRfidLive(@RequestParam("id") Integer id) {
|
|
|
rfidLiveService.deleteRfidLive(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得rfid当前记录情况")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<RfidLiveRespVO> getRfidLive(@RequestParam("id") Integer id) {
|
|
|
RfidLiveDO rfidLive = rfidLiveService.getRfidLive(id);
|
|
|
return success(BeanUtils.toBean(rfidLive, RfidLiveRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得rfid当前记录情况分页")
|
|
|
public CommonResult<PageResult<RfidLiveRespVO>> getRfidLivePage(@Valid RfidLivePageReqVO pageReqVO) {
|
|
|
PageResult<RfidLiveDO> pageResult = rfidLiveService.getRfidLivePage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, RfidLiveRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出rfid当前记录情况 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportRfidLiveExcel(@Valid RfidLivePageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<RfidLiveDO> list = rfidLiveService.getRfidLivePage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "rfid当前记录情况.xls", "数据", RfidLiveRespVO.class,
|
|
|
BeanUtils.toBean(list, RfidLiveRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
RfidLivePageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlive.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - rfid当前记录情况分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class RfidLivePageReqVO extends PageParam {
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "16455")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "深浅")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "入库时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
@Schema(description = "rfid ", example = "5970")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "随行id", example = "13774")
|
|
|
private Integer orderId;
|
|
|
@Schema(description = "任务id", example = "3172")
|
|
|
private Integer taskId;
|
|
|
}
|
|
|
RfidLiveRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlive.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import java.time.LocalDateTime;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - rfid当前记录情况 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class RfidLiveRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "288")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
@ExcelProperty("wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "16455")
|
|
|
@ExcelProperty("巷道")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
@ExcelProperty(value = "左右", converter = DictConvert.class)
|
|
|
@DictFormat("direction")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "深浅")
|
|
|
@ExcelProperty(value = "深浅", converter = DictConvert.class)
|
|
|
@DictFormat("side")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
@ExcelProperty("行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
@ExcelProperty("列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
@ExcelProperty("rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "入库时间")
|
|
|
@ExcelProperty("入库时间")
|
|
|
private LocalDateTime createTime;
|
|
|
@Schema(description = "rfid ", example = "5970")
|
|
|
@ExcelProperty("rfid ")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "随行id", example = "13774")
|
|
|
@ExcelProperty("随行id")
|
|
|
private Integer orderId;
|
|
|
@Schema(description = "任务id", example = "3172")
|
|
|
@ExcelProperty("任务id")
|
|
|
private Integer taskId;
|
|
|
}
|
|
|
RfidLiveSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlive.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - rfid当前记录情况新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class RfidLiveSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "288")
|
|
|
private Integer id;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "16455")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "深浅")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "rfid ", example = "5970")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "随行id", example = "13774")
|
|
|
private Integer orderId;
|
|
|
@Schema(description = "任务id", example = "3172")
|
|
|
private Integer taskId;
|
|
|
}
|
|
|
RfidLogController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlog;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo.RfidLogPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo.RfidLogRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo.RfidLogSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.rfidlog.RfidLogDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.rfidlog.RfidLogService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - rfid历史记录情况")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/rfid-log")
|
|
|
@Validated
|
|
|
public class RfidLogController {
|
|
|
@Resource
|
|
|
private RfidLogService rfidLogService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建rfid历史记录情况")
|
|
|
public CommonResult<Integer> createRfidLog(@Valid @RequestBody RfidLogSaveReqVO createReqVO) {
|
|
|
return success(rfidLogService.createRfidLog(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新rfid历史记录情况")
|
|
|
public CommonResult<Boolean> updateRfidLog(@Valid @RequestBody RfidLogSaveReqVO updateReqVO) {
|
|
|
rfidLogService.updateRfidLog(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除rfid历史记录情况")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteRfidLog(@RequestParam("id") Integer id) {
|
|
|
rfidLogService.deleteRfidLog(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得rfid历史记录情况")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<RfidLogRespVO> getRfidLog(@RequestParam("id") Integer id) {
|
|
|
RfidLogDO rfidLog = rfidLogService.getRfidLog(id);
|
|
|
return success(BeanUtils.toBean(rfidLog, RfidLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得rfid历史记录情况分页")
|
|
|
public CommonResult<PageResult<RfidLogRespVO>> getRfidLogPage(@Valid RfidLogPageReqVO pageReqVO) {
|
|
|
PageResult<RfidLogDO> pageResult = rfidLogService.getRfidLogPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, RfidLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出rfid历史记录情况 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportRfidLogExcel(@Valid RfidLogPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<RfidLogDO> list = rfidLogService.getRfidLogPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "rfid历史记录情况.xls", "数据", RfidLogRespVO.class,
|
|
|
BeanUtils.toBean(list, RfidLogRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
RfidLogPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - rfid历史记录情况分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class RfidLogPageReqVO extends PageParam {
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "27536")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "位置左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "1:库内 2:库外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "入库时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
@Schema(description = "rfid ", example = "32260")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "任务id", example = "20217")
|
|
|
private Integer taskId;
|
|
|
@Schema(description = "1:存货,2:取货")
|
|
|
private Integer movement;
|
|
|
@Schema(description = "托盘码,没扫描上为空")
|
|
|
private String trayCode;
|
|
|
}
|
|
|
RfidLogRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import java.time.LocalDateTime;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
@Schema(description = "管理后台 - rfid历史记录情况 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class RfidLogRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28707")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
@ExcelProperty("wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "27536")
|
|
|
@ExcelProperty("巷道")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "位置左右")
|
|
|
@ExcelProperty("位置左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "1:库内 2:库外")
|
|
|
@ExcelProperty("1:库内 2:库外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
@ExcelProperty("行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
@ExcelProperty("列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
@ExcelProperty("rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "入库时间")
|
|
|
@ExcelProperty("入库时间")
|
|
|
private LocalDateTime createTime;
|
|
|
@Schema(description = "rfid ", example = "32260")
|
|
|
@ExcelProperty("rfid ")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "任务id", example = "20217")
|
|
|
@ExcelProperty("任务id")
|
|
|
private Integer taskId;
|
|
|
@Schema(description = "1:存货,2:取货")
|
|
|
@ExcelProperty("1:存货,2:取货")
|
|
|
private Integer movement;
|
|
|
@Schema(description = "托盘码,没扫描上为空")
|
|
|
@ExcelProperty("托盘码,没扫描上为空")
|
|
|
private String trayCode;
|
|
|
}
|
|
|
RfidLogSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.rfidlog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - rfid历史记录情况新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class RfidLogSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28707")
|
|
|
private Integer id;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "巷道", example = "27536")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "位置左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "1:库内 2:库外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "行")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "rfid扫描托盘码")
|
|
|
private String rfidTrayCode;
|
|
|
@Schema(description = "rfid ", example = "32260")
|
|
|
private Integer rfidId;
|
|
|
@Schema(description = "任务id", example = "20217")
|
|
|
private Integer taskId;
|
|
|
@Schema(description = "1:存货,2:取货")
|
|
|
private Integer movement;
|
|
|
@Schema(description = "托盘码,没扫描上为空")
|
|
|
private String trayCode;
|
|
|
}
|
|
|
SensorGunController.java:
|
|
|
import jakarta.annotation.Resource;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import jakarta.validation.*;
|
|
|
import jakarta.servlet.http.*;
|
|
|
import java.util.*;
|
|
|
import java.io.IOException;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
|
|
@Tag(name = "管理后台 - 扫码枪")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/sensor-gun")
|
|
|
@Validated
|
|
|
@Resource
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建扫码枪")
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新扫码枪")
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除扫码枪")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得扫码枪")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得扫码枪分页")
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出扫码枪 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
}
|
|
|
}
|
|
|
SensorGunPageReqVO.java:
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 扫码枪分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
@Schema(description = "巷道id", example = "25123")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
SensorGunRespVO.java:
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - 扫码枪 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5583")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", example = "25123")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
@ExcelProperty(value = "左右", converter = DictConvert.class)
|
|
|
@DictFormat("direction")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
@ExcelProperty("端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
SensorGunSaveReqVO.java:
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - 扫码枪新增/修改 Request VO")
|
|
|
@Data
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5583")
|
|
|
private Integer id;
|
|
|
@Schema(description = "巷道id", example = "25123")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
}
|
|
|
StockController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.stock;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.stock.vo.StockPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.stock.vo.StockRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.stock.vo.StockSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.stock.vo.StockStreetList;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.checklog.CheckLogDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.resources.URLResourcesDo;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.stock.StockDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.ScanData;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.ScanDateReqs;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.ScanStatus;
|
|
|
import cn.iocoder.yudao.module.camera.dal.entity.echarts.EChartsOption;
|
|
|
import cn.iocoder.yudao.module.camera.service.checklog.CheckLogService;
|
|
|
import cn.iocoder.yudao.module.camera.service.plc.PLCServiceImpl;
|
|
|
import cn.iocoder.yudao.module.camera.service.resources.URLResourcesService;
|
|
|
import cn.iocoder.yudao.module.camera.service.scan.ScanServiceFactory;
|
|
|
import cn.iocoder.yudao.module.camera.service.stock.StockService;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import java.io.IOException;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 盘点状态")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/stock")
|
|
|
@Validated
|
|
|
@Slf4j
|
|
|
public class StockController {
|
|
|
@Resource
|
|
|
private StockService stockService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建盘点状态")
|
|
|
public CommonResult<Long> createStock(@Valid @RequestBody StockSaveReqVO createReqVO) {
|
|
|
return success(stockService.createStock(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新盘点状态")
|
|
|
public CommonResult<Boolean> updateStock(@Valid @RequestBody StockSaveReqVO updateReqVO) {
|
|
|
stockService.updateStock(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除盘点状态")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteStock(@RequestParam("id") Long id) {
|
|
|
stockService.deleteStock(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得盘点状态")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<StockRespVO> getStock(@RequestParam("id") Long id) {
|
|
|
StockDO stock = stockService.getStock(id);
|
|
|
return success(BeanUtils.toBean(stock, StockRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/getStreetList")
|
|
|
@Operation(summary = "获得巷道所有盘点状态")
|
|
|
public CommonResult<StockStreetList> getStreetList(@RequestParam("streetId") Long id, @RequestParam("direction") long direction) {
|
|
|
StockStreetList stockStreetList = new StockStreetList();
|
|
|
stockStreetList.setStreetId(Math.toIntExact(id));
|
|
|
stockStreetList.setDirection((int) direction);
|
|
|
StockStreetList stock = stockService.getStreetList(stockStreetList);
|
|
|
return success(stock);
|
|
|
}
|
|
|
@PostMapping("/laneInventoryStatistics")
|
|
|
@Operation(summary = "首页巷道盘点统计")
|
|
|
public CommonResult<EChartsOption> laneInventoryStatistics() {
|
|
|
EChartsOption bars = stockService.laneInventoryStatistics();
|
|
|
return success(bars);
|
|
|
}
|
|
|
@Resource
|
|
|
private DictDataService dictDataService;
|
|
|
@PostMapping("/getStreetStatus")
|
|
|
@Operation(summary = "获得巷道所有盘点状态")
|
|
|
public CommonResult<List<ScanDateReqs>> getStreetStatus(@RequestBody ScanData scanData) {
|
|
|
List<StockDO> stockStreetList = stockService.list(new QueryWrapper<StockDO>()
|
|
|
.eq(scanData.getStreetId()!=null,"street_Id", scanData.getStreetId())
|
|
|
.eq(scanData.getDirection()!=null,"direction", scanData.getDirection()));
|
|
|
Map<String, DictDataDO> dictValueMap = dictDataService.getDictValueMap("check_status");
|
|
|
List<ScanDateReqs> scanDataList = BeanUtils.toBean(stockStreetList, ScanDateReqs.class);
|
|
|
for (ScanDateReqs scan:scanDataList){
|
|
|
scan.setColour(dictValueMap.get(String.valueOf(scan.getStatus())).getColorType());
|
|
|
scan.setStatusString(dictValueMap.get(String.valueOf(scan.getStatus())).getLabel());
|
|
|
}
|
|
|
return success(scanDataList);
|
|
|
}
|
|
|
@Resource
|
|
|
CheckLogService checkLogService;
|
|
|
@Resource
|
|
|
private ScanServiceFactory scanServiceFactory;
|
|
|
@Resource
|
|
|
@Resource
|
|
|
URLResourcesService urlResourcesService;
|
|
|
@PostMapping("/getStockStatus")
|
|
|
@Operation(summary = "获得盘点状态")
|
|
|
public CommonResult<ScanData> getStockStatus(@RequestBody ScanData scanData) {
|
|
|
ScanData scan = null;
|
|
|
Map<String, DictDataDO> dictValueMap = dictDataService.getDictValueMap("check_status");
|
|
|
Map<String, DictDataDO> scanConf = dictDataService.getDictDataList("scan_conf");
|
|
|
if (scanData.getCheckLogId() != null) {
|
|
|
CheckLogDO checkLogDO = checkLogService.getById(scanData.getCheckLogId());
|
|
|
scan = BeanUtils.toBean(checkLogDO, ScanData.class);
|
|
|
List<URLResourcesDo> urlResourcesDos = urlResourcesService.list(new QueryWrapper<URLResourcesDo>().eq("uuid", checkLogDO.getPic()));
|
|
|
scan.setImages(urlResourcesDos);
|
|
|
}else if (scanData.getStockId() != null){
|
|
|
StockDO stockDOS = stockService.getById(scanData.getStockId());
|
|
|
scan = BeanUtils.toBean(stockDOS, ScanData.class);
|
|
|
List<URLResourcesDo> urlResourcesDos = urlResourcesService.list(new QueryWrapper<URLResourcesDo>().eq("uuid", stockDOS.getCheckPic()));
|
|
|
scan.setImages(urlResourcesDos);
|
|
|
}
|
|
|
List<ScanStatus> scanStatuses = new ArrayList<>();
|
|
|
ScanData finalScan = scan;
|
|
|
for (DictDataDO v:scanConf.values()){
|
|
|
if (!v.getValue().equals("0")){
|
|
|
ScanStatus scanStatus = BeanUtils.toBean(v, ScanStatus.class);
|
|
|
try {
|
|
|
String wmsType = "wms" + PLCServiceImpl.capitalize(v.getLabel());
|
|
|
Field dictCode = ScanStatus.class.getDeclaredField("code");
|
|
|
Field dictWmsCode = ScanStatus.class.getDeclaredField("wmsCode");
|
|
|
Field scanCode = getFieldFromHierarchy(finalScan.getClass(), v.getLabel());
|
|
|
Field scanWmsCode = getFieldFromHierarchy(finalScan.getClass(), wmsType);
|
|
|
if (scanCode != null && scanWmsCode != null) {
|
|
|
dictCode.setAccessible(true);
|
|
|
dictWmsCode.setAccessible(true);
|
|
|
scanCode.setAccessible(true);
|
|
|
scanWmsCode.setAccessible(true);
|
|
|
dictCode.set(scanStatus, scanCode.get(finalScan));
|
|
|
dictWmsCode.set(scanStatus, scanWmsCode.get(finalScan));
|
|
|
} else {
|
|
|
System.out.println("Fields not found in the hierarchy.");
|
|
|
}
|
|
|
System.out.println("ScanStatus Code: " + dictCode.get(scanStatus));
|
|
|
System.out.println("ScanStatus WMS Code: " + dictWmsCode.get(scanStatus));
|
|
|
} catch (NoSuchFieldException e) {
|
|
|
throw new RuntimeException(e);
|
|
|
} catch (IllegalAccessException e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
scanStatuses.add(scanStatus);
|
|
|
}
|
|
|
};
|
|
|
if (scan != null) {
|
|
|
scan.setScan(scanStatuses);
|
|
|
scan.setColour(dictValueMap.get(String.valueOf(scan.getStatus())).getColorType());
|
|
|
scan.setStatusString(dictValueMap.get(String.valueOf(scan.getStatus())).getLabel());
|
|
|
}
|
|
|
return success(scan);
|
|
|
}
|
|
|
public static Field getFieldFromHierarchy(Class<?> clazz, String fieldName) {
|
|
|
while (clazz != null) {
|
|
|
try {
|
|
|
return clazz.getDeclaredField(fieldName);
|
|
|
} catch (NoSuchFieldException e) {
|
|
|
clazz = clazz.getSuperclass();
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得盘点状态分页")
|
|
|
public CommonResult<PageResult<StockRespVO>> getStockPage(@Valid StockPageReqVO pageReqVO) {
|
|
|
PageResult<StockDO> pageResult = stockService.getStockPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, StockRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出盘点状态 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportStockExcel(@Valid StockPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<StockDO> list = stockService.getStockPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "盘点状态.xls", "数据", StockRespVO.class,
|
|
|
BeanUtils.toBean(list, StockRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
StockPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.stock.vo;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import lombok.EqualsAndHashCode;
|
|
|
import lombok.ToString;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - 盘点状态分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class StockPageReqVO extends PageParam {
|
|
|
@Schema(description = "盘点批次好")
|
|
|
private String lotnum;
|
|
|
@Schema(description = "工单任务号")
|
|
|
private String orderNum;
|
|
|
@Schema(description = "盘点任务号")
|
|
|
private String checkNum;
|
|
|
@Schema(description = "扫描条码")
|
|
|
private String code;
|
|
|
@Schema(description = "扫描品规")
|
|
|
private String category;
|
|
|
@Schema(description = "扫描数量", example = "26853")
|
|
|
private Integer count;
|
|
|
@Schema(description = "WMS系统中的条码")
|
|
|
private String wmsCode;
|
|
|
@Schema(description = "WMS系统中的品规")
|
|
|
private String wmsCategory;
|
|
|
@Schema(description = "WMS数量", example = "15545")
|
|
|
private Integer wmsCount;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "托盘码")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "巷道id", example = "18124")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "内外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "层")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "操作前图片")
|
|
|
private String preoperationPic;
|
|
|
@Schema(description = "操作后图片")
|
|
|
private String overoperationPic;
|
|
|
@Schema(description = "盘点图片")
|
|
|
private String checkPic;
|
|
|
@Schema(description = "时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] exportTime;
|
|
|
@Schema(description = "子标签")
|
|
|
private String subtag;
|
|
|
@Schema(description = "taskId", example = "18629")
|
|
|
private Integer taskWmsId;
|
|
|
@Schema(description = "地址")
|
|
|
private String addre;
|
|
|
@Schema(description = "检查id", example = "17967")
|
|
|
private Integer checkId;
|
|
|
@Schema(description = "视觉状态")
|
|
|
private String statusVision;
|
|
|
@Schema(description = "0:未盘点 1:盘点异常 2:盘点正确 3:人工核对正确", example = "2")
|
|
|
private String status;
|
|
|
@Schema(description = "是否上传1上传")
|
|
|
private String reply;
|
|
|
@Schema(description = "创建时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
}
|
|
|
StockRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.stock.vo;
|
|
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - 盘点状态 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class StockRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11784")
|
|
|
@ExcelProperty("id")
|
|
|
private Long id;
|
|
|
@Schema(description = "盘点批次好")
|
|
|
@ExcelProperty("盘点批次好")
|
|
|
private String lotnum;
|
|
|
@Schema(description = "工单任务号")
|
|
|
@ExcelProperty("工单任务号")
|
|
|
private String orderNum;
|
|
|
@Schema(description = "盘点任务号")
|
|
|
@ExcelProperty("盘点任务号")
|
|
|
private String checkNum;
|
|
|
@Schema(description = "扫描条码")
|
|
|
@ExcelProperty("扫描条码")
|
|
|
private String code;
|
|
|
@Schema(description = "扫描品规")
|
|
|
@ExcelProperty("扫描品规")
|
|
|
private String category;
|
|
|
@Schema(description = "扫描数量", example = "26853")
|
|
|
@ExcelProperty("扫描数量")
|
|
|
private Integer count;
|
|
|
@Schema(description = "WMS系统中的条码")
|
|
|
@ExcelProperty("WMS系统中的条码")
|
|
|
private String wmsCode;
|
|
|
@Schema(description = "WMS系统中的品规")
|
|
|
@ExcelProperty("WMS系统中的品规")
|
|
|
private String wmsCategory;
|
|
|
@Schema(description = "WMS数量", example = "15545")
|
|
|
@ExcelProperty("WMS数量")
|
|
|
private Integer wmsCount;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
@ExcelProperty("wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "托盘码")
|
|
|
@ExcelProperty("托盘码")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "巷道id", example = "18124")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
@ExcelProperty("左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "内外")
|
|
|
@ExcelProperty("内外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "层")
|
|
|
@ExcelProperty("层")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
@ExcelProperty("列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "操作前图片")
|
|
|
@ExcelProperty("操作前图片")
|
|
|
private String preoperationPic;
|
|
|
@Schema(description = "操作后图片")
|
|
|
@ExcelProperty("操作后图片")
|
|
|
private String overoperationPic;
|
|
|
@Schema(description = "盘点图片")
|
|
|
@ExcelProperty("盘点图片")
|
|
|
private String checkPic;
|
|
|
@Schema(description = "时间")
|
|
|
@ExcelProperty("时间")
|
|
|
private LocalDateTime exportTime;
|
|
|
@Schema(description = "子标签")
|
|
|
@ExcelProperty("子标签")
|
|
|
private String subtag;
|
|
|
@Schema(description = "taskId", example = "18629")
|
|
|
@ExcelProperty("taskId")
|
|
|
private Integer taskWmsId;
|
|
|
@Schema(description = "地址")
|
|
|
@ExcelProperty("地址")
|
|
|
private String addre;
|
|
|
@Schema(description = "检查id", example = "17967")
|
|
|
@ExcelProperty("检查id")
|
|
|
private Integer checkId;
|
|
|
@Schema(description = "视觉状态")
|
|
|
@ExcelProperty("视觉状态")
|
|
|
private String statusVision;
|
|
|
@Schema(description = "0:未盘点 1:盘点异常 2:盘点正确 3:人工核对正确", example = "2")
|
|
|
@ExcelProperty("0:未盘点 1:盘点异常 2:盘点正确 3:人工核对正确")
|
|
|
private String status;
|
|
|
@Schema(description = "是否上传1上传")
|
|
|
@ExcelProperty("是否上传1上传")
|
|
|
private String reply;
|
|
|
@Schema(description = "创建时间")
|
|
|
@ExcelProperty("创建时间")
|
|
|
private LocalDateTime createTime;
|
|
|
}
|
|
|
StockSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.stock.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - 盘点状态新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class StockSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11784")
|
|
|
private Long id;
|
|
|
@Schema(description = "盘点批次好")
|
|
|
private String lotnum;
|
|
|
@Schema(description = "工单任务号")
|
|
|
private String orderNum;
|
|
|
@Schema(description = "盘点任务号")
|
|
|
private String checkNum;
|
|
|
@Schema(description = "扫描条码")
|
|
|
private String code;
|
|
|
@Schema(description = "扫描品规")
|
|
|
private String category;
|
|
|
@Schema(description = "扫描数量", example = "26853")
|
|
|
private Integer count;
|
|
|
@Schema(description = "WMS系统中的条码")
|
|
|
private String wmsCode;
|
|
|
@Schema(description = "WMS系统中的品规")
|
|
|
private String wmsCategory;
|
|
|
@Schema(description = "WMS数量", example = "15545")
|
|
|
private Integer wmsCount;
|
|
|
@Schema(description = "wms托盘码")
|
|
|
private String wmsTrayCode;
|
|
|
@Schema(description = "托盘码")
|
|
|
private String trayCode;
|
|
|
@Schema(description = "巷道id", example = "18124")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "内外")
|
|
|
private Integer side;
|
|
|
@Schema(description = "层")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "操作前图片")
|
|
|
private String preoperationPic;
|
|
|
@Schema(description = "操作后图片")
|
|
|
private String overoperationPic;
|
|
|
@Schema(description = "盘点图片")
|
|
|
private String checkPic;
|
|
|
@Schema(description = "时间")
|
|
|
private LocalDateTime exportTime;
|
|
|
@Schema(description = "子标签")
|
|
|
private String subtag;
|
|
|
@Schema(description = "taskId", example = "18629")
|
|
|
private Integer taskWmsId;
|
|
|
@Schema(description = "地址")
|
|
|
private String addre;
|
|
|
@Schema(description = "检查id", example = "17967")
|
|
|
private Integer checkId;
|
|
|
@Schema(description = "视觉状态")
|
|
|
private String statusVision;
|
|
|
@Schema(description = "0:未盘点 1:盘点异常 2:盘点正确 3:人工核对正确", example = "2")
|
|
|
private String status;
|
|
|
@Schema(description = "是否上传1上传")
|
|
|
private String reply;
|
|
|
@Schema(description = "货位号")
|
|
|
private String storageCode;
|
|
|
}
|
|
|
StockStreetList.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.stock.vo;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.stock.StockDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
|
|
|
import lombok.Data;
|
|
|
import java.util.List;
|
|
|
@Data
|
|
|
public class StockStreetList {
|
|
|
private StreetDO streetDO;
|
|
|
private int rows;
|
|
|
private int columns ;
|
|
|
private int streetId;
|
|
|
private int direction;
|
|
|
private List<StockDO> buttons;
|
|
|
}
|
|
|
StreetController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.street;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.street.vo.StreetSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
|
|
|
import cn.iocoder.yudao.module.camera.framework.light.LightFactory;
|
|
|
import cn.iocoder.yudao.module.camera.service.lightsource.LightSourceService;
|
|
|
import cn.iocoder.yudao.module.camera.service.street.StreetService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - 巷道")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/street")
|
|
|
@Validated
|
|
|
public class StreetController {
|
|
|
@Resource
|
|
|
private StreetService streetService;
|
|
|
@Resource
|
|
|
private LightSourceService lightSourceService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建巷道")
|
|
|
public CommonResult<Integer> createStreet(@Valid @RequestBody StreetSaveReqVO createReqVO) {
|
|
|
return success(streetService.createStreet(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新巷道")
|
|
|
public CommonResult<Boolean> updateStreet(@Valid @RequestBody StreetSaveReqVO updateReqVO) {
|
|
|
streetService.updateStreet(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除巷道")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteStreet(@RequestParam("id") Integer id) {
|
|
|
streetService.deleteStreet(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得巷道")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<StreetRespVO> getStreet(@RequestParam("id") Integer id) {
|
|
|
StreetDO street = streetService.getStreet(id);
|
|
|
StreetRespVO streetRespVO = BeanUtils.toBean(street, StreetRespVO.class);
|
|
|
streetService.getCameraName(streetRespVO);
|
|
|
return success(streetRespVO);
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得巷道分页")
|
|
|
public CommonResult<PageResult<StreetRespVO>> getStreetPage(@Valid StreetPageReqVO pageReqVO) {
|
|
|
PageResult<StreetDO> pageResult = streetService.getStreetPage(pageReqVO);
|
|
|
PageResult<StreetRespVO> streetRespVO =BeanUtils.toBean(pageResult, StreetRespVO.class);
|
|
|
streetService.getCameraName(streetRespVO.getList());
|
|
|
return success(streetRespVO);
|
|
|
}
|
|
|
@GetMapping("/list")
|
|
|
@Operation(summary = "获得巷道列表")
|
|
|
public CommonResult<List<StreetRespVO>> list() {
|
|
|
List<StreetDO> pageResult = streetService.list();
|
|
|
List<StreetRespVO> streetRespVO =BeanUtils.toBean(pageResult, StreetRespVO.class);
|
|
|
streetService.getCameraName(streetRespVO);
|
|
|
return success(streetRespVO);
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出巷道 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportStreetExcel(@Valid StreetPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<StreetDO> list = streetService.getStreetPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "巷道.xls", "数据", StreetRespVO.class,
|
|
|
BeanUtils.toBean(list, StreetRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/sensor-gun/list-by-street-id")
|
|
|
@Operation(summary = "获得扫码枪列表")
|
|
|
@Parameter(name = "streetId", description = "巷道id")
|
|
|
}
|
|
|
@GetMapping("/light-source/list-by-street-id")
|
|
|
@Operation(summary = "获得光源列表")
|
|
|
@Parameter(name = "streetId", description = "巷道id")
|
|
|
public CommonResult<List<LightSourceDO>> getLightSourceListByStreetId(@RequestParam("streetId") Integer streetId) {
|
|
|
return success(streetService.getLightSourceListByStreetId(streetId));
|
|
|
}
|
|
|
@GetMapping("/rfid/list-by-street-id")
|
|
|
@Operation(summary = "获得rfid列表")
|
|
|
@Parameter(name = "streetId", description = "巷道id")
|
|
|
public CommonResult<List<RfidDO>> getRFIDListByStreetId(@RequestParam("streetId") Integer streetId) {
|
|
|
return success(streetService.getRFIDListByStreetId(streetId));
|
|
|
}
|
|
|
@GetMapping("/lightSource/open")
|
|
|
@Operation(summary = "开启全部光源")
|
|
|
@Parameter(name = "streetId", description = "巷道id")
|
|
|
public CommonResult openLightSource(){
|
|
|
List<LightSourceDO> list = lightSourceService.list();
|
|
|
for(LightSourceDO lightSourceDO : list){
|
|
|
LightFactory.LightController(lightSourceDO,1);
|
|
|
}
|
|
|
return success("开启全部光源");
|
|
|
}
|
|
|
@GetMapping("/lightSource/close")
|
|
|
@Operation(summary = "关闭全部光源")
|
|
|
public CommonResult<String> closeLightSource(){
|
|
|
List<LightSourceDO> list = lightSourceService.list();
|
|
|
for(LightSourceDO lightSourceDO : list){
|
|
|
LightFactory.LightController(lightSourceDO,0);
|
|
|
}
|
|
|
return success("开启全部光源");
|
|
|
}
|
|
|
@GetMapping("/lightSource/open/{streetId}")
|
|
|
@Operation(summary = "开启单个巷道光源")
|
|
|
public CommonResult<String> openStreetLightSource(@PathVariable Integer streetId){
|
|
|
List<LightSourceDO> list = streetService.getLightSourceListByStreetId(streetId);
|
|
|
for(LightSourceDO lightSourceDO : list){
|
|
|
LightFactory.LightController(lightSourceDO,1);
|
|
|
}
|
|
|
return success("开启全部光源");
|
|
|
}
|
|
|
@GetMapping("/lightSource/close/{streetId}")
|
|
|
@Operation(summary = "关闭单个巷道光源")
|
|
|
public CommonResult<String> closeStreetLightSource(@PathVariable Integer streetId){
|
|
|
List<LightSourceDO> list = streetService.getLightSourceListByStreetId(streetId);
|
|
|
for(LightSourceDO lightSourceDO : list){
|
|
|
LightFactory.LightController(lightSourceDO,0);
|
|
|
}
|
|
|
return success("开启全部光源");
|
|
|
}
|
|
|
}
|
|
|
StreetPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.street.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@Schema(description = "管理后台 - 巷道分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class StreetPageReqVO extends PageParam {
|
|
|
@Schema(description = "名称", example = "李四")
|
|
|
private String name;
|
|
|
@Schema(description = "巷道id", example = "16768")
|
|
|
private String plcId;
|
|
|
}
|
|
|
StreetRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.street.vo;
|
|
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - 巷道 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class StreetRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9507")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "名称", example = "李四")
|
|
|
@ExcelProperty("名称")
|
|
|
private String name;
|
|
|
@Schema(description = "巷道id", example = "16768")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private String plcId;
|
|
|
@Schema(description = "巷道ip")
|
|
|
@ExcelProperty("巷道ip")
|
|
|
private String plcIp;
|
|
|
@Schema(description = "巷道端口")
|
|
|
@ExcelProperty("巷道端口")
|
|
|
private Integer plcPort;
|
|
|
@Schema(description = "左货架类型 0:单伸 1:双伸", example = "1")
|
|
|
@ExcelProperty("左货架类型 0:单伸 1:双伸")
|
|
|
private Integer leftType;
|
|
|
@Schema(description = "左货架列数量")
|
|
|
@ExcelProperty("左货架列数量")
|
|
|
private Integer leftColumn;
|
|
|
@Schema(description = "左货架行数量")
|
|
|
@ExcelProperty("左货架行数量")
|
|
|
private Integer leftRow;
|
|
|
@Schema(description = "右货架类型 0:单伸 1:双伸", example = "1")
|
|
|
@ExcelProperty("右货架类型 0:单伸 1:双伸")
|
|
|
private Integer rightType;
|
|
|
@Schema(description = "右货架列数量")
|
|
|
@ExcelProperty("右货架列数量")
|
|
|
private Integer rightColumn;
|
|
|
@Schema(description = "右货架行数量")
|
|
|
@ExcelProperty("右货架行数量")
|
|
|
private Integer rightRow;
|
|
|
@Schema(description = "球机1", example = "28615")
|
|
|
@ExcelProperty("球机")
|
|
|
private Integer camera1Id;
|
|
|
@Schema(description = "球机1名称", example = "28615")
|
|
|
@ExcelProperty("球机名")
|
|
|
private String camera1Name;
|
|
|
@Schema(description = "球机", example = "9539")
|
|
|
@ExcelProperty("球机名")
|
|
|
private Integer camera2Id;
|
|
|
@Schema(description = "球机2名称", example = "9539")
|
|
|
@ExcelProperty("球机")
|
|
|
private String camera2Name;
|
|
|
@Schema(description = "修改时间")
|
|
|
@ExcelProperty("修改时间")
|
|
|
private LocalDateTime updateTime;
|
|
|
}
|
|
|
StreetSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.street.vo;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.rfid.RfidDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.street.LightSourceDO;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import jakarta.validation.constraints.NotNull;
|
|
|
import lombok.Data;
|
|
|
import java.util.List;
|
|
|
@Schema(description = "管理后台 - 巷道新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class StreetSaveReqVO {
|
|
|
@Schema(description = "id", example = "id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "名称", example = "李四")
|
|
|
private String name;
|
|
|
@Schema(description = "巷道id", example = "16768")
|
|
|
private String plcId;
|
|
|
@Schema(description = "巷道ip")
|
|
|
private String plcIp;
|
|
|
@Schema(description = "巷道端口")
|
|
|
private Integer plcPort;
|
|
|
@Schema(description = "左货架类型 0:单伸 1:双伸", example = "1")
|
|
|
private Integer leftType;
|
|
|
@Schema(description = "左货架列数量")
|
|
|
private Integer leftColumn;
|
|
|
@Schema(description = "左货架行数量")
|
|
|
private Integer leftRow;
|
|
|
@Schema(description = "右货架类型 0:单伸 1:双伸", example = "1")
|
|
|
private Integer rightType;
|
|
|
@Schema(description = "右货架列数量")
|
|
|
private Integer rightColumn;
|
|
|
@Schema(description = "右货架行数量")
|
|
|
private Integer rightRow;
|
|
|
@Schema(description = "球机", example = "28615")
|
|
|
private Integer camera1Id;
|
|
|
@Schema(description = "球机", example = "9539")
|
|
|
private Integer camera2Id;
|
|
|
@Schema(description = "是否删除", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
|
@NotNull(message = "是否删除不能为空")
|
|
|
private Boolean deleted = false;
|
|
|
@Schema(description = "扫码枪列表")
|
|
|
@Schema(description = "扫码枪列表")
|
|
|
private List<RfidDO> rfids;
|
|
|
@Schema(description = "光源列表")
|
|
|
private List<LightSourceDO> lightSources;
|
|
|
}
|
|
|
TcpClientController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclient;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo.TcpClientPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo.TcpClientRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo.TcpClientSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.tcpclient.TcpClientDO;
|
|
|
import cn.iocoder.yudao.module.camera.framework.netty.NettyClientInter;
|
|
|
import cn.iocoder.yudao.module.camera.service.tcpclient.TcpClientService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - netty客户端连接")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/tcp-client")
|
|
|
@Validated
|
|
|
public class TcpClientController {
|
|
|
@Resource
|
|
|
private TcpClientService tcpClientService;
|
|
|
@Resource
|
|
|
private NettyClientInter nettyClientInter;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建netty客户端连接")
|
|
|
public CommonResult<Integer> createTcpClient(@Valid @RequestBody TcpClientSaveReqVO createReqVO) {
|
|
|
return success(tcpClientService.createTcpClient(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新netty客户端连接")
|
|
|
public CommonResult<Boolean> updateTcpClient(@Valid @RequestBody TcpClientSaveReqVO updateReqVO) {
|
|
|
tcpClientService.updateTcpClient(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除netty客户端连接")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteTcpClient(@RequestParam("id") Integer id) {
|
|
|
tcpClientService.deleteTcpClient(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@PutMapping("/conn")
|
|
|
@Operation(summary = "连接netty客户端连接")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> connTcpClient(@RequestParam("id") Integer id) {
|
|
|
TcpClientRespVO item =BeanUtils.toBean(tcpClientService.getTcpClient(id), TcpClientRespVO.class) ;
|
|
|
if(nettyClientInter.getStatus(tcpClientService.getNettyVo(item)) == 1){
|
|
|
return error(523,"已连接成功");
|
|
|
}else {
|
|
|
tcpClientService.connect(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
}
|
|
|
@DeleteMapping("/disconn")
|
|
|
@Operation(summary = "断连netty客户端连接")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> disconnTcpClient(@RequestParam("id") Integer id) {
|
|
|
TcpClientRespVO item =BeanUtils.toBean(tcpClientService.getTcpClient(id), TcpClientRespVO.class) ;
|
|
|
if(nettyClientInter.getStatus(tcpClientService.getNettyVo(item)) == 1){
|
|
|
tcpClientService.disConnect(id);
|
|
|
return success(true);
|
|
|
}else {
|
|
|
return error(523,"已断开连接");
|
|
|
}
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得netty客户端连接")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<TcpClientRespVO> getTcpClient(@RequestParam("id") Integer id) {
|
|
|
TcpClientDO tcpClient = tcpClientService.getTcpClient(id);
|
|
|
return success(BeanUtils.toBean(tcpClient, TcpClientRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得netty客户端连接分页")
|
|
|
public CommonResult<PageResult<TcpClientRespVO>> getTcpClientPage(@Valid TcpClientPageReqVO pageReqVO) {
|
|
|
PageResult<TcpClientDO> pageResult = tcpClientService.getTcpClientPage(pageReqVO);
|
|
|
PageResult<TcpClientRespVO> page = BeanUtils.toBean(pageResult, TcpClientRespVO.class);
|
|
|
page.getList().forEach(item -> {
|
|
|
item.setStatus(nettyClientInter.getStatus(tcpClientService.getNettyVo(item)));
|
|
|
});
|
|
|
return success(page);
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出netty客户端连接 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportTcpClientExcel(@Valid TcpClientPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<TcpClientDO> list = tcpClientService.getTcpClientPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "netty客户端连接.xls", "数据", TcpClientRespVO.class,
|
|
|
BeanUtils.toBean(list, TcpClientRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
TcpClientPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - netty客户端连接分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class TcpClientPageReqVO extends PageParam {
|
|
|
@Schema(description = "连接名称", example = "李四")
|
|
|
private String name;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "2")
|
|
|
private String type;
|
|
|
@Schema(description = "创建时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
@Schema(description = "重试个数", example = "-1")
|
|
|
private Integer reconnectNum;
|
|
|
@Schema(description = "重试间隔时间", example = "3000")
|
|
|
private Integer reconnectInterval;
|
|
|
}
|
|
|
TcpClientRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.Data;
|
|
|
import java.time.LocalDateTime;
|
|
|
@Schema(description = "管理后台 - netty客户端连接 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class TcpClientRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6449")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "连接名称", example = "李四")
|
|
|
@ExcelProperty("连接名称")
|
|
|
private String name;
|
|
|
@Schema(description = "连接状态", example = "1")
|
|
|
@ExcelProperty("状态")
|
|
|
private Integer status;
|
|
|
@Schema(description = "端口")
|
|
|
@ExcelProperty("端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "2")
|
|
|
@ExcelProperty(value = "处理器类型", converter = DictConvert.class)
|
|
|
@DictFormat("tcp_processor")
|
|
|
private String type;
|
|
|
@Schema(description = "创建时间")
|
|
|
@ExcelProperty("创建时间")
|
|
|
private LocalDateTime createTime;
|
|
|
@Schema(description = "重试个数", example = "-1")
|
|
|
@ExcelProperty("重试个数")
|
|
|
private Integer reconnectNum;
|
|
|
@Schema(description = "重试间隔时间", example = "3000")
|
|
|
@ExcelProperty("重试间隔时间")
|
|
|
private Integer reconnectInterval;
|
|
|
}
|
|
|
TcpClientSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclient.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - netty客户端连接新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class TcpClientSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6449")
|
|
|
private Integer id;
|
|
|
@Schema(description = "连接名称", example = "李四")
|
|
|
private String name;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "2")
|
|
|
private String type;
|
|
|
@Schema(description = "重试个数", example = "-1")
|
|
|
private Integer reconnectNum;
|
|
|
@Schema(description = "重试间隔时间", example = "3000")
|
|
|
private Integer reconnectInterval;
|
|
|
}
|
|
|
TcpClientLogController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo.TcpClientLogPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo.TcpClientLogRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo.TcpClientLogSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.tcpclientlog.TcpClientLogDO;
|
|
|
import cn.iocoder.yudao.module.camera.service.tcpclientlog.TcpClientLogService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "管理后台 - netty客户端日志")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/tcp-client-log")
|
|
|
@Validated
|
|
|
public class TcpClientLogController {
|
|
|
@Resource
|
|
|
private TcpClientLogService tcpClientLogService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建netty客户端连接日志")
|
|
|
public CommonResult<Integer> createTcpClientLog(@Valid @RequestBody TcpClientLogSaveReqVO createReqVO) {
|
|
|
return success(tcpClientLogService.createTcpClientLog(createReqVO));
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新netty客户端连接日志")
|
|
|
public CommonResult<Boolean> updateTcpClientLog(@Valid @RequestBody TcpClientLogSaveReqVO updateReqVO) {
|
|
|
tcpClientLogService.updateTcpClientLog(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除netty客户端连接日志")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteTcpClientLog(@RequestParam("id") Integer id) {
|
|
|
tcpClientLogService.deleteTcpClientLog(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得netty客户端连接日志")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<TcpClientLogRespVO> getTcpClientLog(@RequestParam("id") Integer id) {
|
|
|
TcpClientLogDO tcpClientLog = tcpClientLogService.getTcpClientLog(id);
|
|
|
return success(BeanUtils.toBean(tcpClientLog, TcpClientLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得netty客户端连接分页日志")
|
|
|
public CommonResult<PageResult<TcpClientLogRespVO>> getTcpClientLogPage(@Valid TcpClientLogPageReqVO pageReqVO) {
|
|
|
PageResult<TcpClientLogDO> pageResult = tcpClientLogService.getTcpClientLogPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, TcpClientLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出netty客户端连接日志 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportTcpClientLogExcel(@Valid TcpClientLogPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<TcpClientLogDO> list = tcpClientLogService.getTcpClientLogPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "netty客户端连接.xls", "数据", TcpClientLogRespVO.class,
|
|
|
BeanUtils.toBean(list, TcpClientLogRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
TcpClientLogPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "管理后台 - netty客户端连接分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class TcpClientLogPageReqVO extends PageParam {
|
|
|
@Schema(description = "连接名称", example = "张三")
|
|
|
private String name;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "1")
|
|
|
private String tcpType;
|
|
|
@Schema(description = "创建时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
@Schema(description = "信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型,接收或发送", example = "2")
|
|
|
private Integer type;
|
|
|
}
|
|
|
TcpClientLogRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import java.time.LocalDateTime;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "管理后台 - netty客户端连接 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class TcpClientLogRespVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18307")
|
|
|
@ExcelProperty("id")
|
|
|
private Integer id;
|
|
|
@Schema(description = "连接名称", example = "张三")
|
|
|
@ExcelProperty("连接名称")
|
|
|
private String name;
|
|
|
@Schema(description = "端口")
|
|
|
@ExcelProperty("端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
@ExcelProperty("ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "1")
|
|
|
@ExcelProperty(value = "处理器类型", converter = DictConvert.class)
|
|
|
@DictFormat("tcp_processor")
|
|
|
private String tcpType;
|
|
|
@Schema(description = "创建时间")
|
|
|
@ExcelProperty("创建时间")
|
|
|
private LocalDateTime createTime;
|
|
|
@Schema(description = "信息")
|
|
|
@ExcelProperty("信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型,接收或发送", example = "2")
|
|
|
@ExcelProperty(value = "类型,接收或发送", converter = DictConvert.class)
|
|
|
@DictFormat("tcp_log_status")
|
|
|
private Integer type;
|
|
|
}
|
|
|
TcpClientLogSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.admin.tcpclientlog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "管理后台 - netty客户端连接新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class TcpClientLogSaveReqVO {
|
|
|
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18307")
|
|
|
private Integer id;
|
|
|
@Schema(description = "连接名称", example = "张三")
|
|
|
private String name;
|
|
|
@Schema(description = "端口")
|
|
|
private Integer port;
|
|
|
@Schema(description = "ip")
|
|
|
private String ip;
|
|
|
@Schema(description = "处理器类型", example = "1")
|
|
|
private String tcpType;
|
|
|
@Schema(description = "信息")
|
|
|
private String info;
|
|
|
@Schema(description = "类型,接收或发送", example = "2")
|
|
|
private Integer type;
|
|
|
}
|
|
|
AppStockLogController.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.app.stocklog;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.camera.controller.app.stocklog.vo.AppStockLogPageReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.app.stocklog.vo.AppStockLogRespVO;
|
|
|
import cn.iocoder.yudao.module.camera.controller.app.stocklog.vo.AppStockLogSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.stocklog.StockLogDO;
|
|
|
import cn.iocoder.yudao.module.camera.framework.netty.streetAlgorithm.executor.AlgorithmDelayTask;
|
|
|
import cn.iocoder.yudao.module.camera.service.stocklog.StockLogService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import jakarta.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
import java.util.List;
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@Tag(name = "用户 APP - 货位历史")
|
|
|
@RestController
|
|
|
@RequestMapping("/logistics/stock-log")
|
|
|
@Validated
|
|
|
public class AppStockLogController {
|
|
|
@Resource
|
|
|
private StockLogService stockLogService;
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建货位历史")
|
|
|
public CommonResult<Integer> createStockLog(@Valid @RequestBody AppStockLogSaveReqVO createReqVO) {
|
|
|
return success(stockLogService.createStockLog(createReqVO));
|
|
|
}
|
|
|
@PostMapping("/taskSetHttp")
|
|
|
@Operation(summary = "货位情况上传测试")
|
|
|
public CommonResult<Integer> taskSetHttp( @RequestBody AlgorithmDelayTask algorithmDelayTask) {
|
|
|
System.out.println(algorithmDelayTask);
|
|
|
return success(1);
|
|
|
}
|
|
|
@PutMapping("/update")
|
|
|
@Operation(summary = "更新货位历史")
|
|
|
public CommonResult<Boolean> updateStockLog(@Valid @RequestBody AppStockLogSaveReqVO updateReqVO) {
|
|
|
stockLogService.updateStockLog(updateReqVO);
|
|
|
return success(true);
|
|
|
}
|
|
|
@DeleteMapping("/delete")
|
|
|
@Operation(summary = "删除货位历史")
|
|
|
@Parameter(name = "id", description = "编号", required = true)
|
|
|
public CommonResult<Boolean> deleteStockLog(@RequestParam("id") Integer id) {
|
|
|
stockLogService.deleteStockLog(id);
|
|
|
return success(true);
|
|
|
}
|
|
|
@GetMapping("/get")
|
|
|
@Operation(summary = "获得货位历史")
|
|
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
|
public CommonResult<AppStockLogRespVO> getStockLog(@RequestParam("id") Integer id) {
|
|
|
StockLogDO stockLog = stockLogService.getStockLog(id);
|
|
|
return success(BeanUtils.toBean(stockLog, AppStockLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得货位历史分页")
|
|
|
public CommonResult<PageResult<AppStockLogRespVO>> getStockLogPage(@Valid AppStockLogPageReqVO pageReqVO) {
|
|
|
PageResult<StockLogDO> pageResult = stockLogService.getStockLogPage(pageReqVO);
|
|
|
return success(BeanUtils.toBean(pageResult, AppStockLogRespVO.class));
|
|
|
}
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出货位历史 Excel")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportStockLogExcel(@Valid AppStockLogPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
List<StockLogDO> list = stockLogService.getStockLogPage(pageReqVO).getList();
|
|
|
ExcelUtils.write(response, "货位历史.xls", "数据", AppStockLogRespVO.class,
|
|
|
BeanUtils.toBean(list, AppStockLogRespVO.class));
|
|
|
}
|
|
|
}
|
|
|
AppStockLogPageReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.app.stocklog.vo;
|
|
|
import lombok.*;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import java.time.LocalDateTime;
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
|
@Schema(description = "用户 APP - 货位历史分页 Request VO")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
public class AppStockLogPageReqVO extends PageParam {
|
|
|
@Schema(description = "左右", example = "1")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "内外", example = "1")
|
|
|
private Integer side;
|
|
|
@Schema(description = "层", example = "5")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列", example = "20")
|
|
|
private Integer column;
|
|
|
@Schema(description = "随行工单号", example = "12")
|
|
|
private String orderNum;
|
|
|
@Schema(description = "状态", example = "1")
|
|
|
private Integer type;
|
|
|
@Schema(description = "创建时间")
|
|
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
|
private LocalDateTime[] createTime;
|
|
|
}
|
|
|
AppStockLogRespVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.app.stocklog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
import java.time.LocalDateTime;
|
|
|
import com.alibaba.excel.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
|
@Schema(description = "用户 APP - 货位历史 Response VO")
|
|
|
@Data
|
|
|
@ExcelIgnoreUnannotated
|
|
|
public class AppStockLogRespVO {
|
|
|
@Schema(description = "巷道id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6409")
|
|
|
@ExcelProperty("巷道id")
|
|
|
private Integer streetId;
|
|
|
@Schema(description = "左右", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
|
|
@ExcelProperty(value = "左右", converter = DictConvert.class)
|
|
|
@DictFormat("direction")
|
|
|
private Integer direction;
|
|
|
@Schema(description = "内外", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
|
|
@ExcelProperty(value = "内外", converter = DictConvert.class)
|
|
|
@DictFormat("side")
|
|
|
private Integer side;
|
|
|
@Schema(description = "层", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
|
|
|
@ExcelProperty("层")
|
|
|
private Integer row;
|
|
|
@Schema(description = "列", requiredMode = Schema.RequiredMode.REQUIRED, example = "20")
|
|
|
@ExcelProperty("列")
|
|
|
private Integer column;
|
|
|
@Schema(description = "随行工单号", example = "12")
|
|
|
@ExcelProperty("随行工单号")
|
|
|
private String orderNum;
|
|
|
@Schema(description = "图片")
|
|
|
@ExcelProperty("图片")
|
|
|
private String pic;
|
|
|
@Schema(description = "状态", example = "1")
|
|
|
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
|
|
@DictFormat("check_status")
|
|
|
private Integer type;
|
|
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
|
@ExcelProperty("创建时间")
|
|
|
private LocalDateTime createTime;
|
|
|
}
|
|
|
AppStockLogSaveReqVO.java:
|
|
|
package cn.iocoder.yudao.module.camera.controller.app.stocklog.vo;
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
import lombok.*;
|
|
|
@Schema(description = "用户 APP - 货位历史新增/修改 Request VO")
|
|
|
@Data
|
|
|
public class AppStockLogSaveReqVO {
|
|
|
}
|
|
|
CameraDO.java:
|
|
|
package cn.iocoder.yudao.module.camera.dal.dataobject.camera;
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
|
|
import com.baomidou.mybatisplus.annotation.TableId;
|
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
import lombok.*;
|
|
|
@TableName("logistics_camera")
|
|
|
@KeySequence("logistics_camera_seq")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
@Builder
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
public class CameraDO extends BaseDO {
|
|
|
@TableId
|
|
|
private Integer id;
|
|
|
private String name;
|
|
|
private Integer type;
|
|
|
private String ip;
|
|
|
private Integer port;
|
|
|
private String user;
|
|
|
private String password;
|
|
|
private Integer ptzId;
|
|
|
private String rtcServer;
|
|
|
private Integer rtcServerPort;
|
|
|
private Integer rtspPort;
|
|
|
private String channel;
|
|
|
private String recorderIp;
|
|
|
}
|
|
|
CameraIoDO.java:
|
|
|
package cn.iocoder.yudao.module.camera.dal.dataobject.cameraio;
|
|
|
import lombok.*;
|
|
|
import com.baomidou.mybatisplus.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
@TableName("logistics_camera_io")
|
|
|
@KeySequence("logistics_camera_io_seq")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
@Builder
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
public class CameraIoDO extends BaseDO {
|
|
|
@TableId
|
|
|
private Integer id;
|
|
|
private String name;
|
|
|
private String code;
|
|
|
private Integer cameraId;
|
|
|
private Integer ptzId;
|
|
|
private String position;
|
|
|
private String focusing;
|
|
|
private String aperture;
|
|
|
private String multiple;
|
|
|
}
|
|
|
CameraIoConfigDO.java:
|
|
|
package cn.iocoder.yudao.module.camera.dal.dataobject.cameraioconfig;
|
|
|
import lombok.*;
|
|
|
import com.baomidou.mybatisplus.annotation.*;
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
@TableName("logistics_camera_io_config")
|
|
|
@KeySequence("logistics_camera_io_config_seq")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
@Builder
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
public class CameraIoConfigDO extends BaseDO {
|
|
|
@TableId
|
|
|
private Integer id;
|
|
|
private String code;
|
|
|
private String name;
|
|
|
}
|
|
|
CheckLogDO.java:
|
|
|
package cn.iocoder.yudao.module.camera.dal.dataobject.checklog;
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
import cn.iocoder.yudao.module.camera.dal.dataobject.resources.URLResourcesDo;
|
|
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
import com.baomidou.mybatisplus.annotation.TableId;
|
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
import lombok.*;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
@TableName("logistics_check_log")
|
|
|
@KeySequence("logistics_check_log_seq")
|
|
|
@Data
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
@ToString(callSuper = true)
|
|
|
@Builder
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
public class CheckLogDO extends BaseDO {
|
|
|
private String lotnum;
|
|
|
private Integer direction;
|
|
|
private Integer side;
|
|
|
@TableField("`row`")
|
|
|
private Integer row;
|
|
|
@TableField("`column`")
|
|
|
private Integer column;
|
|
|
private String code;
|
|
|
private String wmsCode;
|
|
|
private String trayCode;
|
|
|
private String wmsTrayCode;
|
|
|
private String category;
|
|
|
private String count;
|
|
|
private Integer status;
|
|
|
private String checkNum;
|
|
|
private String pic;
|
|
|
private Integer streetId;
|
|
|
@TableField(exist = false)
|
|
|
private String streetName;
|
|
|
@TableField(exist = false)
|
|
|
private List<URLResourcesDo> urlResources;
|
|
|
private LocalDateTime exportTime;
|
|
|
@TableId
|
|
|
private Integer id;
|
|
|
private String subtag;
|
|
|
private String taskId;
|
|
|
private String wmsCategory;
|
|
|
private String wmsCount;
|
|
|
private String statusVision;
|
|
|
}
|
|
|
OrderDO.java:
|