package com.vincent.rsf.server.api.controller.pda; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.api.service.MonitorService; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.FieldsUtils; import com.vincent.rsf.server.manager.controller.params.WarehouseStockParam; import com.vincent.rsf.server.manager.entity.ViewStockManage; import com.vincent.rsf.server.manager.enums.ViewStockType; import com.vincent.rsf.server.manager.service.WarehouseStockService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; import java.util.Objects; /** * 大屏 */ @RestController @RequestMapping("/monitor") public class MonitorController extends BaseController { @Autowired private MonitorService monitorService; @Autowired private WarehouseStockService warehouseStockService; /** * 获取出入库流水记录 * @return */ @PostMapping("/inOut/page") @ApiOperation("获取入出库流水记录") public R getInOutHis(@RequestBody Map param) { if (Objects.isNull(param)) { return R.error("参数不能为空!!"); } BaseParam baseParam = buildParam(param, BaseParam.class); PageParam pageParam = new PageParam<>(baseParam, ViewStockManage.class); WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class); String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType(); ViewStockManage stock = stockParam.getStock(); QueryWrapper wrapper = new QueryWrapper<>(); if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) { wrapper.groupBy("splr_id"); } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) { wrapper.groupBy("batch"); } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) { wrapper.groupBy("warehouse"); } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) { wrapper.groupBy("fields_index"); } else { wrapper.groupBy("matnr_id"); } FieldsUtils.setFieldsFilters(wrapper, pageParam, ViewStockManage.class); IPage pageResult = warehouseStockService.pageByStock(pageParam, wrapper); List records = pageResult.getRecords(); for (ViewStockManage record : records) { if (!Objects.isNull(record.getFieldsIndex())) { Map fields = FieldsUtils.getFields(record.getFieldsIndex()); record.setExtendFields(fields); } } pageResult.setRecords(records); return R.ok(pageResult); } }