You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yudao/extracted_code.txt

3124 lines
123 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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: