package com.zy.asrs.controller; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.R; 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.WorkService; import com.zy.common.model.StartupDto; 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.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 工作流接口控制器 * Created by vincent on 2020/6/10 */ @RestController public class WorkController extends BaseController { @Autowired private WorkService workService; @Autowired private BasDevpService basDevpService; @RequestMapping("/available/put/site") @ManagerAuth(memo = "response.available_site_query") public R availablePutSite(){ R r = R.ok(); r.put("data", basDevpService.getAvailableInSite()); return r; } @RequestMapping("/available/empty/put/site") @ManagerAuth(memo = "response.available_site_query") public R availableEmptyPutSite(){ R r = R.ok(); r.put("data",basDevpService.getAvailableEmptyInSite()); return r; } @RequestMapping("/available/take/site") @ManagerAuth(memo = "response.available_site_query") public R availableTakeSite(){ List> result = new ArrayList<>(); List outSite = basDevpService.getAvailableOutSite(101); for (Integer siteId : outSite) { Map map = new HashMap<>(); map.put("siteId", siteId); map.put("desc", siteId + "(full_pallet_out)"); result.add(map); } List pickOutSite = basDevpService.getAvailableOutSite(103); for (Integer siteId : pickOutSite) { Map map = new HashMap<>(); map.put("siteId", siteId); map.put("desc", siteId + "(picking_out)"); result.add(map); } R r = R.ok(); r.put("data",result); return r; } @RequestMapping("/available/take/check/site") @ManagerAuth(memo = "response.available_site_query") public R availableTakeCheckSite(){ R r = R.ok(); r.put("data",basDevpService.getAvailableOutSite(107)); return r; } @RequestMapping("/available/empty/take/site") @ManagerAuth() public R availableEmptyTakeSite(){ R r = R.ok(); r.put("data",basDevpService.getAvailableEmptyOutSite()); return r; } @RequestMapping("/full/store/put/start") @ManagerAuth(memo = "response.full_pallet_inbound") public R fullStorePutStart(@RequestBody FullStoreParam fullStoreParam) { try { String locNo = workService.startupFullPutStore(fullStoreParam, getUserId()); R r = R.ok("response.inbound_start_success"); r.put("data",locNo); return r; } catch (Exception e){ R r = R.error("response.inbound_start_fail"); r.put("data",e.getMessage()); return r; } } @RequestMapping("/plate/out/start") @ManagerAuth(memo = "response.outbound_operation") public R fullStoreTakeStart(@RequestBody StockOutParam param) { workService.startupFullTakeStore(param, getUserId()); return R.ok("response.outbound_start_success"); } @RequestMapping("/empty/plate/in/start") @ManagerAuth(memo = "response.empty_pallet_inbound") public R emptyPlateInStart(@RequestParam Integer sourceStaNo) { R r = R.ok("response.inbound_start_success"); r.put("data", workService.emptyPlateIn(sourceStaNo, getUserId())); return r; } @RequestMapping("/empty/plate/out/start") @ManagerAuth(memo = "response.empty_pallet_outbound") public R emptyPlateOutStart(EmptyPlateOutParam param) { workService.emptyPlateOut(param, getUserId()); return R.ok("response.outbound_start_success"); } @RequestMapping("/locCheck/out/start") @ManagerAuth(memo = "response.stock_take_outbound") public R locCheckOutStart(@RequestBody StockOutParam param) { workService.locCheckOut(param, getUserId()); return R.ok("response.outbound_start_success"); } @RequestMapping("/loc/move/start") @ManagerAuth(memo = "response.location_transfer") public R locMoveStart(@RequestParam String sourceLocNo, @RequestParam String targetLocNo) { workService.locMove(sourceLocNo, targetLocNo, getUserId()); return R.ok("response.move_start_success"); } @RequestMapping("/mat/turn/over/out/start") @ManagerAuth(memo = "response.item_handover") 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("response.params_empty"); } if (param.getLocDetls().size()>1){ return R.error("response.single_data_modify_caution"); } workService.turnMatLocDetl(param, getUserId()); return R.ok("response.item_handover_success"); } @RequestMapping("/locDdetl/adjust/start") @ManagerAuth(memo = "response.stock_adjustment") public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) { workService.adjustLocDetl(param, getUserId()); return R.ok("response.stock_adjust_success"); } @RequestMapping("/hand/control/wrkMast") @ManagerAuth(memo = "response.manual_process_work") public R handControlWrkMast(@RequestParam String workNo, @RequestParam Integer type){ if (type == 1) { workService.completeWrkMast(workNo, getUserId()); return R.ok("response.work_completed"); } else if (type == 2) { workService.cancelWrkMast(workNo, getUserId()); return R.ok("response.work_cancelled"); } else if (type == 3) { workService.pickWrkMast(workNo, getUserId()); return R.ok("response.work_picked"); } return R.ok(); } @RequestMapping("/create/waitPain/wrkMast/start") @ManagerAuth(memo = "response.generate_task") public R createWaitPainWrkMastStart(@RequestBody List list) { StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId()); R r = R.ok("response.task_created"); r.put("data",startupDto); return r; } @RequestMapping("/deal/preHave/start") @ManagerAuth(memo = "response.fifo_handling") public R dealPreHave(@RequestParam Integer wrkNo) { String locNo = workService.dealPreHaveStart(wrkNo, getUserId()); R r = R.ok("response.task_re_inbound"); r.put("data",locNo); return r; } }