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<String, Object> param) {
|
if (Objects.isNull(param)) {
|
return R.error("参数不能为空!!");
|
}
|
BaseParam baseParam = buildParam(param, BaseParam.class);
|
PageParam<ViewStockManage, BaseParam> 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<ViewStockManage> 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<ViewStockManage> pageResult = warehouseStockService.pageByStock(pageParam, wrapper);
|
List<ViewStockManage> records = pageResult.getRecords();
|
for (ViewStockManage record : records) {
|
if (!Objects.isNull(record.getFieldsIndex())) {
|
Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
|
record.setExtendFields(fields);
|
}
|
}
|
pageResult.setRecords(records);
|
|
return R.ok(pageResult);
|
}
|
|
}
|