出入库导入功能修改, 查询修改
This commit is contained in:
parent
a1a3d94f71
commit
07a78e6ef9
@ -1,4 +1,4 @@
|
||||
package cn.iocoder.yudao.module.device.controller.admin.cameradevice;
|
||||
package cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
@ -8,7 +8,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
@ -25,13 +24,13 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo.*;
|
||||
import cn.iocoder.yudao.module.device.dal.dataobject.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.device.service.cameradevice.CameraDeviceService;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.*;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.smartfactory.service.device.cameradevice.CameraDeviceService;
|
||||
|
||||
@Tag(name = "管理后台 - 设备-监控摄像头")
|
||||
@RestController
|
||||
@RequestMapping("/device/camera-device")
|
||||
@RequestMapping("/smartfactory/camera-device")
|
||||
@Validated
|
||||
public class CameraDeviceController {
|
||||
|
||||
@ -40,14 +39,14 @@ public class CameraDeviceController {
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建设备-监控摄像头")
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:create')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:create')")
|
||||
public CommonResult<Long> createCameraDevice(@Valid @RequestBody CameraDeviceSaveReqVO createReqVO) {
|
||||
return success(cameraDeviceService.createCameraDevice(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新设备-监控摄像头")
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:update')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:update')")
|
||||
public CommonResult<Boolean> updateCameraDevice(@Valid @RequestBody CameraDeviceSaveReqVO updateReqVO) {
|
||||
cameraDeviceService.updateCameraDevice(updateReqVO);
|
||||
return success(true);
|
||||
@ -56,7 +55,7 @@ public class CameraDeviceController {
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除设备-监控摄像头")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:delete')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:delete')")
|
||||
public CommonResult<Boolean> deleteCameraDevice(@RequestParam("id") Long id) {
|
||||
cameraDeviceService.deleteCameraDevice(id);
|
||||
return success(true);
|
||||
@ -65,7 +64,7 @@ public class CameraDeviceController {
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得设备-监控摄像头")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:query')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:query')")
|
||||
public CommonResult<CameraDeviceRespVO> getCameraDevice(@RequestParam("id") Long id) {
|
||||
CameraDeviceDO cameraDevice = cameraDeviceService.getCameraDevice(id);
|
||||
return success(BeanUtils.toBean(cameraDevice, CameraDeviceRespVO.class));
|
||||
@ -73,7 +72,7 @@ public class CameraDeviceController {
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得设备-监控摄像头分页")
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:query')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:query')")
|
||||
public CommonResult<PageResult<CameraDeviceRespVO>> getCameraDevicePage(@Valid CameraDevicePageReqVO pageReqVO) {
|
||||
PageResult<CameraDeviceDO> pageResult = cameraDeviceService.getCameraDevicePage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, CameraDeviceRespVO.class));
|
||||
@ -81,7 +80,7 @@ public class CameraDeviceController {
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出设备-监控摄像头 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('device:camera-device:export')")
|
||||
@PreAuthorize("@ss.hasPermission('smartfactory:camera-device:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportCameraDeviceExcel(@Valid CameraDevicePageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
@ -1,7 +1,6 @@
|
||||
package cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo;
|
||||
package cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
@ -1,10 +1,8 @@
|
||||
package cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo;
|
||||
package cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
@ -1,10 +1,9 @@
|
||||
package cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo;
|
||||
package cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import java.util.*;
|
||||
|
||||
@Schema(description = "管理后台 - 设备-监控摄像头新增/修改 Request VO")
|
||||
@Data
|
@ -1,10 +1,10 @@
|
||||
package cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.util.*;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Schema(description = "管理后台 - 工厂信息新增/修改 Request VO")
|
||||
@ -22,7 +22,7 @@ public class FactoryInfoSaveReqVO {
|
||||
@NotEmpty(message = "工厂简称不能为空")
|
||||
private String shortName;
|
||||
|
||||
@Schema(description = "工厂类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@Schema(description = "工厂类型 | 字典值 参考 sf_factory_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotEmpty(message = "工厂类型不能为空")
|
||||
private String type;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package cn.iocoder.yudao.module.device.dal.dataobject.cameradevice;
|
||||
package cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
@ -47,6 +47,7 @@ public class FactoryInfoDO extends BaseDO {
|
||||
private String shortName;
|
||||
/**
|
||||
* 工厂类型
|
||||
* 字典值 参考 sf_factory_type
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
|
@ -1,13 +1,11 @@
|
||||
package cn.iocoder.yudao.module.device.dal.mysql.cameradevice;
|
||||
|
||||
import java.util.*;
|
||||
package cn.iocoder.yudao.module.smartfactory.dal.mysql.device.cameradevice;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.device.dal.dataobject.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice.CameraDeviceDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo.*;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.*;
|
||||
|
||||
/**
|
||||
* 设备-监控摄像头 Mapper
|
@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataDetailRespVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataPageReqVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataTotalVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
||||
@ -21,7 +21,7 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface FactoryDataMapper extends BaseMapperX<FactoryDataDO> {
|
||||
|
||||
IPage<FactoryDataDetailRespVO> selectDetailPage(@Param("page") IPage<FactoryDataDetailRespVO> mpPage, @Param("reqVO") FactoryDataPageReqVO pageReqVO);
|
||||
IPage<FactoryDataInfoRespVO> selectDetailPage(@Param("page") IPage<FactoryDataInfoRespVO> mpPage, @Param("reqVO") FactoryDataPageReqVO pageReqVO);
|
||||
|
||||
default FactoryDataDO selectListByType(Long factoryId, LocalDate date, Integer type) {
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
package cn.iocoder.yudao.module.device.service.cameradevice;
|
||||
package cn.iocoder.yudao.module.smartfactory.service.device.cameradevice;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo.*;
|
||||
import cn.iocoder.yudao.module.device.dal.dataobject.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.*;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 设备-监控摄像头 Service 接口
|
@ -1,11 +1,11 @@
|
||||
package cn.iocoder.yudao.module.device.service.cameradevice;
|
||||
package cn.iocoder.yudao.module.smartfactory.service.device.cameradevice;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo.CameraDevicePageReqVO;
|
||||
import cn.iocoder.yudao.module.device.controller.admin.cameradevice.vo.CameraDeviceSaveReqVO;
|
||||
import cn.iocoder.yudao.module.device.dal.dataobject.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.device.dal.mysql.cameradevice.CameraDeviceMapper;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.CameraDevicePageReqVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.device.cameradevice.vo.CameraDeviceSaveReqVO;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.device.cameradevice.CameraDeviceDO;
|
||||
import cn.iocoder.yudao.module.smartfactory.dal.mysql.device.cameradevice.CameraDeviceMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
@ -175,53 +175,19 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
public PageResult<FactoryDataDetailRespVO> getDataPage(FactoryDataPageReqVO pageReqVO) {
|
||||
|
||||
//获得 出入库数据分页列表
|
||||
IPage<FactoryDataDetailRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO);
|
||||
IPage<FactoryDataDetailRespVO> page = dataMapper.selectDetailPage(mpPage, pageReqVO);
|
||||
PageResult<FactoryDataDetailRespVO> dataPage = new PageResult<>(page.getRecords(), page.getTotal());
|
||||
IPage<FactoryDataInfoRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO);
|
||||
IPage<FactoryDataInfoRespVO> page = dataMapper.selectDetailPage(mpPage, pageReqVO);
|
||||
|
||||
//获得 入库数、打包破损、入库破损、出库数、出库破损的工厂规格数据
|
||||
List<FactoryDataInfoRespVO> infoDatas = dataSizeService.getDetailList(pageReqVO.getFactoryId(), pageReqVO.getDate(), pageReqVO.getCreateTime());
|
||||
|
||||
List<FactoryDataDetailRespVO> respVOS = dataPage.getList();
|
||||
List<FactoryDataInfoRespVO> respVOS = page.getRecords();
|
||||
List<FactoryDataDetailRespVO> toDayData = new ArrayList<>();
|
||||
if (!respVOS.isEmpty()) {
|
||||
|
||||
//获得工厂信息列表
|
||||
List<Long> factoryIdS = respVOS.stream().map(FactoryDataDetailRespVO::getFactoryId).collect(Collectors.toList());
|
||||
List<FactoryInfoDO> factoryInfoDOS = factoryInfoService.getFactoryList(factoryIdS);
|
||||
Map<Long, FactoryInfoDO> factoryMap = convertMap(factoryInfoDOS, FactoryInfoDO::getId);
|
||||
|
||||
respVOS.forEach(items -> {
|
||||
|
||||
//规格明细数据
|
||||
List<FactoryDataInfoRespVO> infoList = infoDatas.stream()
|
||||
.filter(data -> data.getFactoryId().equals(items.getFactoryId()) && data.getDate().equals(items.getDate()))
|
||||
.collect(Collectors.toList());
|
||||
infoList.forEach(info -> {
|
||||
int num = Optional.ofNullable(info.getNum()).orElse(0);
|
||||
int autoNum = Optional.ofNullable(info.getAutoNum()).orElse(0);
|
||||
int inNum = Optional.ofNullable(info.getInNum()).orElse(0);
|
||||
info.setInNum((num + autoNum + inNum) == 0 ? null : (num + autoNum + inNum));
|
||||
});
|
||||
|
||||
items.setItems(infoList);
|
||||
items.setFactoryName(factoryMap.get(items.getFactoryId()).getName());
|
||||
|
||||
//移除 已处理过的数据
|
||||
infoDatas.removeAll(infoList);
|
||||
});
|
||||
}else {
|
||||
respVOS = new ArrayList<>();
|
||||
}
|
||||
|
||||
List<FactoryDataDetailRespVO> toDayData = new ArrayList<>();
|
||||
// 展示当天录入的数据
|
||||
if (!infoDatas.isEmpty()) {
|
||||
|
||||
// 按 工厂id和日期 进行分组
|
||||
Map<Long, Map<LocalDate, List<FactoryDataInfoRespVO>>> groupedByFactoryIdAndDate = infoDatas.stream()
|
||||
Map<Long, Map<LocalDate, List<FactoryDataInfoRespVO>>> groupedByFactoryIdAndDate = respVOS.stream()
|
||||
.collect(Collectors.groupingBy(FactoryDataInfoRespVO::getFactoryId,
|
||||
Collectors.groupingBy(FactoryDataInfoRespVO::getDate)));
|
||||
|
||||
//获得工厂信息列表
|
||||
Map<Long, FactoryInfoDO> factoryMaps = convertMap(factoryInfoService.getFactoryList(groupedByFactoryIdAndDate.keySet())
|
||||
, FactoryInfoDO::getId);
|
||||
groupedByFactoryIdAndDate.forEach((factoryId, dateMap) -> {
|
||||
@ -277,11 +243,9 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
toDayData.add(dataDetailRespVO);
|
||||
});
|
||||
});
|
||||
respVOS.addAll(0, toDayData);
|
||||
dataPage.setTotal((long) respVOS.size());
|
||||
}
|
||||
|
||||
return new PageResult<>(respVOS, dataPage.getTotal());
|
||||
return new PageResult<>(toDayData, page.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -323,6 +287,7 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
}
|
||||
|
||||
FactoryImportRespVO respVO = FactoryImportRespVO.builder().createUsernames(new ArrayList<>()).updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
|
||||
|
||||
list.forEach(data -> {
|
||||
|
||||
//校验,判断是否有不符合的原因
|
||||
@ -331,7 +296,7 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
factoryId = validateFactoryForCreate(data.getFactoryName(), data.getSizeName(), data.getDate());
|
||||
} catch (ServiceException ex) {
|
||||
|
||||
respVO.getFailureUsernames().put(data.getFactoryName(), ex.getMessage());
|
||||
respVO.getFailureUsernames().put(data.getFactoryName() + "-" + data.getDate(), ex.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
@ -373,13 +338,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
List<FactoryDataSizeDO> factoryDataSizeDOs = new ArrayList<>();
|
||||
if (data.getInDamageNum() != null || data.getInNum() != null || data.getOutNum() != null) {
|
||||
|
||||
if (data.getInDamageNum() != null) {
|
||||
if (data.getInDamageNum() != null && data.getInDamageNum() != 0) {
|
||||
|
||||
FactoryDataSizeDO dataSizeDO = new FactoryDataSizeDO();
|
||||
//设置规格信息
|
||||
dataSizeDO.setSizeId(sizeId);
|
||||
dataSizeDO.setSizeName(sizeName);
|
||||
dataSizeDO.setSizePieces(packageDO == null ? null : packageDO.getSizePieces());
|
||||
// dataSizeDO.setSizePieces(packageDO == null ? null : packageDO.getSizePieces());
|
||||
//设置工厂和日期
|
||||
dataSizeDO.setFactoryId(factoryId);
|
||||
dataSizeDO.setDate(data.getDate());
|
||||
@ -390,13 +355,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
factoryDataSizeDOs.add(dataSizeDO);
|
||||
}
|
||||
|
||||
if (data.getInNum() != null) {
|
||||
if (data.getInNum() != null && data.getInNum() != 0) {
|
||||
|
||||
FactoryDataSizeDO dataSizeDO = new FactoryDataSizeDO();
|
||||
//设置规格信息
|
||||
dataSizeDO.setSizeId(sizeId);
|
||||
dataSizeDO.setSizeName(sizeName);
|
||||
dataSizeDO.setSizePieces(packageDO == null ? null : packageDO.getSizePieces());
|
||||
// dataSizeDO.setSizePieces(packageDO == null ? null : packageDO.getSizePieces());
|
||||
//设置工厂和日期
|
||||
dataSizeDO.setFactoryId(factoryId);
|
||||
dataSizeDO.setDate(data.getDate());
|
||||
@ -407,7 +372,7 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
factoryDataSizeDOs.add(dataSizeDO);
|
||||
}
|
||||
|
||||
if (data.getOutNum() != null) {
|
||||
if (data.getOutNum() != null && data.getOutNum() != 0) {
|
||||
|
||||
FactoryDataSizeDO dataSizeDO = new FactoryDataSizeDO();
|
||||
//设置规格信息
|
||||
@ -423,7 +388,7 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
factoryDataSizeDOs.add(dataSizeDO);
|
||||
}
|
||||
|
||||
if (data.getOutDamageNum() != null) {
|
||||
if (data.getOutDamageNum() != null && data.getOutDamageNum() != 0) {
|
||||
|
||||
FactoryDataSizeDO dataSizeDO = new FactoryDataSizeDO();
|
||||
//设置规格信息
|
||||
@ -442,7 +407,7 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
factoryDataSizeMapper.insertBatch(factoryDataSizeDOs);
|
||||
}
|
||||
|
||||
respVO.getCreateUsernames().add(data.getFactoryName());
|
||||
respVO.getCreateUsernames().add(data.getFactoryName() + "-" + data.getDate());
|
||||
});
|
||||
|
||||
return respVO;
|
||||
|
@ -48,6 +48,13 @@ public interface FactoryInfoService {
|
||||
*/
|
||||
FactoryInfoDO getFactoryInfo(Long id);
|
||||
|
||||
/**
|
||||
* 获得工厂信息列表
|
||||
*
|
||||
* @return 工厂信息
|
||||
*/
|
||||
List<FactoryInfoDO> getFactoryList();
|
||||
|
||||
/**
|
||||
* 获得工厂信息列表
|
||||
*
|
||||
|
@ -122,6 +122,12 @@ public class FactoryInfoServiceImpl implements FactoryInfoService {
|
||||
return factoryInfoMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FactoryInfoDO> getFactoryList() {
|
||||
|
||||
return factoryInfoMapper.selectList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FactoryInfoDO> getFactoryList(Collection<Long> ids) {
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.iocoder.yudao.module.device.dal.mysql.cameradevice.CameraDeviceMapper">
|
||||
<mapper namespace="cn.iocoder.yudao.module.smartfactory.dal.mysql.device.cameradevice.CameraDeviceMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
|
@ -9,42 +9,129 @@
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<select id="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataDetailRespVO">
|
||||
<select id="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO">
|
||||
SELECT
|
||||
factory_id,
|
||||
date,
|
||||
SUM(CASE WHEN data_type = 2 THEN total_num END) AS inTotalNum,
|
||||
SUM(CASE WHEN data_type = 1 THEN square_num END) AS squareNum,
|
||||
SUM(CASE WHEN data_type = 1 THEN total_num END) AS outTotalNum,
|
||||
SUM(CASE WHEN data_type = 1 or data_type = 2 THEN damage_num END) AS damageNum
|
||||
a.id AS id,
|
||||
a.factory_id AS factoryId,
|
||||
a.package_name AS packageName,
|
||||
a.package_date AS date,
|
||||
a.size_id AS sizeId,
|
||||
a.size_name AS sizeName,
|
||||
a.size_pieces AS sizePieces,
|
||||
a.num AS num,
|
||||
a.auto_num AS autoNum,
|
||||
a.square_num AS squareNum,
|
||||
a.damage_num AS damageNum,
|
||||
b.inNumId,
|
||||
b.inNum,
|
||||
b.inDamageNumId,
|
||||
b.inDamageNum,
|
||||
b.outNumId,
|
||||
b.outNum,
|
||||
b.outDamageNumId,
|
||||
b.outDamageNum
|
||||
FROM
|
||||
sf_factory_data
|
||||
sf_package_data a
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
factory_id,
|
||||
date,
|
||||
size_pieces,
|
||||
MAX( CASE WHEN type = 4 THEN id END ) AS inNumId,
|
||||
MAX( CASE WHEN type = 4 THEN num END ) AS inNum,
|
||||
MAX( CASE WHEN type = 1 THEN id END ) AS inDamageNumId,
|
||||
MAX( CASE WHEN type = 1 THEN num END ) AS inDamageNum,
|
||||
MAX( CASE WHEN type = 2 THEN id END ) AS outNumId,
|
||||
MAX( CASE WHEN type = 2 THEN num END ) AS outNum,
|
||||
MAX( CASE WHEN type = 3 THEN id END ) AS outDamageNumId,
|
||||
MAX( CASE WHEN type = 3 THEN num END ) AS outDamageNum
|
||||
FROM
|
||||
sf_factory_data_size
|
||||
GROUP BY
|
||||
factory_id,
|
||||
date,
|
||||
size_pieces
|
||||
) b
|
||||
ON a.factory_id = b.factory_id
|
||||
AND a.package_date = b.date
|
||||
and a.size_pieces = b.size_pieces
|
||||
<where>
|
||||
deleted = 0
|
||||
a.deleted = 0
|
||||
<if test="reqVO.factoryId != null">
|
||||
AND factory_id = #{reqVO.factoryId}
|
||||
</if>
|
||||
<if test="reqVO.dataType != null">
|
||||
AND data_type = #{reqVO.dataType}
|
||||
AND a.factory_id = #{reqVO.factoryId}
|
||||
</if>
|
||||
<if test="reqVO.date != null and reqVO.date.length > 0">
|
||||
<if test="reqVO.date[0] != null">
|
||||
AND date >= #{reqVO.date[0]}
|
||||
AND a.package_date >= #{reqVO.date[0]}
|
||||
</if>
|
||||
<if test="reqVO.date[1] != null">
|
||||
AND date <= #{reqVO.date[1]}
|
||||
AND a.package_date <= #{reqVO.date[1]}
|
||||
</if>
|
||||
</if>
|
||||
<if test="reqVO.createTime != null and reqVO.createTime.length > 0">
|
||||
<if test="reqVO.createTime[0] != null">
|
||||
AND create_time >= #{reqVO.createTime[0]}
|
||||
AND a.create_time >= #{reqVO.createTime[0]}
|
||||
</if>
|
||||
<if test="reqVO.createTime[1] != null">
|
||||
AND create_time <= #{reqVO.createTime[1]}
|
||||
AND a.create_time <= #{reqVO.createTime[1]}
|
||||
</if>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY factory_id,date
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
NULL AS id,
|
||||
c.factory_id AS factoryId,
|
||||
NULL AS packageName,
|
||||
c.date AS date,
|
||||
c.size_id AS sizeId,
|
||||
c.size_name AS sizeName,
|
||||
NULL AS sizePieces,
|
||||
NULL AS num,
|
||||
NULL AS autoNum,
|
||||
NULL AS squareNum,
|
||||
NULL AS damageNum,
|
||||
MAX(CASE WHEN c.type = 4 THEN c.id END) AS inNumId,
|
||||
MAX(CASE WHEN c.type = 4 THEN c.num END) AS inNum,
|
||||
MAX(CASE WHEN c.type = 1 THEN c.id END) AS inDamageNumId,
|
||||
MAX(CASE WHEN c.type = 1 THEN c.num END) AS inDamageNum,
|
||||
MAX(CASE WHEN c.type = 2 THEN c.id END) AS outNumId,
|
||||
MAX(CASE WHEN c.type = 2 THEN c.num END) AS outNum,
|
||||
MAX(CASE WHEN c.type = 3 THEN c.id END) AS outDamageNumId,
|
||||
MAX(CASE WHEN c.type = 3 THEN c.num END) AS outDamageNum
|
||||
FROM
|
||||
sf_factory_data_size AS c
|
||||
WHERE
|
||||
NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sf_package_data
|
||||
WHERE
|
||||
size_id = c.size_id
|
||||
AND size_pieces = c.size_pieces
|
||||
AND package_date = c.date
|
||||
)
|
||||
AND c.deleted = 0
|
||||
<if test="reqVO.factoryId != null">
|
||||
AND c.factory_id = #{reqVO.factoryId}
|
||||
</if>
|
||||
<if test="reqVO.date != null and reqVO.date.length > 0">
|
||||
<if test="reqVO.date[0] != null">
|
||||
AND c.date >= #{reqVO.date[0]}
|
||||
</if>
|
||||
<if test="reqVO.date[1] != null">
|
||||
AND c.date <= #{reqVO.date[1]}
|
||||
</if>
|
||||
</if>
|
||||
<if test="reqVO.createTime != null and reqVO.createTime.length > 0">
|
||||
<if test="reqVO.createTime[0] != null">
|
||||
AND c.create_time >= #{reqVO.createTime[0]}
|
||||
</if>
|
||||
<if test="reqVO.createTime[1] != null">
|
||||
AND c.create_time <= #{reqVO.createTime[1]}
|
||||
</if>
|
||||
</if>
|
||||
GROUP BY c.factory_id,c.date,c.size_id,c.size_name
|
||||
ORDER BY date DESC
|
||||
</select>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user