| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.constraints.Size; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RestController |
| | | public class LocMastController extends BaseController { |
| | |
| | | locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); |
| | | } |
| | | } |
| | | locMast.setBarcode(""); |
| | | locMast.setModiUser(getUserId()); |
| | | locMast.setModiTime(new Date()); |
| | | locMastService.updateById(locMast); |
| | |
| | | @ManagerAuth(memo = "初始化库位") |
| | | // @Transactional |
| | | public R init(LocMastInitParam param) { |
| | | List<LocMast> list = new ArrayList<>(); |
| | | List<LocMast> list = new ArrayList<>(); |
| | | for (int r=param.getStartRow(); r<=param.getEndRow(); r++){ |
| | | for (int b=param.getStartBay(); b<=param.getEndBay(); b++) { |
| | | for (int l=param.getStartLev(); l<=param.getEndLev(); l++) { |
| | |
| | | locMastService.insertBatch(list); |
| | | return R.ok("初始化成功"); |
| | | } |
| | | |
| | | @RequestMapping(value = "/locMast/list/auth/lev") |
| | | @ManagerAuth |
| | | public R listLev(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | excludeTrash(param); |
| | | EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); |
| | | convertLev(param, wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/locMast/list/auth/lev/clamp") |
| | | @ManagerAuth |
| | | public R listLevClamp(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | excludeTrash(param); |
| | | EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); |
| | | convertLev(param, wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | Page<LocMast> pageResult = locMastService.selectPage(new Page<>(curr, limit), wrapper); |
| | | if (pageResult != null && pageResult.getRecords() != null && !pageResult.getRecords().isEmpty()) { |
| | | // 获取所有loc_no |
| | | List<String> locNos = pageResult.getRecords().stream() |
| | | .map(LocMast::getLocNo) // 假设有getLocNo方法 |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | if (!Cools.isEmpty(locNos)) { |
| | | Map<String, Double> anfmeMap = locDetlService.getAnfmeByLocNos(locNos); |
| | | // 更新sc_weight字段 |
| | | for (LocMast locMast : pageResult.getRecords()) { |
| | | if (locMast.getLocNo() != null && anfmeMap.containsKey(locMast.getLocNo())) { |
| | | locMast.setScWeight(anfmeMap.get(locMast.getLocNo())); // 假设有setScWeight方法 |
| | | } else { |
| | | locMast.setScWeight(0.0); // 如果没有对应数据,设为0或null |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return R.ok(pageResult); |
| | | } |
| | | |
| | | private <T> void convertLev(Map<String, Object> map, EntityWrapper<T> wrapper){ |
| | | String sizeValue = null; |
| | | |
| | | // 第一步:先处理size参数 |
| | | if (map.containsKey("size")) { |
| | | sizeValue = String.valueOf(map.get("size")); |
| | | map.remove("size"); // 从map中移除,避免后面重复处理 |
| | | |
| | | if (sizeValue.equals("2000*1500*170")){ |
| | | wrapper.in("lev1", Arrays.asList(4, 5)).andNew().eq("crn_no", 1); |
| | | }else if (sizeValue.equals("1500*1500*170")){ |
| | | wrapper.in("lev1", Arrays.asList(1, 2, 3)).andNew().eq("crn_no", 1); |
| | | }else if (sizeValue.equals("2600*1500*160")){ |
| | | wrapper.in("lev1", Arrays.asList(1, 2)).andNew().eq("crn_no", 2); |
| | | }else if (sizeValue.equals("1300*1500*160")){ |
| | | wrapper.in("lev1", Arrays.asList(3, 4, 5, 6)).andNew().eq("crn_no", 2); |
| | | } |
| | | } |
| | | |
| | | // 第二步:处理其他参数 |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | String key = entry.getKey(); |
| | | String val = String.valueOf(entry.getValue()); |
| | | |
| | | if (val.contains(RANGE_TIME_LINK)){ |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(key, DateUtils.convert(dates[0])); |
| | | wrapper.le(key, DateUtils.convert(dates[1])); |
| | | } else if (key.equals("loc_no")){ |
| | | wrapper.like(key, val); |
| | | } else { |
| | | wrapper.eq(key, val); |
| | | } |
| | | } |
| | | |
| | | // 第三步:如果没有size参数,则添加默认条件 |
| | | if (sizeValue == null) { |
| | | wrapper.eq("loc_sts", map.get("loc_sts")); |
| | | } else { |
| | | // 如果有size参数,添加loc_sts != 'Y'的条件 |
| | | wrapper.and().ne("loc_sts", "Y"); |
| | | } |
| | | } |
| | | } |