| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.entity.AgvLocMast; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.LocMastInitParam; |
| | | import com.zy.asrs.service.AdjDetlService; |
| | | import com.zy.asrs.service.AgvLocDetlService; |
| | | import com.zy.asrs.service.AgvLocMastService; |
| | | import com.zy.asrs.service.AgvWrkMastService; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | @Autowired |
| | | private AgvLocMastService agvLockMastService; |
| | | @Autowired |
| | | private AgvWrkMastService agvWrkMastService; |
| | | @Autowired |
| | | private AgvLocDetlService agvLocDetlService; |
| | | @Autowired |
| | | private AdjDetlService adjDetlService; |
| | | |
| | | @RequestMapping(value = "/locMast/list/auth") |
| | | @ManagerAuth |
| | |
| | | @RequestParam Map<String, Object> param){ |
| | | excludeTrash(param); |
| | | EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); |
| | | convert(param, wrapper); |
| | | convert1(param, wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(agvLockMastService.selectPage(new Page<>(curr, limit), wrapper.eq("status",0))); |
| | | } |
| | |
| | | @RequestMapping(value = "/locMast/update/auth") |
| | | @ManagerAuth(memo = "库位修改") |
| | | @Transactional |
| | | public R update(LocMast locMast){ |
| | | //to do |
| | | public R update(AgvLocMast locMast){ |
| | | if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){ |
| | | return R.error(); |
| | | } |
| | | AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>() |
| | | .eq("source_loc_no", locMast.getLocNo()) |
| | | .or().eq("loc_no", locMast.getLocNo())); |
| | | if(!Cools.isEmpty(wrkMast)){ |
| | | return R.error("该库位正在作业,请先处理工作档"); |
| | | } |
| | | AgvLocMast oldLocMast = agvLockMastService.selectById(locMast.getLocNo()); |
| | | if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) { |
| | | return R.error("当前操作已被阻止,请联系管理员"); |
| | | } |
| | | int br = 0; |
| | | if (locMast.getLocSts() == "O" || locMast.getLocSts() == "X"){ |
| | | switch (locMast.getBarcode().substring(0,2)) { |
| | | case "10": |
| | | br = 1; |
| | | break; |
| | | case "20": |
| | | br = 2; |
| | | break; |
| | | case "21": |
| | | br = 4; |
| | | break; |
| | | case "30": |
| | | br = 3; |
| | | break; |
| | | case "40": |
| | | br = 5; |
| | | break; |
| | | } |
| | | if (oldLocMast.getLocType1() != br) { |
| | | return R.error("货架和库位类型不匹配!"); |
| | | } |
| | | } |
| | | Date now = new Date(); |
| | | // 有物料时修改为空库位或者空板库位,则删除库存明细 |
| | | if (oldLocMast.getLocSts().equals("R") || oldLocMast.getLocSts().equals("F") || oldLocMast.getLocSts().equals("S")) { |
| | | if (locMast.getLocSts().equals("O") || locMast.getLocSts().equals("D")) { |
| | | List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locMast.getLocNo())); |
| | | for (AgvLocDetl locDetl : locDetls) { |
| | | // 保存调整记录 |
| | | AdjDetl adjDetl = new AdjDetl(); |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | | adjDetl.setMatnr(locDetl.getMatnr()); |
| | | adjDetl.setBatch(locDetl.getBatch()); |
| | | adjDetl.setOriQty(locDetl.getAnfme()); |
| | | adjDetl.setAdjQty(0.0D); |
| | | adjDetl.setModiTime(now); |
| | | adjDetl.setModiUser(getUserId()); |
| | | adjDetl.setAppeTime(now); |
| | | adjDetl.setAppeUser(getUserId()); |
| | | if (!adjDetlService.insert(adjDetl)) { |
| | | throw new CoolException("服务器错误,请联系管理员"); |
| | | } |
| | | } |
| | | if (!agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", locMast.getLocNo()))) { |
| | | throw new CoolException("服务器错误,请联系管理员"); |
| | | } |
| | | if (locMast.getLocSts().equals("O")) { |
| | | locMast.setBarcode(""); |
| | | } |
| | | } |
| | | } |
| | | locMast.setModiUser(getUserId()); |
| | | locMast.setModiTime(now); |
| | | if(!agvLockMastService.updateById(locMast)) { |
| | | throw new CoolException("服务器错误,请联系管理员"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | @ManagerAuth(memo = "初始化库位") |
| | | public R init(LocMastInitParam param) { |
| | | //清空原有库位 |
| | | agvLockMastService.clearLoc(); |
| | | //初始化一楼站点 |
| | | // agvLockMastService.clearLoc(); |
| | | //初始化一楼库位 |
| | | agvLockMastService.initLocFloor1(); |
| | | //初始化二楼库位 |
| | | // agvLockMastService.initLocFloor2(); |
| | | //初始化三楼站点 |
| | | agvLockMastService.initLocFloor3(); |
| | | // agvLockMastService.initLocFloor3(); |
| | | |
| | | return R.ok(); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | private <T> void convert1(Map<String, Object> map, EntityWrapper<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 { |
| | | wrapper.eq(entry.getKey(), val); |
| | | } |
| | | } |
| | | } |
| | | } |