rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -51,6 +51,7 @@ "man_loc_type_rela", "man_qly_inspect_result", "view_stock_manage", "view_stock_statistic", "man_transfer_order", "man_wave_order_rela" ).contains(tableName); rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/StockStatisticController.java
@@ -1,6 +1,7 @@ package com.vincent.rsf.server.manager.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; @@ -34,6 +35,64 @@ } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/outStatistic/page") public R outStatisticPage(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class); QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true); wrapper.select("id, loc_code, day_time, task_type, task_status, barcode, maktx, matnr_code, batch, SUM(anfme) AS anfme, unit, fields_index, create_time, update_time"); wrapper.groupBy("matnr_code, day_time"); return R.ok().add(stockStatisticService.page(pageParam, wrapper)); } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/inStatistic/page") public R inStatisticPage(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class); QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true); wrapper.select("id, loc_code, day_time, task_type, task_status, barcode, maktx, matnr_code, batch, SUM(anfme) AS anfme, unit, fields_index, create_time, update_time"); wrapper.groupBy("matnr_code, day_time"); return R.ok().add(stockStatisticService.page(pageParam, wrapper)); } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/inStatisticItem/page") public R inStockItemPage(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class); QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true); wrapper.select("id, loc_code, day_time, task_type, task_status, barcode, maktx, matnr_code, batch, SUM(anfme) anfme, unit, fields_index, create_by, update_by, create_time, update_time"); wrapper.groupBy("matnr_code, day_time, task_type, task_status"); return R.ok().add(stockStatisticService.page(pageParam, wrapper)); } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/outStatisticItem/page") public R outStockItemPage(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class); QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true); wrapper.select("id, loc_code, day_time, task_type, task_status, barcode, maktx, matnr_code, batch, SUM(anfme) anfme, unit, fields_index, create_by, update_by, create_time, update_time"); wrapper.groupBy("matnr_code, day_time, task_type, task_status"); return R.ok().add(stockStatisticService.page(pageParam, wrapper)); } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/statistic/num/page") public R statisticNumPage(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<StockStatistic, BaseParam> pageParam = new PageParam<>(baseParam, StockStatistic.class); QueryWrapper<StockStatistic> wrapper = pageParam.buildWrapper(true); wrapper.select("id, day_time, COUNT( barcode ) `count`, SUM( anfme ) anfme, COUNT(IF (task_type = 1, 0, NULL)) in_anfme_count, COUNT(IF ( task_type = 101, 0, NULL)) out_anfme_count, SUM(CASE WHEN task_type = 1 THEN)"); wrapper.groupBy("barcode, day_time"); return R.ok().add(stockStatisticService.page(pageParam, wrapper)); } @PreAuthorize("hasAuthority('manager:stockStatistic:list')") @PostMapping("/stockStatistic/list") public R list(@RequestBody Map<String, Object> map) { return R.ok().add(stockStatisticService.list()); rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/StockStatistic.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.vincent.rsf.server.manager.enums.TaskType; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +14,10 @@ import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.system.service.UserService; import com.vincent.rsf.server.system.entity.User; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @@ -54,8 +59,30 @@ @ApiModelProperty(value= "物料编码") private String matnrCode; @ApiModelProperty(value= "") @ApiModelProperty(value= "数量") private Long count; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date updateTime; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private String createBy; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private String updateBy; @ApiModelProperty("托盘码") private String barcode; @ApiModelProperty("库位") private String locCode; /** * 库存批次 @@ -63,7 +90,7 @@ @ApiModelProperty(value= "库存批次") private String batch; @ApiModelProperty(value= "") @ApiModelProperty(value= "数量") private Double anfme; /** @@ -87,31 +114,40 @@ this.unit = unit; } // StockStatistic stockStatistic = new StockStatistic( // null, // ID[非空] // null, // // null, // 任务类型 // null, // 任务状态 // null, // 物料名称 // null, // 物料编码 // null, // [非空] // null, // 库存批次 // null, // // null // 库存单位 // ); public Boolean getStatusBool(){ if (null == this.status){ return null; } switch (this.status){ case 1: return true; case 0: return false; default: return null; } public String getTaskType$() { return TaskType.getTypeDesc(taskType); } public String getCreateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.createBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.updateBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } } rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -28,4 +28,27 @@ this.type = Integer.parseInt(type); this.desc = desc; } public static String getTypeDesc(Integer type) { if (type == null) { return null; } if (TaskType.TASK_TYPE_IN.type.equals(type)) { return TaskType.TASK_TYPE_IN.desc; } else if (TaskType.TASK_TYPE_EMPITY_IN.type.equals(type)) { return TaskType.TASK_TYPE_EMPITY_IN.desc; } else if (TaskType.TASK_TYPE_OUT.type.equals(type)) { return TaskType.TASK_TYPE_OUT.desc; } else if (TaskType.TASK_TYPE_PICK_IN.type.equals(type)) { return TaskType.TASK_TYPE_PICK_IN.desc; } else if (TaskType.TASK_TYPE_MERGE_IN.type.equals(type)) { return TaskType.TASK_TYPE_MERGE_IN.desc; } else if (TaskType.TASK_TYPE_CHECK_IN.type.equals(type)) { return TaskType.TASK_TYPE_CHECK_IN.desc; } return null; } }