工作日志模块调整和智能工厂模块增强
- 在工作日志模块中,修改了日志实例控制器、映射器和VO类,以支持新的查询条件和日期格式。 - 在智能工厂模块中,添加了新的控制器方法和VO类,以支持获取各个工厂的出入库数据总数和指定工厂指定日期的出入库规格明细详情。- 对应更新了相关服务和数据访问对象,以支持新增的业务逻辑。 - 重构了一些代码,以提高代码质量和可维护性。
This commit is contained in:
parent
156d1f4244
commit
3256852a64
@ -118,7 +118,6 @@ public class LogInstanceController {
|
|||||||
return success(logInstance);
|
return success(logInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/getNextOrUp")
|
@PostMapping("/getNextOrUp")
|
||||||
@Operation(summary = "获取上一篇下一篇日志")
|
@Operation(summary = "获取上一篇下一篇日志")
|
||||||
public CommonResult<LogInstanceNextOrUpVO> getNextOrUp(@RequestBody LogInstancePageReqVO dto,
|
public CommonResult<LogInstanceNextOrUpVO> getNextOrUp(@RequestBody LogInstancePageReqVO dto,
|
||||||
|
@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ public class LogInstancePageReqVO extends PageParam {
|
|||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDate[] createTime;
|
||||||
|
|
||||||
@Schema(description = "已读、未读 | 0:未读、1:已读", example = "0")
|
@Schema(description = "已读、未读 | 0:未读、1:已读", example = "0")
|
||||||
private Integer readStatus;
|
private Integer readStatus;
|
||||||
|
@ -29,7 +29,6 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -280,6 +279,9 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
JSONObject workLogContentJson = new JSONObject(item.getFormVariables());
|
JSONObject workLogContentJson = new JSONObject(item.getFormVariables());
|
||||||
for (String fieldItem : fields) {
|
for (String fieldItem : fields) {
|
||||||
JSONObject fieldJson = new JSONObject(fieldItem);
|
JSONObject fieldJson = new JSONObject(fieldItem);
|
||||||
|
if ("upload".equals(fieldJson.getStr("type"))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String fieldStr = fieldJson.getStr("field");
|
String fieldStr = fieldJson.getStr("field");
|
||||||
String title = fieldJson.getStr("title");
|
String title = fieldJson.getStr("title");
|
||||||
String field = workLogContentJson.getStr(fieldStr);
|
String field = workLogContentJson.getStr(fieldStr);
|
||||||
|
@ -110,7 +110,7 @@
|
|||||||
<where>
|
<where>
|
||||||
a.deleted = 0
|
a.deleted = 0
|
||||||
<if test="reqVO.type != null">
|
<if test="reqVO.type != null">
|
||||||
and a.type = #{reqVO.type}
|
and a.form_id = #{reqVO.formId}
|
||||||
</if>
|
</if>
|
||||||
<if test="reqVO.deptId != null">
|
<if test="reqVO.deptId != null">
|
||||||
and a.dept_id = #{reqVO.deptId}
|
and a.dept_id = #{reqVO.deptId}
|
||||||
@ -120,10 +120,10 @@
|
|||||||
</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 a.create_time >= #{reqVO.createTime[0]}
|
and a.time >= #{reqVO.createTime[0]}
|
||||||
</if>
|
</if>
|
||||||
<if test="reqVO.createTime[1] != null">
|
<if test="reqVO.createTime[1] != null">
|
||||||
and a.create_time <= #{reqVO.createTime[1]}
|
and a.time <= #{reqVO.createTime[1]}
|
||||||
</if>
|
</if>
|
||||||
</if>
|
</if>
|
||||||
<if test="reqVO.readStatus != null">
|
<if test="reqVO.readStatus != null">
|
||||||
|
@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
|||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizeRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeTotalVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO;
|
||||||
@ -29,6 +29,9 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.time.DayOfWeek;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -110,6 +113,11 @@ public class FactoryDataController {
|
|||||||
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
||||||
public CommonResult<FactoryDataTotalVO> getDataTotal(@Valid FactoryDataPageReqVO pageReqVO) {
|
public CommonResult<FactoryDataTotalVO> getDataTotal(@Valid FactoryDataPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
if (pageReqVO.getDateType() != null) {
|
||||||
|
// 设置日期
|
||||||
|
setDate(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
FactoryDataTotalVO dataTotalVO = dataService.getDataTotal(pageReqVO.getFactoryId(), pageReqVO.getDate());
|
FactoryDataTotalVO dataTotalVO = dataService.getDataTotal(pageReqVO.getFactoryId(), pageReqVO.getDate());
|
||||||
if (dataTotalVO == null) {
|
if (dataTotalVO == null) {
|
||||||
dataTotalVO = new FactoryDataTotalVO();
|
dataTotalVO = new FactoryDataTotalVO();
|
||||||
@ -121,10 +129,32 @@ public class FactoryDataController {
|
|||||||
return success(dataTotalVO);
|
return success(dataTotalVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get-totalByFactory")
|
||||||
|
@Operation(summary = "获得各个工厂出入库数据总数 | 入库总数、出库总数、破损总数")
|
||||||
|
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
||||||
|
public CommonResult<List<FactoryDataTotalVO>> getDataTotalByFactory() {
|
||||||
|
|
||||||
|
return success(dataService.getDataTotalByFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getSizeTotalByFactory")
|
||||||
|
@Operation(summary = "获得指定工厂指定日期内,出入库规格明细详情")
|
||||||
|
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
||||||
|
public CommonResult<List<FactoryDataSizeTotalVO>> getSizeTotalByFactory(@Valid FactoryDataPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
if (pageReqVO.getDateType() != null) {
|
||||||
|
// 设置日期
|
||||||
|
setDate(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
return success(factoryDataSizeService.getSizeTotalByFactory(pageReqVO.getFactoryId(), pageReqVO.getDate()));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得工厂出库入库数据分页")
|
@Operation(summary = "获得工厂出库入库数据分页")
|
||||||
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
@PreAuthorize("@ss.hasPermission('smartfactory:factory-data:query')")
|
||||||
public CommonResult<PageResult<FactoryDataDetailRespVO>> getDataPage(@Valid FactoryDataPageReqVO pageReqVO) {
|
public CommonResult<PageResult<FactoryDataDetailRespVO>> getDataPage(@Valid FactoryDataPageReqVO pageReqVO) {
|
||||||
|
|
||||||
PageResult<FactoryDataDetailRespVO> pageResult = dataService.getDataPage(pageReqVO);
|
PageResult<FactoryDataDetailRespVO> pageResult = dataService.getDataPage(pageReqVO);
|
||||||
return success(pageResult);
|
return success(pageResult);
|
||||||
}
|
}
|
||||||
@ -190,4 +220,40 @@ public class FactoryDataController {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return success(dataService.importUserList(list, type));
|
return success(dataService.importUserList(list, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDate(FactoryDataPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
|
||||||
|
// dateType = 1 为昨日数据
|
||||||
|
if (pageReqVO.getDateType() == 1) {
|
||||||
|
|
||||||
|
// 设置日期
|
||||||
|
pageReqVO.setDate(new LocalDate[]{today.minusDays(1), today.minusDays(1)});
|
||||||
|
}
|
||||||
|
// dateType = 2 为本周数据
|
||||||
|
if (pageReqVO.getDateType() == 2) {
|
||||||
|
|
||||||
|
// 获取本周的周一
|
||||||
|
LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
|
||||||
|
|
||||||
|
// 获取本周的周日
|
||||||
|
LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
|
||||||
|
|
||||||
|
// 设置日期
|
||||||
|
pageReqVO.setDate(new LocalDate[]{startOfWeek, endOfWeek});
|
||||||
|
}
|
||||||
|
// dateType = 3 为本月数据
|
||||||
|
if (pageReqVO.getDateType() == 3) {
|
||||||
|
|
||||||
|
// 获取本月的第一天
|
||||||
|
LocalDate startOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
|
||||||
|
|
||||||
|
// 获取本月的最后一天
|
||||||
|
LocalDate endOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
|
||||||
|
|
||||||
|
// 设置日期
|
||||||
|
pageReqVO.setDate(new LocalDate[]{startOfMonth, endOfMonth});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -30,6 +30,9 @@ public class FactoryDataPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||||
private LocalDate[] date;
|
private LocalDate[] date;
|
||||||
|
|
||||||
|
@Schema(description = "时间类型 | 1日 2周 3月", example = "1")
|
||||||
|
private Integer dateType;
|
||||||
|
|
||||||
@Schema(description = "总箱数")
|
@Schema(description = "总箱数")
|
||||||
private Integer totalNum;
|
private Integer totalNum;
|
||||||
|
|
||||||
|
@ -7,6 +7,12 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class FactoryDataTotalVO {
|
public class FactoryDataTotalVO {
|
||||||
|
|
||||||
|
@Schema(description = "工厂id")
|
||||||
|
private Long factoryId;
|
||||||
|
|
||||||
|
@Schema(description = "工厂名称")
|
||||||
|
private String factoryName;
|
||||||
|
|
||||||
@Schema(description = "入库总数")
|
@Schema(description = "入库总数")
|
||||||
private Integer inTotal;
|
private Integer inTotal;
|
||||||
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
package cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 工厂出库入库数据 总览 Request VO")
|
||||||
|
@Data
|
||||||
|
public class FactoryDataSizeTotalVO {
|
||||||
|
|
||||||
|
@Schema(description = "工厂id")
|
||||||
|
private Long factoryId;
|
||||||
|
|
||||||
|
@Schema(description = "规格名称")
|
||||||
|
private String sizeName;
|
||||||
|
|
||||||
|
@Schema(description = "入库总数")
|
||||||
|
private Integer inTotal;
|
||||||
|
|
||||||
|
@Schema(description = "出库总数")
|
||||||
|
private Integer outTotal;
|
||||||
|
|
||||||
|
@Schema(description = "破损总数")
|
||||||
|
private Integer damageNum;
|
||||||
|
}
|
@ -1,14 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata;
|
package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
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.FactoryDataInfoRespVO;
|
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;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -43,5 +40,5 @@ public interface FactoryDataMapper extends BaseMapperX<FactoryDataDO> {
|
|||||||
|
|
||||||
FactoryDataTotalVO selectDataSum(@Param("factoryId") Long factoryId, @Param("date") LocalDate[] date);
|
FactoryDataTotalVO selectDataSum(@Param("factoryId") Long factoryId, @Param("date") LocalDate[] date);
|
||||||
|
|
||||||
|
List<FactoryDataTotalVO> selectDataSumByFactory();
|
||||||
}
|
}
|
@ -1,10 +1,9 @@
|
|||||||
package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata;
|
package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
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.FactoryDataInfoRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
||||||
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeTotalVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -54,4 +53,7 @@ public interface FactoryDataSizeMapper extends BaseMapperX<FactoryDataSizeDO> {
|
|||||||
|
|
||||||
List<FactoryDataSizeDO> selectLastSize(@Param("factoryId") Long factoryId,
|
List<FactoryDataSizeDO> selectLastSize(@Param("factoryId") Long factoryId,
|
||||||
@Param("types") List<Integer> types);
|
@Param("types") List<Integer> types);
|
||||||
|
|
||||||
|
List<FactoryDataSizeTotalVO> selectSizeDataSumByFactory(@Param("factoryId") Long factoryId,
|
||||||
|
@Param("date") LocalDate[] date);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*;
|
|||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@ -65,7 +64,11 @@ public interface FactoryDataService {
|
|||||||
*/
|
*/
|
||||||
FactoryDataTotalVO getDataTotal(Long factoryId, LocalDate[] date);
|
FactoryDataTotalVO getDataTotal(Long factoryId, LocalDate[] date);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得各个工厂出入库数据总数
|
||||||
|
* @return 总数列表
|
||||||
|
*/
|
||||||
|
List<FactoryDataTotalVO> getDataTotalByFactory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当天的所有数据
|
* 获取当天的所有数据
|
||||||
|
@ -11,18 +11,13 @@ import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*;
|
|||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeSaveReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.packagedata.vo.PackageDataCreateReqVO;
|
|
||||||
import cn.iocoder.yudao.module.smartfactory.convert.packageData.PackageDataConvert;
|
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.packagedata.PackageDataDO;
|
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataMapper;
|
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataMapper;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataSizeMapper;
|
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataSizeMapper;
|
||||||
import cn.iocoder.yudao.module.smartfactory.framework.util.StringUtil;
|
import cn.iocoder.yudao.module.smartfactory.framework.util.StringUtil;
|
||||||
import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService;
|
import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService;
|
||||||
import cn.iocoder.yudao.module.smartfactory.service.packageInfo.PackageService;
|
|
||||||
import cn.iocoder.yudao.module.smartfactory.service.packagedata.PackageDataService;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -228,6 +223,12 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
|||||||
return dataMapper.selectDataSum(factoryId, date) == null ? new FactoryDataTotalVO() : dataMapper.selectDataSum(factoryId, date);
|
return dataMapper.selectDataSum(factoryId, date) == null ? new FactoryDataTotalVO() : dataMapper.selectDataSum(factoryId, date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FactoryDataTotalVO> getDataTotalByFactory() {
|
||||||
|
|
||||||
|
return dataMapper.selectDataSumByFactory();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FactoryDataDO> getTodayInboundAndOutboundOverview(Date time) {
|
public List<FactoryDataDO> getTodayInboundAndOutboundOverview(Date time) {
|
||||||
String timeStr = null;
|
String timeStr = null;
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.smartfactory.service.factorydata;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeTotalVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
@ -59,4 +60,12 @@ public interface FactoryDataSizeService {
|
|||||||
* @return 规格详情列表
|
* @return 规格详情列表
|
||||||
*/
|
*/
|
||||||
List<FactoryDataSizeDO> getLastSize(Long factoryId, List<Integer> dataTypes);
|
List<FactoryDataSizeDO> getLastSize(Long factoryId, List<Integer> dataTypes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定工厂指定日期内,出入库规格明细详情
|
||||||
|
* @param factoryId 工厂编号
|
||||||
|
* @param date 日期
|
||||||
|
* @return 出入库规格明细详情
|
||||||
|
*/
|
||||||
|
List<FactoryDataSizeTotalVO> getSizeTotalByFactory(Long factoryId, LocalDate[] date);
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeSaveReqVO;
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeTotalVO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
|
||||||
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataSizeMapper;
|
import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorydata.FactoryDataSizeMapper;
|
||||||
@ -312,4 +313,10 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
|
|||||||
|
|
||||||
return factoryDataSizeMapper.selectLastSize(factoryId, dataTypes);
|
return factoryDataSizeMapper.selectLastSize(factoryId, dataTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FactoryDataSizeTotalVO> getSizeTotalByFactory(Long factoryId, LocalDate[] date) {
|
||||||
|
|
||||||
|
return factoryDataSizeMapper.selectSizeDataSumByFactory(factoryId, date);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,43 +11,43 @@
|
|||||||
|
|
||||||
<select id="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO">
|
<select id="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataInfoRespVO">
|
||||||
SELECT
|
SELECT
|
||||||
c.factory_id AS factoryId,
|
c.factory_id AS factoryId,
|
||||||
c.date AS date,
|
c.date AS date,
|
||||||
c.size_id AS sizeId,
|
c.size_id AS sizeId,
|
||||||
c.size_name AS sizeName,
|
c.size_name AS sizeName,
|
||||||
MAX(CASE WHEN c.type = 4 THEN c.id END) AS inNumId,
|
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 = 4 THEN c.num END) AS inNum,
|
||||||
MAX(CASE WHEN c.type = 4 THEN c.square_num END) AS squareNum,
|
MAX(CASE WHEN c.type = 4 THEN c.square_num END) AS squareNum,
|
||||||
MAX(CASE WHEN c.type = 1 THEN c.id END) AS inDamageNumId,
|
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 = 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.id END) AS outNumId,
|
||||||
MAX(CASE WHEN c.type = 2 THEN c.num END) AS outNum,
|
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.id END) AS outDamageNumId,
|
||||||
MAX(CASE WHEN c.type = 3 THEN c.num END) AS outDamageNum,
|
MAX(CASE WHEN c.type = 3 THEN c.num END) AS outDamageNum,
|
||||||
MAX(c.create_time) AS createTime
|
MAX(c.create_time) AS createTime
|
||||||
FROM
|
FROM
|
||||||
sf_factory_data_size AS c
|
sf_factory_data_size AS c
|
||||||
WHERE
|
WHERE
|
||||||
c.deleted = 0
|
c.deleted = 0
|
||||||
<if test="reqVO.factoryId != null">
|
<if test="reqVO.factoryId != null">
|
||||||
AND c.factory_id = #{reqVO.factoryId}
|
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>
|
||||||
<if test="reqVO.date[1] != null">
|
<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]}
|
AND c.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 c.create_time >= #{reqVO.createTime[0]}
|
||||||
AND c.create_time >= #{reqVO.createTime[0]}
|
</if>
|
||||||
|
<if test="reqVO.createTime[1] != null">
|
||||||
|
AND c.create_time <= #{reqVO.createTime[1]}
|
||||||
|
</if>
|
||||||
</if>
|
</if>
|
||||||
<if test="reqVO.createTime[1] != null">
|
|
||||||
AND c.create_time <= #{reqVO.createTime[1]}
|
|
||||||
</if>
|
|
||||||
</if>
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
c.factory_id,
|
c.factory_id,
|
||||||
c.date,
|
c.date,
|
||||||
@ -70,13 +70,30 @@
|
|||||||
<if test="factoryId != null">
|
<if test="factoryId != null">
|
||||||
AND factory_id = #{factoryId}
|
AND factory_id = #{factoryId}
|
||||||
</if>
|
</if>
|
||||||
<if test="date != null and date.length > 0">
|
<if test="date != null and date.length > 0">
|
||||||
<if test="date[0] != null">
|
<if test="date[0] != null">
|
||||||
AND date >= #{date[0]}
|
AND date >= #{date[0]}
|
||||||
|
</if>
|
||||||
|
<if test="date[1] != null">
|
||||||
|
AND date <= #{date[1]}
|
||||||
|
</if>
|
||||||
</if>
|
</if>
|
||||||
<if test="date[1] != null">
|
</select>
|
||||||
AND date <= #{date[1]}
|
|
||||||
</if>
|
<select id="selectDataSumByFactory" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataTotalVO">
|
||||||
</if>
|
SELECT
|
||||||
|
a.factory_id AS factoryId,
|
||||||
|
b.short_name AS factoryName,
|
||||||
|
SUM( CASE WHEN a.data_type = 2 THEN IFNULL( a.total_num, 0 ) END ) AS inTotal,
|
||||||
|
SUM( CASE WHEN a.data_type = 1 THEN IFNULL( a.total_num, 0 ) END ) AS outTotal,
|
||||||
|
SUM( CASE WHEN a.data_type = 1 OR a.data_type = 2 THEN IFNULL( a.damage_num, 0 ) END ) AS damageNum
|
||||||
|
FROM
|
||||||
|
sf_factory_data a,
|
||||||
|
sf_factory_info b
|
||||||
|
WHERE
|
||||||
|
a.deleted = 0
|
||||||
|
AND a.factory_id = b.id
|
||||||
|
GROUP BY
|
||||||
|
a.factory_id
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
@ -92,4 +92,35 @@
|
|||||||
#{types}
|
#{types}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectSizeDataSumByFactory" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeTotalVO">
|
||||||
|
SELECT
|
||||||
|
factory_id AS factoryId,
|
||||||
|
size_name AS sizeName,
|
||||||
|
SUM( CASE WHEN type = 4 THEN num END ) AS inTotal,
|
||||||
|
SUM( CASE WHEN type = 2 THEN num END ) AS outTotal,
|
||||||
|
IFNULL( SUM( CASE WHEN type = 1 THEN num END ), 0 ) + IFNULL( SUM( CASE WHEN type = 3 THEN num END ), 0 ) AS damageNum
|
||||||
|
FROM
|
||||||
|
sf_factory_data_size
|
||||||
|
WHERE
|
||||||
|
deleted = 0
|
||||||
|
<if test="factoryId != null">
|
||||||
|
AND factory_id = #{factoryId}
|
||||||
|
</if>
|
||||||
|
<if test="date != null and date.length > 0">
|
||||||
|
<if test="date[0] != null">
|
||||||
|
AND date >= #{date[0]}
|
||||||
|
</if>
|
||||||
|
<if test="date[1] != null">
|
||||||
|
AND date <= #{date[1]}
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
factory_id,
|
||||||
|
size_name
|
||||||
|
ORDER BY
|
||||||
|
factory_id,
|
||||||
|
size_name
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user