package com.zy.asrs.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.CombBillQueryVo; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.service.LocDetlService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.MobileService; import com.zy.asrs.service.WrkDetlService; import com.zy.common.model.MobileLocDetlVo; import com.zy.common.web.BaseController; import com.zy.ints.entity.WaitMatin; import com.zy.ints.service.WaitMatinService; 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.List; /** * 移动端接口控制器 * Created by vincent on 2020/6/10 */ @RestController @RequestMapping("mobile") public class MobileController extends BaseController { @Autowired private MobileService mobileService; @Autowired private LocMastService locMastService; @Autowired private LocDetlService locDetlService; @Autowired private WrkDetlService wrkDetlService; @Autowired private WaitMatinService waitMatinService; /** * 组托 */ @RequestMapping("/comb/auth") @ManagerAuth(memo = "组托") public R comb(@RequestBody CombParam combParam){ mobileService.comb(combParam, getUserId()); return R.ok(); } /** * 组托 */ @RequestMapping("/comb/form") @ManagerAuth(memo = "组托") public R combForm(@RequestParam CombParam combParam){ mobileService.comb(combParam, getUserId()); return R.ok(); } /** * 库存查询(根据物料编码和库位查询库存数量和捡料数量) * @param locNo * @param matNo * @return */ @RequestMapping("/locDetl/stockQuery") @ManagerAuth public R stockQuery(@RequestParam(required = false)String locNo, @RequestParam(required = false)String matNo){ if (!Cools.isEmpty(locNo)) { LocMast locMast = locMastService.selectById(locNo); if (null == locMast || !"F".equals(locMast.getLocSts())) { return R.parse(BaseRes.EMPTY); } List locDetls = locDetlService.selectList(new EntityWrapper() .eq("loc_no", locNo).orderBy("appe_time", false)); List res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); List wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatNo(), locDetl.getLocNo()); final Double[] pickNum = {0.0}; wrkDetlsList.forEach(item -> { pickNum[0] = pickNum[0] + item.getQty(); }); vo.setPickNum(pickNum[0]); vo.setLocNo(locDetl.getLocNo()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } if (!Cools.isEmpty(matNo)) { List locDetls = locDetlService.selectList(new EntityWrapper() .eq("mat_no", matNo).orderBy("appe_time", false)); List res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); List wrkDetlsList = wrkDetlService.queryWrkDetl(locDetl.getMatNo(), locDetl.getLocNo()); final Double[] pickNum = {0.0}; wrkDetlsList.forEach(item -> { pickNum[0] = pickNum[0] + item.getQty(); }); vo.setPickNum(pickNum[0]); vo.setLocNo(locDetl.getLocNo()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } return R.parse(BaseRes.PARAM); } /** * 根据库位号查找库存明细 */ @RequestMapping("/locDetl") @ManagerAuth public R getLocDetl(@RequestParam(required = false)String locNo, @RequestParam(required = false)String matNo){ if (!Cools.isEmpty(locNo)) { LocMast locMast = locMastService.selectById(locNo); if (null == locMast || !"F".equals(locMast.getLocSts())) { return R.parse(BaseRes.EMPTY); } List locDetls = locDetlService.selectList(new EntityWrapper() .eq("loc_no", locNo).orderBy("appe_time", false)); List res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); vo.setLocNo(locDetl.getLocNo()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } if (!Cools.isEmpty(matNo)) { List locDetls = locDetlService.selectList(new EntityWrapper() .eq("mat_no", matNo).orderBy("appe_time", false)); List res = new ArrayList<>(); locDetls.forEach(locDetl -> { MobileLocDetlVo vo = new MobileLocDetlVo(); vo.setLocNo(locDetl.getLocNo()); vo.setMatNo(locDetl.getMatNo()); vo.setMatName(locDetl.getMatName()); vo.setCount(locDetl.getQty()); res.add(vo); }); return R.ok().add(res); } return R.parse(BaseRes.PARAM); } /** * 根据通知单查询明细 */ @RequestMapping("/bill/query/auth") @ManagerAuth(memo = "根据通知单查询明细") public R billQuery(@RequestParam String billNo){ List waitMatins = waitMatinService.selectList(new EntityWrapper().eq("bill_no", billNo).last("and qty > in_qty")); List vos = new ArrayList<>(); if (!Cools.isEmpty(waitMatins)) { for (WaitMatin waitMatin : waitMatins) { CombBillQueryVo vo = new CombBillQueryVo(); vo.setMatNo(waitMatin.getMatNo()); vo.setMatName(waitMatin.getMatName()); vo.setCount(waitMatin.getQty()-waitMatin.getInQty()); vo.setBillNo(waitMatin.getBillNo()); vo.setSeqNo(waitMatin.getSeqNo()); vo.setUnit(waitMatin.getUnit()); vo.setSpecs(waitMatin.getSpecs()); vo.setSize(waitMatin.getSize()); vo.setColor(waitMatin.getColor()); vos.add(vo); } } return R.ok().add(vos); } /** * PDA盘点根据出库口查询对应物料信息 */ @RequestMapping("/check/queryMatFromDevNo") public R queryMatFromDevNo(Integer devNo) { List list = wrkDetlService.queryMatFromDevNo(devNo); return R.ok().add(list); } }