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