Browse Source

opt: 出库全部分配(wql改mp)

master
李永德 12 hours ago
parent
commit
e9fb1f9237
  1. 4
      lms/nladmin-system/README.md
  2. 6
      lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java
  3. 12
      lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java
  4. 27
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/InventoryQueryParam.java
  5. 12
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
  6. 26
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java
  7. 59
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java
  8. 3
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdMeMaterialBaseMapper.java
  9. 7
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MaterialbaseService.java
  10. 9
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPbMeasureunitService.java
  11. 18
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MaterialbaseServiceImpl.java
  12. 25
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MdPbMeasureunitServiceImpl.java
  13. 4
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java
  14. 40
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml
  15. 9
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java
  16. 7
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java
  17. 22
      lms/nladmin-system/src/main/java/org/nl/common/utils/CollectionUtils.java

4
lms/nladmin-system/README.md

@ -12,4 +12,6 @@
### String处理工具类
- 判断String中的空格并转换List<String>
org.nl.common.utils.StringDealUtils#splitString(String xxx)
org.nl.common.utils.StringDealUtils#splitString(String input)
- Stream的map操作
org.nl.common.utils.CollectionUtils#mapList(Collection<T> from, Function<T, U> func)

6
lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java

@ -142,6 +142,12 @@ public interface IpdmBiSubpackagerelationService extends IService<PdmBiSubpackag
void downloadData(Integer day, HttpServletResponse response);
/**
* 根据子卷号获取子卷包装关系数据
* @param pcsns 子卷号数组
* @return
*/
List<JSONObject> getSubPackageInfoBySubRolls(List<String> pcsns);
}

12
lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java

@ -7,6 +7,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.PageResult;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -874,5 +875,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
strings[5] = "呼叫时间";
new FileUtil().downloadExcelIO(ioData,strings,response);
}
@Override
public List<JSONObject> getSubPackageInfoBySubRolls(List<String> pcsns) {
if (pcsns.size() == 0) {
return null;
}
LambdaQueryWrapper<PdmBiSubpackagerelation> lam = new LambdaQueryWrapper<>();
lam.in(PdmBiSubpackagerelation::getContainer_name, pcsns);
return org.nl.common.utils.CollectionUtils.mapList(pdmBiSubpackagerelationMapper.selectList(lam),
pdmBiSubpackagerelation -> (JSONObject) JSON.toJSON(pdmBiSubpackagerelation));
}
}

27
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/InventoryQueryParam.java

@ -0,0 +1,27 @@
package org.nl.b_lms.storage_manage.ios.service.iostorInv.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService;
import java.io.Serializable;
import java.util.List;
/**
* @see StIvtStructivtService#getAllInventorys(InventoryQueryParam)
* @Author: lyd
* @Date: 2025/6/20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InventoryQueryParam implements Serializable {
private String sect_id;
private String stor_id;
private List<String> box_in;
}

12
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java

@ -29,9 +29,11 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvOutMapper;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvdisMapper;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.InventoryQueryParam;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService;
import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
@ -137,6 +139,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Autowired
private RedissonClient redissonClient;
@Autowired
private StIvtStructivtService structivtService;
@Override
@Transactional
@ -268,10 +272,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
// 查找此仓库/库区的所有库存 (库区:前端没有选择库区就默认仓库)
List<JSONObject> ivtList = WQL.getWO("BST_OUTDIV").addParam("flag", "1").addParam("stor_id", mstDao.getStor_id().toString())
.addParam("sect_id", whereJson.getString("sect_id"))
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
List<JSONObject> ivtList = structivtService.getAllInventorys(InventoryQueryParam.builder()
.stor_id(mstDao.getStor_id())
.sect_id(whereJson.getString("sect_id"))
.build());
if (ObjectUtil.isEmpty(ivtList)) {
throw new BadRequestException("库存不足!");
}

26
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java

@ -15,6 +15,8 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvdtlMapper;
import org.nl.b_lms.storage_manage.md.service.MaterialbaseService;
import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService;
import org.nl.common.utils.IdUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
@ -53,6 +55,12 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
private IStIvtIostorinvService iStIvtIostorinvService;
@Autowired
private StIvtIostorinvdtlMapper stIvtIostorinvdtlMapper;
/** 物料表服务 */
@Autowired
private MaterialbaseService materialbaseService;
/** 单位服务 */
@Autowired
private MdPbMeasureunitService measureunitService;
@Override
public HashMap<String, ArrayList<JSONObject>>insertDtl(List<JSONObject> rows, String iostorinv_id) {
@ -62,25 +70,19 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
updateSub(iostorinv_id);
// 查询所有对应物料集合
String materialCodeIn = rows.stream()
List<String> materialCodes = rows.stream()
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)).getString("product_name"))
.distinct()
.collect(Collectors.joining("','"));
.collect(Collectors.toList());
List<JSONObject> materList = WQLObject.getWQLObject("md_me_materialbase")
.query("material_code in ('" + materialCodeIn + "')")
.getResultJSONArray(0).toJavaList(JSONObject.class);
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
// 查询所有物料对应的计量单位
String unitIdIn = materList.stream()
List<String> unitIds = materList.stream()
.map(row -> row.getString("base_unit_id"))
.distinct()
.collect(Collectors.joining("','"));
List<JSONObject> unitList = WQLObject.getWQLObject("md_pb_measureunit")
.query("measure_unit_id in ('" + unitIdIn + "')")
.getResultJSONArray(0).toJavaList(JSONObject.class);
.collect(Collectors.toList());
List<JSONObject> unitList = measureunitService.getUnitAllByIds(unitIds);
// 明细批量插入集合
ArrayList<StIvtIostorinvdtl> dtlDaoList = new ArrayList<>();

