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

3 months ago
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: