opt: 出库全部分配(wql改mp)
This commit is contained in:
@@ -12,4 +12,6 @@
|
|||||||
### String处理工具类
|
### String处理工具类
|
||||||
|
|
||||||
- 判断String中的空格并转换List<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);
|
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.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.db.PageResult;
|
import cn.hutool.db.PageResult;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -874,5 +875,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
strings[5] = "呼叫时间";
|
strings[5] = "呼叫时间";
|
||||||
new FileUtil().downloadExcelIO(ioData,strings,response);
|
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.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.StIvtIostorinvOutMapper;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvdisMapper;
|
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.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.OutBussManageService;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService;
|
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.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
@@ -137,6 +139,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedissonClient redissonClient;
|
private RedissonClient redissonClient;
|
||||||
|
@Autowired
|
||||||
|
private StIvtStructivtService structivtService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@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())
|
List<JSONObject> ivtList = structivtService.getAllInventorys(InventoryQueryParam.builder()
|
||||||
.addParam("sect_id", whereJson.getString("sect_id"))
|
.stor_id(mstDao.getStor_id())
|
||||||
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
|
.sect_id(whereJson.getString("sect_id"))
|
||||||
|
.build());
|
||||||
if (ObjectUtil.isEmpty(ivtList)) {
|
if (ObjectUtil.isEmpty(ivtList)) {
|
||||||
throw new BadRequestException("库存不足!");
|
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.StIvtIostorinvdis;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
|
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.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.common.utils.IdUtil;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
@@ -53,6 +55,12 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
|||||||
private IStIvtIostorinvService iStIvtIostorinvService;
|
private IStIvtIostorinvService iStIvtIostorinvService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtIostorinvdtlMapper stIvtIostorinvdtlMapper;
|
private StIvtIostorinvdtlMapper stIvtIostorinvdtlMapper;
|
||||||
|
/** 物料表服务 */
|
||||||
|
@Autowired
|
||||||
|
private MaterialbaseService materialbaseService;
|
||||||
|
/** 单位服务 */
|
||||||
|
@Autowired
|
||||||
|
private MdPbMeasureunitService measureunitService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<String, ArrayList<JSONObject>>insertDtl(List<JSONObject> rows, String iostorinv_id) {
|
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);
|
updateSub(iostorinv_id);
|
||||||
|
|
||||||
// 查询所有对应物料集合
|
// 查询所有对应物料集合
|
||||||
String materialCodeIn = rows.stream()
|
List<String> materialCodes = rows.stream()
|
||||||
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)).getString("product_name"))
|
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)).getString("product_name"))
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.joining("','"));
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
List<JSONObject> materList = WQLObject.getWQLObject("md_me_materialbase")
|
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
|
||||||
.query("material_code in ('" + materialCodeIn + "')")
|
|
||||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
|
||||||
|
|
||||||
// 查询所有物料对应的计量单位
|
// 查询所有物料对应的计量单位
|
||||||
String unitIdIn = materList.stream()
|
List<String> unitIds = materList.stream()
|
||||||
.map(row -> row.getString("base_unit_id"))
|
.map(row -> row.getString("base_unit_id"))
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.joining("','"));
|
.collect(Collectors.toList());
|
||||||
|
List<JSONObject> unitList = measureunitService.getUnitAllByIds(unitIds);
|
||||||
List<JSONObject> unitList = WQLObject.getWQLObject("md_pb_measureunit")
|
|
||||||
.query("measure_unit_id in ('" + unitIdIn + "')")
|
|
||||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
|
||||||
|
|
||||||
// 明细批量插入集合
|
// 明细批量插入集合
|
||||||
ArrayList<StIvtIostorinvdtl> dtlDaoList = new ArrayList<>();
|
ArrayList<StIvtIostorinvdtl> dtlDaoList = new ArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.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.dao.SchBaseTask;
|
||||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||||
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
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.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.OutBussManageService;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService;
|
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.common.utils.IdUtil;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
@@ -38,6 +47,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -97,6 +107,17 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
|||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private TwoInBussManageService twoInBussManageService;
|
private TwoInBussManageService twoInBussManageService;
|
||||||
|
@Autowired
|
||||||
|
private StIvtStructivtService structivtService;
|
||||||
|
@Autowired
|
||||||
|
private MdPbMeasureunitService measureunitService;
|
||||||
|
/** 子卷包装关系 */
|
||||||
|
@Autowired
|
||||||
|
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||||
|
@Autowired
|
||||||
|
private StIvtSectattrService sectattrService;
|
||||||
|
@Autowired
|
||||||
|
private StIvtStructattrService structattrService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -106,13 +127,15 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
|||||||
throw new BadRequestException("锁定或解锁仓位不能为空!");
|
throw new BadRequestException("锁定或解锁仓位不能为空!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 仓位表
|
|
||||||
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
|
|
||||||
|
|
||||||
String operate = json.getString("operate");
|
String operate = json.getString("operate");
|
||||||
if (operate.equals(IOSEnum.IO_TYPE.code("出库"))) {
|
if (operate.equals(IOSEnum.IO_TYPE.code("出库"))) {
|
||||||
|
LambdaUpdateWrapper<StIvtStructattr> lam = new LambdaUpdateWrapper<>();
|
||||||
attrTab.update(json, "struct_code IN ('" + String.join("','", param) + "')");
|
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<>();
|
List<StIvtIostorinvdis> resultDisList = new ArrayList<>();
|
||||||
|
|
||||||
// 查询计量单位
|
// 查询计量单位
|
||||||
JSONObject jsonUnit = WQLObject.getWQLObject("md_pb_measureunit")
|
List<JSONObject> units = measureunitService.getUnitAllByIds(Stream.of(likeBoxList.get(0).getString("qty_unit_id"))
|
||||||
.query("measure_unit_id = '" + likeBoxList.get(0).getString("qty_unit_id") + "'")
|
.collect(Collectors.toList()));
|
||||||
.uniqueResult(0);
|
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"))
|
.map(row -> row.getString("pcsn"))
|
||||||
.collect(Collectors.joining("','"));
|
.collect(Collectors.toList());
|
||||||
|
List<JSONObject> subList = subpackagerelationService.getSubPackageInfoBySubRolls(pcsns);
|
||||||
List<JSONObject> subList = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
|
||||||
.query("container_name in ('" + pcsn_in + "')")
|
|
||||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
|
||||||
|
|
||||||
for (int i = 0; i < likeBoxList.size(); i++) {
|
for (int i = 0; i < likeBoxList.size(); i++) {
|
||||||
JSONObject jsonIvt = likeBoxList.get(i);
|
JSONObject jsonIvt = likeBoxList.get(i);
|
||||||
|
|
||||||
// 查询库区
|
// 查询库区
|
||||||
JSONObject jsonSect = WQLObject.getWQLObject("st_ivt_sectattr")
|
StIvtSectattr sectAttribute = sectattrService.getById(jsonIvt.getString("sect_id"));
|
||||||
.query("sect_id = '" + jsonIvt.getString("sect_id") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
String work_status;
|
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("生成");
|
work_status = IOSEnum.WORK_STATUS.code("生成");
|
||||||
} else {
|
} else {
|
||||||
work_status = IOSEnum.WORK_STATUS.code("未生成");
|
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> {
|
public interface MdMeMaterialBaseMapper extends BaseMapper<MdMeMaterialBase> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,4 +91,11 @@ public interface MaterialbaseService {
|
|||||||
JSONArray getProductSeries(String parent_class_id);
|
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;
|
package org.nl.b_lms.storage_manage.md.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit;
|
import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit;
|
||||||
import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr;
|
import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface MdPbMeasureunitService extends IService<MdPbMeasureunit> {
|
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;
|
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.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
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.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.b_lms.storage_manage.md.service.MaterialbaseService;
|
||||||
|
import org.nl.common.utils.CollectionUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
@@ -28,6 +33,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhouz
|
* @author zhouz
|
||||||
@@ -39,6 +45,7 @@ import java.util.Set;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class MaterialbaseServiceImpl implements MaterialbaseService {
|
public class MaterialbaseServiceImpl implements MaterialbaseService {
|
||||||
private final ClassstandardService classstandardService;
|
private final ClassstandardService classstandardService;
|
||||||
|
private final MdMeMaterialBaseMapper mdMeMaterialBaseMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||||
@@ -227,4 +234,15 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
return newParentArray;
|
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;
|
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.IService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.MdPbMeasureunit;
|
||||||
import org.nl.b_lms.storage_manage.md.dao.mapper.MdPbMeasureunitMapper;
|
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;
|
package org.nl.b_lms.storage_manage.st.dao.mapper;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
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.b_lms.storage_manage.st.dao.StIvtStructivt;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto;
|
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);
|
IPage<StockMaterialVo> queryAddDtl(StockMaterialQueryParam paramMap, IPage<StockMaterialVo> pages);
|
||||||
|
|
||||||
JSONArray getBoxAllMaterial(String boxNo);
|
JSONArray getBoxAllMaterial(String boxNo);
|
||||||
|
|
||||||
|
List<JSONObject> getAllInventorys(@Param("param") InventoryQueryParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -787,4 +787,44 @@
|
|||||||
AND attr.is_used = '1'
|
AND attr.is_used = '1'
|
||||||
AND attr.storagevehicle_code = #{boxNo}
|
AND attr.storagevehicle_code = #{boxNo}
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package org.nl.b_lms.storage_manage.st.service;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.apache.ibatis.annotations.Param;
|
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.b_lms.storage_manage.st.dao.StIvtStructivt;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto;
|
import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto;
|
||||||
@@ -63,4 +65,11 @@ public interface StIvtStructivtService extends IService<StIvtStructivt> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx);
|
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;
|
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.StIvtStructivt;
|
||||||
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper;
|
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper;
|
||||||
import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService;
|
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);
|
lam.eq(StIvtStructivt::getPcsn, pcsn);
|
||||||
return getOne(lam, throwEx);
|
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