59
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java

@ -5,7 +5,10 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
@ -19,6 +22,12 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussManageService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService;
import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService;
import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr;
import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr;
import org.nl.b_lms.storage_manage.st.service.StIvtSectattrService;
import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService;
import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService;
import org.nl.common.utils.IdUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
@ -38,6 +47,7 @@ import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* <p>
@ -97,6 +107,17 @@ public class OutBussManageServiceImpl implements OutBussManageService {
*/
@Autowired
private TwoInBussManageService twoInBussManageService;
@Autowired
private StIvtStructivtService structivtService;
@Autowired
private MdPbMeasureunitService measureunitService;
/** 子卷包装关系 */
@Autowired
private IpdmBiSubpackagerelationService subpackagerelationService;
@Autowired
private StIvtSectattrService sectattrService;
@Autowired
private StIvtStructattrService structattrService;
@Override
@Transactional
@ -106,13 +127,15 @@ public class OutBussManageServiceImpl implements OutBussManageService {
throw new BadRequestException("锁定或解锁仓位不能为空!");
}
// 仓位表
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
String operate = json.getString("operate");
if (operate.equals(IOSEnum.IO_TYPE.code("出库"))) {
attrTab.update(json, "struct_code IN ('" + String.join("','", param) + "')");
LambdaUpdateWrapper<StIvtStructattr> lam = new LambdaUpdateWrapper<>();
lam.in(StIvtStructattr::getStruct_code, param)
.set(StIvtStructattr::getInv_id, json.getString("inv_id"))
.set(StIvtStructattr::getInv_type, json.getString("inv_type"))
.set(StIvtStructattr::getInv_code, json.getString("inv_code"))
.set(StIvtStructattr::getLock_type, json.getString("lock_type"));
structattrService.update(lam);
}
}
@ -264,29 +287,25 @@ public class OutBussManageServiceImpl implements OutBussManageService {
List<StIvtIostorinvdis> resultDisList = new ArrayList<>();
// 查询计量单位
JSONObject jsonUnit = WQLObject.getWQLObject("md_pb_measureunit")
.query("measure_unit_id = '" + likeBoxList.get(0).getString("qty_unit_id") + "'")
.uniqueResult(0);
List<JSONObject> units = measureunitService.getUnitAllByIds(Stream.of(likeBoxList.get(0).getString("qty_unit_id"))
.collect(Collectors.toList()));
if (ObjectUtil.isEmpty(units)) {
throw new BadRequestException("找不到单位【" + likeBoxList.get(0).getString("qty_unit_id") + "】");
}
JSONObject jsonUnit = units.get(0);
// 查询子卷包装关系
String pcsn_in = likeBoxList.stream()
List<String> pcsns = likeBoxList.stream()
.map(row -> row.getString("pcsn"))
.collect(Collectors.joining("','"));
List<JSONObject> subList = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
.query("container_name in ('" + pcsn_in + "')")
.getResultJSONArray(0).toJavaList(JSONObject.class);
.collect(Collectors.toList());
List<JSONObject> subList = subpackagerelationService.getSubPackageInfoBySubRolls(pcsns);
for (int i = 0; i < likeBoxList.size(); i++) {
JSONObject jsonIvt = likeBoxList.get(i);
// 查询库区
JSONObject jsonSect = WQLObject.getWQLObject("st_ivt_sectattr")
.query("sect_id = '" + jsonIvt.getString("sect_id") + "'")
.uniqueResult(0);
StIvtSectattr sectAttribute = sectattrService.getById(jsonIvt.getString("sect_id"));
String work_status;
if (jsonSect.getString("sect_type_attr").equals(IOSEnum.SECT_TYPE.code("虚拟区"))) {
if (sectAttribute.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) {
work_status = IOSEnum.WORK_STATUS.code("生成");
} else {
work_status = IOSEnum.WORK_STATUS.code("未生成");

3
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdMeMaterialBaseMapper.java

@ -15,7 +15,4 @@ import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
public interface MdMeMaterialBaseMapper extends BaseMapper<MdMeMaterialBase> {
}

7
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MaterialbaseService.java

@ -91,4 +91,11 @@ public interface MaterialbaseService {
JSONArray getProductSeries(String parent_class_id);
/**
* 通过物料编码获取物料列表JSONObject
* <p>使用mybatis-plus</p>
* @param materialCodes
* @return
*/
List<JSONObject> getMaterialAllByCodes(List<String> materialCodes);
}

9
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/MdPbMeasureunitService.java

@ -1,10 +1,19 @@
package org.nl.b_lms.storage_manage.md.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit;
import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr;
import java.util.List;
public interface MdPbMeasureunitService extends IService<MdPbMeasureunit> {
/**
* 获取所有单位数据通过单位id
* @param unitIds
* @return
*/
List<JSONObject> getUnitAllByIds(List<String> unitIds);
}

18
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MaterialbaseServiceImpl.java

@ -1,6 +1,7 @@
package org.nl.b_lms.storage_manage.md.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
@ -9,9 +10,13 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
import org.nl.b_lms.storage_manage.md.dao.mapper.MdMeMaterialBaseMapper;
import org.nl.b_lms.storage_manage.md.service.MaterialbaseService;
import org.nl.common.utils.CollectionUtils;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
@ -28,6 +33,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author zhouz
@ -39,6 +45,7 @@ import java.util.Set;
@Slf4j
public class MaterialbaseServiceImpl implements MaterialbaseService {
private final ClassstandardService classstandardService;
private final MdMeMaterialBaseMapper mdMeMaterialBaseMapper;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
@ -227,4 +234,15 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
return newParentArray;
}
@Override
public List<JSONObject> getMaterialAllByCodes(List<String> materialCodes) {
LambdaQueryWrapper<MdMeMaterialBase> lam = new LambdaQueryWrapper<>();
lam.in(MdMeMaterialBase::getMaterial_code, materialCodes);
List<MdMeMaterialBase> materialBases = mdMeMaterialBaseMapper.selectList(lam);
if (CollectionUtil.isEmpty(materialBases)) {
return null;
}
return CollectionUtils.mapList(materialBases, material -> (JSONObject) JSON.toJSON(material));
}
}

25
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MdPbMeasureunitServiceImpl.java

@ -1,10 +1,33 @@
package org.nl.b_lms.storage_manage.md.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit;
import org.nl.b_lms.storage_manage.md.dao.mapper.MdPbMeasureunitMapper;
import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService;
import org.nl.common.utils.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
public class MdPbMeasureunitServiceImpl extends ServiceImpl<MdPbMeasureunitMapper, MdPbMeasureunit> implements IService<MdPbMeasureunit> {
@Slf4j
@Service
public class MdPbMeasureunitServiceImpl extends ServiceImpl<MdPbMeasureunitMapper, MdPbMeasureunit> implements MdPbMeasureunitService {
@Autowired
private MdPbMeasureunitMapper mdPbMeasureunitMapper;
@Override
public List<JSONObject> getUnitAllByIds(List<String> unitIds) {
LambdaQueryWrapper<MdPbMeasureunit> lam = new LambdaQueryWrapper<>();
lam.in(MdPbMeasureunit::getMeasure_unit_id, unitIds);
List<MdPbMeasureunit> mdPbMeasureunits = mdPbMeasureunitMapper.selectList(lam);
return CollectionUtils.mapList(mdPbMeasureunits, mdPbMeasureunit -> (JSONObject) JSON.toJSON(mdPbMeasureunit));
}
}

4
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java

@ -1,9 +1,11 @@
package org.nl.b_lms.storage_manage.st.dao.mapper;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.InventoryQueryParam;
import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto;
@ -38,4 +40,6 @@ public interface StIvtStructivtMapper extends BaseMapper<StIvtStructivt> {
IPage<StockMaterialVo> queryAddDtl(StockMaterialQueryParam paramMap, IPage<StockMaterialVo> pages);
JSONArray getBoxAllMaterial(String boxNo);
List<JSONObject> getAllInventorys(@Param("param") InventoryQueryParam param);
}

40
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml

@ -787,4 +787,44 @@
AND attr.is_used = '1'
AND attr.storagevehicle_code = #{boxNo}
</select>
<select id="getAllInventorys" resultType="com.alibaba.fastjson.JSONObject">
SELECT
ivt.*,
attr.row_num,
attr.block_num,
attr.storagevehicle_code,
attr.storagevehicle_id,
attr.sect_id,
attr.sect_code,
attr.sect_name,
sub.sale_order_name,
CASE
WHEN SUBSTRING(sub.container_name,1,2) = 'BB' AND DATEDIFF( NOW(), sub.date_of_production ) > '180'
THEN '1'
WHEN SUBSTRING(sub.container_name,1,2) != 'BB' AND DATEDIFF( NOW(), sub.date_of_production ) > '90'
THEN '1'
ELSE '0'
END AS is_overdue
FROM
ST_IVT_StructIvt ivt
LEFT JOIN ST_IVT_StructAttr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN PDM_BI_SubPackageRelation sub ON attr.storagevehicle_code = sub.package_box_SN AND sub.container_name
= ivt.pcsn
WHERE
attr.lock_type = '1'
AND ivt.canuse_qty <![CDATA[ <> ]]> '0'
<if test="param.sect_id != null and param.sect_id != ''">
AND attr.sect_id = #{param.sect_id}
</if>
<if test="param.stor_id != null and param.stor_id != ''">
AND attr.stor_id = #{param.stor_id}
</if>
<if test="param.box_in != null and !param.box_in.isEmpty()">
AND attr.storagevehicle_code IN
<foreach collection="param.box_in" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</if>
order by ivt.instorage_time ASC
</select>
</mapper>

9
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java

@ -1,8 +1,10 @@
package org.nl.b_lms.storage_manage.st.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.InventoryQueryParam;
import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto;
@ -63,4 +65,11 @@ public interface StIvtStructivtService extends IService<StIvtStructivt> {
* @return
*/
StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx);
/**
* 获取所有库存信息
* @param param
* @return
*/
List<JSONObject> getAllInventorys(InventoryQueryParam param);
}

7
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java

@ -1,9 +1,11 @@
package org.nl.b_lms.storage_manage.st.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.InventoryQueryParam;
import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt;
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper;
import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService;
@ -71,4 +73,9 @@ public class StIvtStructivtServiceImpl extends ServiceImpl<StIvtStructivtMapper,
lam.eq(StIvtStructivt::getPcsn, pcsn);
return getOne(lam, throwEx);
}
@Override
public List<JSONObject> getAllInventorys(InventoryQueryParam param) {
return stIvtStructivtMapper.getAllInventorys(param);
}
}

22
lms/nladmin-system/src/main/java/org/nl/common/utils/CollectionUtils.java

@ -0,0 +1,22 @@
package org.nl.common.utils;
import cn.hutool.core.collection.CollUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author: lyd
* @Date: 2025/6/20
*/
public class CollectionUtils {
public static <T, U> List<U> mapList(Collection<T> from, Function<T, U> func) {
if (CollUtil.isEmpty(from)) {
return new ArrayList<>();
}
return from.stream().map(func).collect(Collectors.toList());
}
}
Loading…
Cancel
Save