package com.zy.asrs.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.StaDesc; import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.param.FullStoreParam; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.StaDescService; import com.zy.asrs.service.WorkService; import com.zy.asrs.utils.Utils; import com.zy.common.model.StartupDto; import com.zy.common.utils.RoleUtils; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.*; import java.util.stream.Collectors; /** * 工作流接口控制器 * Created by vincent on 2020/6/10 */ @RestController public class WorkController extends BaseController { @Autowired private WorkService workService; @Autowired private BasDevpService basDevpService; @Autowired private StaDescService staDescService; @RequestMapping("/locMerge/out/start") @ManagerAuth(memo = "并板出库") public R locMergeOutStart(@RequestBody StockOutParam param) { workService.locMergeOut(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/locMerge/out/start/sxk") @ManagerAuth(memo = "并板出库") public R locMergeOutStartSxk(@RequestBody StockOutParam param) { workService.locMergeOutSxk(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/available/put/site") @ManagerAuth() public R availablePutSite(){ return R.ok().add(basDevpService.getAvailableInSite()); } @RequestMapping("/available/empty/put/site") @ManagerAuth() public R availableEmptyPutSite(){ return R.ok().add(basDevpService.getAvailableEmptyInSite()); } @RequestMapping("/available/take/site") @ManagerAuth() public R availableTakeSite(){ Set> result = new HashSet<>(); EntityWrapper wrapper = new EntityWrapper<>(); // 不同继承角色显示不同库信息 //RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper); wrapper.eq("type_no",101); List staDescs = staDescService.selectList(wrapper); // List outSite = staDescs.stream().map(StaDesc::getStnNo).distinct().collect(Collectors.toList()); // List outSite = basDevpService.getAvailableOutSite(101); for (StaDesc site : staDescs) { Map map = new HashMap<>(); map.put("siteId", site.getStnNo()); map.put("desc", site.getStnDesc()+site.getStnNo()); result.add(map); } EntityWrapper wrapper2 = new EntityWrapper<>(); wrapper2.eq("type_no",103); List staDescs2 = staDescService.selectList(wrapper2); // List pickOutSite = staDescs2.stream().map(StaDesc::getStnNo).distinct().collect(Collectors.toList()); // List pickOutSite = basDevpService.getAvailableOutSite(103); for (StaDesc site : staDescs2) { Map map = new HashMap<>(); map.put("siteId", site.getStnNo()); map.put("desc", site.getStnDesc()+site.getStnNo()); result.add(map); } return R.ok().add(result); } @RequestMapping("/crn/available/take/site") @ManagerAuth() public R crnAvailableTakeSite(){ List> result = new ArrayList<>(); List outSite = basDevpService.getCrnAvailableOutSite(101); for (Integer siteId : outSite) { Map map = new HashMap<>(); map.put("siteId", siteId); map.put("desc", siteId + "(全板出库口)"); result.add(map); } List pickOutSite = basDevpService.getCrnAvailableOutSite(103); for (Integer siteId : pickOutSite) { Map map = new HashMap<>(); map.put("siteId", siteId); map.put("desc", siteId + "(拣料出库口)"); result.add(map); } return R.ok().add(result); } @RequestMapping("/available/take/check/site") @ManagerAuth() public R availableTakeCheckSite(){ return R.ok().add(basDevpService.getAvailableOutSite(107)); } @RequestMapping("/available/take/merge/site") @ManagerAuth() public R availableTakeMergeSite(){ return R.ok().add(basDevpService.getAvailableOutSite(104)); } @RequestMapping("/available/take/check/site/crn") @ManagerAuth() public R availableTakeCheckSiteCrn(){ EntityWrapper staDescEntityWrapper = new EntityWrapper<>(); staDescEntityWrapper.eq("type_no",107); staDescEntityWrapper.setSqlSelect("DISTINCT stn_no as stnNo"); staDescEntityWrapper.in("crn_no",1,2,3,4,5,6,7); return R.ok().add(staDescService.selectList(staDescEntityWrapper)); } @RequestMapping("/available/take/check/site/ctu") @ManagerAuth() public R availableTakeCheckSiteCtu(){ return R.ok().add(basDevpService.getAvailableOutSite(107)); } @RequestMapping("/available/take/check/site/shuttle") @ManagerAuth() public R availableTakeCheckSiteShuttle(){ return R.ok().add(basDevpService.getAvailableOutSite(107)); } @RequestMapping("/available/crn/empty/take/site") @ManagerAuth() public R availablecrnEmptyTakeSite(){ return R.ok().add(basDevpService.getCrnAvailableEmptyOutSite()); } @RequestMapping("/available/shuttle/empty/take/site") @ManagerAuth() public R availableshuttleEmptyTakeSite(){ return R.ok().add(basDevpService.getShuttleAvailableEmptyOutSite()); } @RequestMapping("/available/ctu/empty/take/site") @ManagerAuth() public R availablectuEmptyTakeSite(){ return R.ok().add(basDevpService.getCtuAvailableEmptyOutSite()); } @RequestMapping("/available/empty/take/site") @ManagerAuth() public R availableEmptyTakeSite(){ List> result = new ArrayList<>(); EntityWrapper wrapper = new EntityWrapper<>(); wrapper.eq("type_no",110); // 不同继承角色显示不同库信息 // RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper); List staDescs = staDescService.selectList(wrapper); for (StaDesc staDesc : staDescs) { Map map = new HashMap<>(); map.put("siteId", staDesc.getStnNo()); map.put("desc","["+ Utils.getStaName(staDesc.getStnNo())+"]"); result.add(map); } return R.ok().add(result); // return R.ok().add(basDevpService.getAvailableEmptyOutSite()); } @RequestMapping("/full/store/put/start") @ManagerAuth(memo = "全板入库") public R fullStorePutStart(@RequestBody FullStoreParam fullStoreParam) { try { String locNo = workService.startupFullPutStore(fullStoreParam, getUserId()); return R.ok("入库启动成功").add(locNo); } catch (Exception e){ return R.error("入库启动失败==>"+e.getMessage()); } } @RequestMapping("/plate/out/start") @ManagerAuth(memo = "出库作业") public R fullStoreTakeStart(@RequestBody StockOutParam param) { workService.startupFullTakeStore(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/empty/plate/in/start") @ManagerAuth(memo = "空板入库") public R emptyPlateInStart(@RequestParam Integer sourceStaNo) { return R.ok("入库启动成功").add(workService.emptyPlateIn(sourceStaNo, getUserId())); } @RequestMapping("/empty/plate/out/start") @ManagerAuth(memo = "空板出库") public R emptyPlateOutStart(EmptyPlateOutParam param) { workService.emptyPlateOut(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/locCheck/out/start") @ManagerAuth(memo = "盘点出库") public R locCheckOutStart(@RequestBody StockOutParam param) { workService.locCheckOut(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/locCheck/out/start/sxk") @ManagerAuth(memo = "盘点出库") public R locCheckOutStartsxk(@RequestBody StockOutParam param) { workService.locCheckOutsxk(param, getUserId()); return R.ok("出库启动成功"); } @RequestMapping("/loc/move/start") @ManagerAuth(memo = "库位移转") public R locMoveStart(@RequestParam String sourceLocNo, @RequestParam String targetLocNo) { workService.locMove(sourceLocNo, targetLocNo, getUserId()); return R.ok("移库启动成功"); } @RequestMapping("/mat/turn/over/out/start") @ManagerAuth(memo = "品号移交") public R turnMatLocDetl(@RequestBody EmptyPlateOutParam param) { if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(),param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())){ return R.error("参数为空"); } if (param.getLocDetls().size()>1){ return R.error("请单条数据修改,谨慎操作!"); } workService.turnMatLocDetl(param, getUserId()); return R.ok("品号移交成功"); } @RequestMapping("/locDdetl/adjust/start") @ManagerAuth(memo = "库存调整") public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) { workService.adjustLocDetl(param, getUserId()); return R.ok("库存调整成功"); } @RequestMapping("/hand/control/wrkMast") @ManagerAuth(memo = "手动处理工作档") public R handControlWrkMast(@RequestParam String workNo, @RequestParam Integer type){ if (type == 1) { workService.completeWrkMast(workNo, getUserId()); return R.ok("工作档已完成"); } else if (type == 2) { workService.cancelWrkMast(workNo, getUserId()); return R.ok("工作档已取消"); } else if (type == 3) { workService.pickWrkMast(workNo, getUserId()); return R.ok("工作档已拣料"); } return R.ok(); } @RequestMapping("/create/waitPain/wrkMast/start") @ManagerAuth(memo = "生成任务") public R createWaitPainWrkMastStart(@RequestBody List list) { StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId()); return R.ok("任务号:" + startupDto.getWorkNo() + ";目标库位:" + startupDto.getLocNo()); } @RequestMapping("/deal/preHave/start") @ManagerAuth(memo = "先入品处理") public R dealPreHave(@RequestParam Integer wrkNo) { String locNo = workService.dealPreHaveStart(wrkNo, getUserId()); return R.ok("任务重新入库,目标库位:" + locNo); } }