opt: 出库全部分配(wql改mp)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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("库存不足!");
|
||||
}
|
||||
|
||||
@@ -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<>();
|
||||
|
||||
|
||||
@@ -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("未生成");
|
||||
|
||||
@@ -15,7 +15,4 @@ import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
|
||||
public interface MdMeMaterialBaseMapper extends BaseMapper<MdMeMaterialBase> {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user