| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
| | | import com.zy.asrs.framework.common.R;
|
| | | import com.zy.asrs.framework.exception.CoolException;
|
| | | import com.zy.asrs.wms.asrs.entity.*;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.LocAreaTypeSts;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
|
| | | import com.zy.asrs.wms.asrs.entity.param.FieldParam;
|
| | | import com.zy.asrs.wms.asrs.entity.param.FieldSortParam;
|
| | |
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import java.util.*;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | @Service("locDetlService")
|
| | | public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService {
|
| | |
| | | @Override
|
| | | public PageParam<ViewLocDetl, BaseParam> getPage(PageParam<ViewLocDetl, BaseParam> pageParam, QueryWrapper<ViewLocDetl> buildWrapper) {
|
| | | PageParam<ViewLocDetl, BaseParam> result = viewLocDetlMapper.selectPage(pageParam, buildWrapper);
|
| | |
|
| | | //解析动态字段
|
| | | JSONObject data = JSON.parseObject(JSON.toJSONString(result));
|
| | | List<ViewLocDetl> records = result.getRecords();
|
| | | data.put("records", records);
|
| | | for (ViewLocDetl locDetl : records) {
|
| | | Map<String, Object> resultMap = viewLocDetlMapper.getById(locDetl.getId());
|
| | | locDetl.syncFieldMap(resultMap);
|
| | | }
|
| | | // JSONObject data = JSON.parseObject(JSON.toJSONString(result));
|
| | | // List<ViewLocDetl> records = result.getRecords();
|
| | | // data.put("records", records);
|
| | | // for (ViewLocDetl locDetl : records) {
|
| | | // Map<String, Object> resultMap = viewLocDetlMapper.getById(locDetl.getId());
|
| | | // locDetl.syncFieldMap(resultMap);
|
| | | // }
|
| | | return result;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | @Override
|
| | | public List<LocDetl> queryStock(String matnr, String batch, List<FieldParam> param, List<FieldSortParam> sortParam) {
|
| | | List<Map<String, Object>> list = viewLocDetlMapper.queryStock(matnr, batch, param, sortParam);
|
| | | List<Map<String, Object>> list = viewLocDetlMapper.queryStock(matnr, batch, param, sortParam, LocAreaTypeSts.LOC_AREA_TYPE_UTC.id);
|
| | | List<LocDetl> locDetlsSort = resortDetls(list);
|
| | | return locDetlsSort;
|
| | | return locDetlsSort.stream().sorted(Comparator.comparing(LocDetl::getCreateTime)).collect(Collectors.toList());
|
| | | }
|
| | |
|
| | | private List<LocDetl> resortDetls(List<Map<String, Object>> list) {
|
| | |
| | |
|
| | | for (Integer row : direction) {
|
| | | Loc one = locService.getOne(new LambdaQueryWrapper<Loc>()
|
| | | .select(Loc::getId)
|
| | | .eq(Loc::getRow1, row)
|
| | | .eq(Loc::getBay1, loc.getBay1())
|
| | | .eq(Loc::getLev1, loc.getLev1()));
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void locDetlFreeze(LocDetlFreezeParam param) {
|
| | | if (param == null) {
|
| | | throw new CoolException("参数不能为空");
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void removeLocDetl(Long locId) {
|
| | | List<LocDetl> locDetls = this.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locId));
|
| | | for (LocDetl locDetl : locDetls) {
|
| | | boolean remove = locDetlFieldService.remove(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()));
|
| | | if (!remove) {
|
| | | throw new CoolException("扩展字段删除失败");
|
| | | }
|
| | |
|
| | | // if (!remove) {
|
| | | // throw new CoolException("扩展字段删除失败");
|
| | | // }
|
| | | boolean result = this.removeById(locDetl.getId());
|
| | | if (!result) {
|
| | | throw new CoolException("明细删除失败");
|
| | | }
|
| | | // if (!result) {
|
| | | // throw new CoolException("明细删除失败");
|
| | | // }
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<LocDetl> queryFlatStock(String matnr, String batch, List<FieldParam> params) {
|
| | | //获取平库中符合条件的库位
|
| | | List<Map<String, Object>> list = viewLocDetlMapper.queryFlatStock(matnr, batch, params);
|
| | | List<Map<String, Object>> list = viewLocDetlMapper.queryFlatStock(matnr, batch, params, LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id);
|
| | | List<LocDetl> detls = new ArrayList<>();
|
| | | list.forEach(action -> {
|
| | | LocDetl parseObject = JSONObject.parseObject(JSON.toJSONString(action), LocDetl.class);
|
| | |
| | | });
|
| | | return detls;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取所有库存数量
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public R getAllStockQty() {
|
| | | Map<String, Double> map = new HashMap<>();
|
| | | Double allQty = this.baseMapper.getAllStock();
|
| | | map.put("allQty", allQty);
|
| | | return R.ok().add(map);
|
| | | }
|
| | | }
|