package com.zy.asrs.wms.controller;
|
|
import com.alibaba.fastjson.JSONArray;
|
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.zy.asrs.common.utils.TreeUtils;
|
import com.zy.asrs.common.wms.entity.LocDetl;
|
import com.zy.asrs.common.wms.entity.LocMast;
|
import com.zy.asrs.common.wms.entity.Mat;
|
import com.zy.asrs.common.wms.entity.OrderDetl;
|
import com.zy.asrs.common.wms.service.LocDetlService;
|
import com.zy.asrs.common.wms.service.LocMastService;
|
import com.zy.asrs.common.wms.service.MatService;
|
import com.zy.asrs.framework.annotations.ManagerAuth;
|
import com.zy.asrs.framework.common.Cools;
|
import com.zy.asrs.framework.common.R;
|
import com.zy.asrs.framework.domain.KeyValueVo;
|
import com.zy.asrs.framework.common.DateUtils;
|
import com.zy.asrs.common.web.BaseController;
|
import com.zy.asrs.framework.exception.CoolException;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.*;
|
|
@RestController
|
public class MatController extends BaseController {
|
|
@Autowired
|
private MatService matService;
|
@Autowired
|
private TreeUtils treeUtils;
|
@Autowired
|
private LocDetlService locDetlService;
|
@Autowired
|
private LocMastService locMastService;
|
|
@RequestMapping(value = "/mat/{id}/auth")
|
@ManagerAuth
|
public R get(@PathVariable("id") Long id) {
|
return R.ok(matService.getById(id));
|
}
|
|
@RequestMapping(value = "/mat/auth")
|
@ManagerAuth
|
public R find(@RequestParam("matnr") String matnr) {
|
Mat one = matService.getOne(new LambdaQueryWrapper<Mat>()
|
.eq(Mat::getMatnr, matnr)
|
.eq(Mat::getHostId, getHostId()));
|
if (Cools.isEmpty(one)){
|
return R.error("未查询到相关物料");
|
}
|
return R.ok(one);
|
}
|
|
@RequestMapping(value = "/mat/page/auth")
|
@ManagerAuth
|
public R page(@RequestParam(defaultValue = "1") Integer curr,
|
@RequestParam(defaultValue = "10") Integer limit,
|
@RequestParam(required = false) String condition,
|
@RequestParam(required = false) String timeRange,
|
@RequestParam Map<String, Object> param) {
|
QueryWrapper<Mat> wrapper = new QueryWrapper<>();
|
// convert(param, wrapper);
|
wrapper.eq("host_id", getHostId());
|
// if (!Cools.isEmpty(condition)) {
|
// wrapper.like(Mat::getId, condition);
|
// }
|
if (!Cools.isEmpty(timeRange)) {
|
String[] range = timeRange.split(RANGE_TIME_LINK);
|
wrapper.ge("create_time", DateUtils.convert(range[0]));
|
wrapper.le("create_time", DateUtils.convert(range[1]));
|
}
|
Object tagId = param.get("tag_id");
|
ArrayList<Long> nodes = new ArrayList<>();
|
if (Cools.isEmpty(tagId)) {
|
tagId = getOriginTag().getId();
|
}
|
treeUtils.getTagIdList(Long.parseLong(tagId.toString()), nodes);
|
wrapper.in("tag_id", nodes);
|
if (!Cools.isEmpty(param.get("matnr"))) {
|
wrapper.like("matnr", param.get("matnr"));
|
}
|
if (!Cools.isEmpty(param.get("maktx"))) {
|
wrapper.like("maktx", param.get("maktx"));
|
}
|
if (!Cools.isEmpty(param.get("decrees"))) {
|
wrapper.like("decrees", param.get("decrees"));
|
}
|
// if (!Cools.isEmpty(param.get("owner$"))) {
|
// wrapper.eq("owner", param.get("owner$"));
|
// }
|
param.remove("matnr");
|
param.remove("maktx");
|
param.remove("decrees");
|
// param.remove("owner$");
|
allLike(Mat.class, param.keySet(), wrapper, condition);
|
return R.ok(matService.page(new Page<>(curr, limit), wrapper));
|
}
|
|
|
// private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
|
// for (Map.Entry<String, Object> entry : map.entrySet()){
|
// String val = String.valueOf(entry.getValue());
|
// if (val.contains(RANGE_TIME_LINK)){
|
// String[] dates = val.split(RANGE_TIME_LINK);
|
// wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
|
// wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
|
// } else {
|
// if (entry.getKey().equals("locNo")) {
|
// wrapper.eq("loc_no", String.valueOf(entry.getValue()));
|
// } else {
|
// wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
|
// }
|
// }
|
// }
|
// }
|
|
|
@RequestMapping(value = "/mat/add/auth")
|
@ManagerAuth
|
public R add(Mat mat) {
|
int count = matService.count(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, mat.getMatnr()));
|
if(count > 0){
|
return R.error("当前物料号已存在");
|
}
|
mat.setHostId(getHostId());
|
matService.save(mat);
|
return R.ok();
|
}
|
|
@RequestMapping(value = "/mat/update/auth")
|
@ManagerAuth
|
public R update(Mat mat){
|
if (Cools.isEmpty(mat) || null== mat.getId()){
|
return R.error();
|
}
|
matService.updateById(mat);
|
return R.ok();
|
}
|
|
@RequestMapping(value = "/mat/delete/auth")
|
@ManagerAuth
|
public R delete(@RequestParam String param){
|
List<Mat> list = JSONArray.parseArray(param, Mat.class);
|
if (Cools.isEmpty(list)){
|
return R.error();
|
}
|
for (Mat entity : list){
|
if (!matService.remove(new LambdaQueryWrapper<>(entity))) {
|
throw new CoolException("删除失败,请联系管理员");
|
}
|
}
|
return R.ok();
|
}
|
|
@RequestMapping(value = "/matQuery/auth")
|
@ManagerAuth
|
public R query(String condition) {
|
LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
|
wrapper.like(Mat::getId, condition);
|
wrapper.eq(Mat::getHostId, getHostId());
|
Page<Mat> page = matService.page(new Page<>(0, 10), wrapper);
|
List<Map<String, Object>> result = new ArrayList<>();
|
for (Mat mat : page.getRecords()){
|
Map<String, Object> map = new HashMap<>();
|
map.put("id", mat.getId());
|
map.put("value", mat.getId());
|
result.add(map);
|
}
|
return R.ok(result);
|
}
|
|
@RequestMapping("/mat/all/get/kv")
|
@ManagerAuth
|
public R getDataKV(@RequestParam(required = false) String condition) {
|
List<KeyValueVo> vos = new ArrayList<>();
|
LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(Mat::getHostId, getHostId());
|
if (!Cools.isEmpty(condition)) {
|
wrapper.like(Mat::getMatnr, condition);
|
}
|
matService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(item.getMatnr(), item.getId())));
|
return R.ok().add(vos);
|
}
|
|
@RequestMapping(value = "/mat/covert/{id}/auth")
|
@ManagerAuth
|
public R covert(@PathVariable("id") String id) {
|
Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getId, id).eq(Mat::getHostId, getHostId()));
|
if (mat == null) {
|
return R.ok();
|
}
|
OrderDetl orderDetl = new OrderDetl();
|
orderDetl.sync(mat);
|
orderDetl.setAnfme(0.0D);
|
return R.ok().add(orderDetl);
|
}
|
|
@RequestMapping(value = "/mat/list/pda/page/auth")
|
@ManagerAuth
|
public R pdaPageList(@RequestParam(required = true)Long tagId,
|
@RequestParam(defaultValue = "1")Integer curr,
|
@RequestParam(defaultValue = "10")Integer limit){
|
LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(Mat::getHostId, getHostId());
|
wrapper.orderBy(true, false,Mat::getCreateTime);
|
return R.ok().add(matService.page(new Page<>(curr, limit), wrapper));
|
}
|
|
@RequestMapping(value = "/mat/pad/search")
|
@ManagerAuth
|
public R padSearch(@RequestParam("matnr") String matnr) {
|
List<Mat> list = matService.list(new LambdaQueryWrapper<Mat>()
|
.like(Mat::getMatnr, matnr)
|
.eq(Mat::getHostId, getHostId()));
|
if (list.isEmpty()){
|
return R.error("未查询到相关物料");
|
}
|
return R.ok(list);
|
}
|
|
@RequestMapping(value = "/mat/pad/searchLoc")
|
@ManagerAuth
|
public R padSearchLoc(@RequestParam("matnr") String matnr) {
|
List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getMatnr, matnr).eq(LocDetl::getHostId, getHostId()));
|
|
ArrayList<LocDetl> locDetls = new ArrayList<>();
|
for (LocDetl locDetl : list) {
|
LocMast one = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locDetl.getLocNo()).eq(LocMast::getHostId, locDetl.getHostId()));
|
if (one == null) {
|
continue;
|
}
|
|
if (!one.getLocSts().equals("F")) {
|
continue;
|
}
|
|
locDetls.add(locDetl);
|
}
|
return R.ok(locDetls);
|
}
|
|
}
|