package com.zy.asrs.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.core.annotations.ManagerAuth;
|
import com.core.common.R;
|
import com.zy.asrs.domain.param.CreateCyclePlanParam;
|
import com.zy.asrs.entity.BasCrnp;
|
import com.zy.asrs.entity.BasDualCrnp;
|
import com.zy.asrs.entity.WrkCyclePlan;
|
import com.zy.asrs.entity.WrkCyclePlanLoc;
|
import com.zy.asrs.service.BasCrnpService;
|
import com.zy.asrs.service.BasDualCrnpService;
|
import com.zy.asrs.service.WrkCyclePlanLocService;
|
import com.zy.asrs.service.WrkCyclePlanService;
|
import com.zy.common.web.BaseController;
|
import com.zy.core.enums.SlaveType;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Slf4j
|
@RestController
|
public class WrkCyclePlanController extends BaseController {
|
|
@Autowired
|
private WrkCyclePlanService wrkCyclePlanService;
|
@Autowired
|
private WrkCyclePlanLocService wrkCyclePlanLocService;
|
@Autowired
|
private BasCrnpService basCrnpService;
|
@Autowired
|
private BasDualCrnpService basDualCrnpService;
|
|
@RequestMapping(value = "/wrkCyclePlan/list/auth")
|
@ManagerAuth
|
public R list(@RequestParam(defaultValue = "1") Integer curr,
|
@RequestParam(defaultValue = "10") Integer limit) {
|
QueryWrapper<WrkCyclePlan> wrapper = new QueryWrapper<>();
|
wrapper.orderByDesc("id");
|
return R.ok(wrkCyclePlanService.page(new Page<>(curr, limit), wrapper));
|
}
|
|
@RequestMapping(value = "/wrkCyclePlan/locList/auth")
|
@ManagerAuth
|
public R locList(@RequestParam Long planId,
|
@RequestParam(defaultValue = "1") Integer curr,
|
@RequestParam(defaultValue = "20") Integer limit) {
|
QueryWrapper<WrkCyclePlanLoc> wrapper = new QueryWrapper<>();
|
wrapper.eq("plan_id", planId).orderByAsc("seq");
|
return R.ok(wrkCyclePlanLocService.page(new Page<>(curr, limit), wrapper));
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/create/auth")
|
@ManagerAuth
|
public R create(@RequestBody CreateCyclePlanParam param) {
|
try {
|
WrkCyclePlan plan = wrkCyclePlanService.createPlan(param);
|
return R.ok(plan);
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/start/auth")
|
@ManagerAuth
|
public R start(@RequestBody Map<String, Long> param) {
|
try {
|
wrkCyclePlanService.startPlan(param.get("planId"));
|
return R.ok();
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/pause/auth")
|
@ManagerAuth
|
public R pause(@RequestBody Map<String, Long> param) {
|
try {
|
wrkCyclePlanService.pausePlan(param.get("planId"));
|
return R.ok();
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/resume/auth")
|
@ManagerAuth
|
public R resume(@RequestBody Map<String, Long> param) {
|
try {
|
wrkCyclePlanService.resumePlan(param.get("planId"));
|
return R.ok();
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/reset/auth")
|
@ManagerAuth
|
public R reset(@RequestBody Map<String, Long> param) {
|
try {
|
wrkCyclePlanService.resetPlan(param.get("planId"));
|
return R.ok();
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/delete/auth")
|
@ManagerAuth
|
public R delete(@RequestBody Map<String, Long> param) {
|
try {
|
wrkCyclePlanService.deletePlan(param.get("planId"));
|
return R.ok();
|
} catch (Exception e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@RequestMapping(value = "/wrkCyclePlan/craneOptions/auth")
|
@ManagerAuth
|
public R craneOptions() {
|
List<Map<String, Object>> options = new ArrayList<>();
|
|
List<BasCrnp> crnps = basCrnpService.list(new QueryWrapper<>());
|
for (BasCrnp crnp : crnps) {
|
Map<String, Object> opt = new HashMap<>();
|
opt.put("crnNo", crnp.getCrnNo());
|
opt.put("crnType", SlaveType.Crn.name());
|
opt.put("label", "堆垛机" + crnp.getCrnNo());
|
options.add(opt);
|
}
|
|
List<BasDualCrnp> dualCrnps = basDualCrnpService.list(new QueryWrapper<>());
|
for (BasDualCrnp dualCrnp : dualCrnps) {
|
Map<String, Object> opt = new HashMap<>();
|
opt.put("crnNo", dualCrnp.getCrnNo());
|
opt.put("crnType", SlaveType.DualCrn.name());
|
opt.put("label", "双工位堆垛机" + dualCrnp.getCrnNo());
|
options.add(opt);
|
}
|
|
return R.ok(options);
|
}
|
|
@PostMapping(value = "/wrkCyclePlan/availableRows/auth")
|
@ManagerAuth
|
public R availableRows(@RequestBody List<CreateCyclePlanParam.CrnOption> crnOptions) {
|
List<Integer> rows = new ArrayList<>();
|
for (CreateCyclePlanParam.CrnOption opt : crnOptions) {
|
if (SlaveType.Crn.name().equals(opt.getCrnType())) {
|
BasCrnp crnp = basCrnpService.getOne(new QueryWrapper<BasCrnp>().eq("crn_no", opt.getCrnNo()));
|
if (crnp != null) {
|
for (List<Integer> group : crnp.getControlRows$()) {
|
rows.addAll(group);
|
}
|
}
|
} else if (SlaveType.DualCrn.name().equals(opt.getCrnType())) {
|
BasDualCrnp dualCrnp = basDualCrnpService.getOne(new QueryWrapper<BasDualCrnp>().eq("crn_no", opt.getCrnNo()));
|
if (dualCrnp != null) {
|
for (List<Integer> group : dualCrnp.getControlRows$()) {
|
rows.addAll(group);
|
}
|
}
|
}
|
}
|
Collections.sort(rows);
|
return R.ok(rows.stream().distinct().collect(java.util.stream.Collectors.toList()));
|
}
|
|
}
|