feat: 出库单分配、设置、确认wql->mp
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package org.nl.b_lms.pdm.storagevehicleext.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/30
|
||||
*/
|
||||
@Data
|
||||
@TableName("md_pb_storagevehicleext")
|
||||
public class MdPbStoragevehicleext implements Serializable {
|
||||
/** 载具扩展标识 */
|
||||
@TableId
|
||||
private String storagevehicleext_id;
|
||||
/** 载具标识 */
|
||||
private String storagevehicle_id;
|
||||
/** 载具编码 */
|
||||
private String storagevehicle_code;
|
||||
/** 载具类型 */
|
||||
private String storagevehicle_type;
|
||||
/** 物料标识 */
|
||||
private String material_id;
|
||||
/** 批次 */
|
||||
private String pcsn;
|
||||
/** 数量计量单位标识 */
|
||||
private String qty_unit_id;
|
||||
/** 数量计量单位名称 */
|
||||
private String qty_unit_name;
|
||||
/** 数量 */
|
||||
private BigDecimal storage_qty;
|
||||
/** 工艺指令卡 */
|
||||
private String workordercard_id;
|
||||
/** 配方标识 */
|
||||
private String formula_id;
|
||||
/** 是否需清洗 */
|
||||
private String is_need_clean;
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
/** 修改人 */
|
||||
private String update_optid;
|
||||
/** 修改人姓名 */
|
||||
private String update_optname;
|
||||
/** 修改时间 */
|
||||
private String update_time;
|
||||
/** 设备标识 */
|
||||
private String device_uuid;
|
||||
/** 载具重量 */
|
||||
private String qty;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package org.nl.b_lms.pdm.storagevehicleext.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/30
|
||||
*/
|
||||
public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehicleext> {
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.b_lms.pdm.storagevehicleext.dao.mapper.MdPbStoragevehicleextMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,14 @@
|
||||
package org.nl.b_lms.pdm.storagevehicleext.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/30
|
||||
*/
|
||||
public interface IMdPbStoragevehicleextService extends IService<MdPbStoragevehicleext> {
|
||||
MdPbStoragevehicleext getOneByPcsn(String pcsn);
|
||||
JSONObject getOneByPcsnToObject(String pcsn);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package org.nl.b_lms.pdm.storagevehicleext.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.dao.mapper.MdPbStoragevehicleextMapper;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/30
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStoragevehicleextMapper, MdPbStoragevehicleext> implements IMdPbStoragevehicleextService {
|
||||
@Override
|
||||
public MdPbStoragevehicleext getOneByPcsn(String pcsn) {
|
||||
LambdaQueryWrapper<MdPbStoragevehicleext> lam = new LambdaQueryWrapper<>();
|
||||
lam.eq(MdPbStoragevehicleext::getPcsn, pcsn);
|
||||
return getOne(lam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getOneByPcsnToObject(String pcsn) {
|
||||
MdPbStoragevehicleext oneByPcsn = getOneByPcsn(pcsn);
|
||||
if (ObjectUtil.isEmpty(oneByPcsn)) {
|
||||
return null;
|
||||
}
|
||||
return (JSONObject) JSON.toJSON(oneByPcsn);
|
||||
}
|
||||
}
|
||||
@@ -152,6 +152,13 @@ public interface IpdmBiSubpackagerelationService extends IService<PdmBiSubpackag
|
||||
List<PdmBiSubpackagerelation> getSubPackageInfoBySubRollsStatus(List<String> pcsns, String status);
|
||||
|
||||
List<JSONObject> getSubPackageInfoBySubRollsStatusObject(List<String> pcsns, String status);
|
||||
|
||||
/**
|
||||
* 根据木箱编码获取子卷包装关系信息
|
||||
* @param boxs /
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getSubInfoByBoxNosToObject(List<String> boxs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -905,5 +905,15 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
return org.nl.common.utils.CollectionUtils.mapList(getSubPackageInfoBySubRollsStatus(pcsns, status),
|
||||
pdmBiSubpackagerelation -> (JSONObject) JSON.toJSON(pdmBiSubpackagerelation));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getSubInfoByBoxNosToObject(List<String> boxs) {
|
||||
if (boxs.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<PdmBiSubpackagerelation> lam = new LambdaQueryWrapper<>();
|
||||
lam.in(PdmBiSubpackagerelation::getPackage_box_sn, boxs);
|
||||
return org.nl.common.utils.CollectionUtils.mapList(list(lam), sub -> (JSONObject) JSON.toJSON(sub));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,8 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
|
||||
@Override
|
||||
public SchBasePoint findByCode(String pointCode) {
|
||||
return schBasePointMapper.selectOne( new QueryWrapper<SchBasePoint>().lambda().eq( SchBasePoint::getPoint_code, pointCode));
|
||||
return schBasePointMapper.selectOne( new QueryWrapper<SchBasePoint>().lambda()
|
||||
.eq( SchBasePoint::getPoint_code, pointCode));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.nl.b_lms.sch.task.service;
|
||||
|
||||
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.service.IService;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
@@ -96,6 +98,44 @@ public interface IschBaseTaskService extends IService<SchBaseTask> {
|
||||
List<SchBaseTask> checkHaveStartTask(String pointCode);
|
||||
|
||||
List<SchBaseTask> checkHaveTrussTask(List<String> codes);
|
||||
|
||||
/**
|
||||
* 获取可以使用的任务数组
|
||||
* @param handleClass 任务类
|
||||
* @return
|
||||
*/
|
||||
List<SchBaseTask> getTaskingByHandleClass(String handleClass);
|
||||
/**
|
||||
* 获取可以使用的任务数组Object
|
||||
* @param handleClass 任务类
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getTaskingByHandleClassToObject(String handleClass);
|
||||
|
||||
/**
|
||||
* 根据单据id获取执行中的任务
|
||||
* @param iostorinvId
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getTaskingByFk(String iostorinvId);
|
||||
|
||||
JSONObject getTaskObject(LambdaQueryWrapper<SchBaseTask> taskLam);
|
||||
|
||||
/**
|
||||
* 根据ids获取任务
|
||||
* @param taskIds 标识数组
|
||||
* @param flag 是否判断没有删除的任务
|
||||
* @return
|
||||
*/
|
||||
List<SchBaseTask> getTaskByIds(List<String> taskIds, boolean flag);
|
||||
|
||||
/**
|
||||
* 根据ids获取任务
|
||||
* @param taskIds 标识数组
|
||||
* @param flag 是否判断没有删除的任务
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getTaskByIdsToObject(List<String> taskIds, boolean flag);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package org.nl.b_lms.sch.task.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
@@ -15,6 +18,7 @@ import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.CollectionUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -181,6 +185,66 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
return this.list(lam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBaseTask> getTaskingByHandleClass(String handleClass) {
|
||||
if (ObjectUtil.isEmpty(handleClass)) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<SchBaseTask> task = new LambdaQueryWrapper<>();
|
||||
task.eq(SchBaseTask::getHandle_class, handleClass)
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, "0");
|
||||
return list(task);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getTaskingByHandleClassToObject(String handleClass) {
|
||||
if (ObjectUtil.isEmpty(handleClass)) {
|
||||
return null;
|
||||
}
|
||||
return CollectionUtils.mapList(getTaskingByHandleClass(handleClass), task -> (JSONObject) JSON.toJSON(task));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getTaskingByFk(String iostorinvId) {
|
||||
if (ObjectUtil.isEmpty(iostorinvId)) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<SchBaseTask> taskLam = new LambdaQueryWrapper<>();
|
||||
taskLam.eq(SchBaseTask::getTable_fk, iostorinvId)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, "0");
|
||||
return CollectionUtils.mapList(list(taskLam), task -> (JSONObject) JSON.toJSON(task));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getTaskObject(LambdaQueryWrapper<SchBaseTask> taskLam) {
|
||||
SchBaseTask one = getOne(taskLam);
|
||||
if (ObjectUtil.isEmpty(one)){
|
||||
return null;
|
||||
}
|
||||
return (JSONObject) JSON.toJSON(one);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBaseTask> getTaskByIds(List<String> taskIds, boolean flag) {
|
||||
if (CollectionUtil.isEmpty(taskIds)) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<SchBaseTask> taskLam = new LambdaQueryWrapper<>();
|
||||
taskLam.in(SchBaseTask::getTask_id, taskIds)
|
||||
.eq(flag, SchBaseTask::getIs_delete, "0");
|
||||
return list(taskLam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getTaskByIdsToObject(List<String> taskIds, boolean flag) {
|
||||
if (CollectionUtil.isEmpty(taskIds)) {
|
||||
return null;
|
||||
}
|
||||
return CollectionUtils.mapList(getTaskByIds(taskIds, flag), task -> (JSONObject) JSON.toJSON(task));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -13,11 +13,14 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.SneakyThrows;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelationrecord;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IPdmBiSubpackagerelationrecordService;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
|
||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
||||
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask;
|
||||
@@ -41,7 +44,9 @@ 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.md.service.MdPbMeasureunitService;
|
||||
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.SecurityUtils;
|
||||
@@ -50,6 +55,7 @@ import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.wms.basedata.st.service.StorattrService;
|
||||
import org.nl.wms.basedata.st.service.dto.StorattrDto;
|
||||
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
||||
@@ -151,6 +157,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
@Autowired
|
||||
private StIvtStructivtService structivtService;
|
||||
@Autowired
|
||||
private StIvtStructattrService structattrService;
|
||||
@Autowired
|
||||
private IschBaseTaskService ischBaseTaskService;
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||
@@ -158,7 +166,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
private IPdmBiSubpackagerelationrecordService subpackagerelationrecordService;
|
||||
@Autowired
|
||||
private StIvtSectattrService sectattrService;
|
||||
|
||||
@Autowired
|
||||
private ISysParamService paramService;
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||
@Autowired
|
||||
private IschBasePointService ischBasePointService;
|
||||
@Override
|
||||
@Transactional
|
||||
public String insertMst(JSONObject whereJson) {
|
||||
@@ -201,7 +214,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 插入明细
|
||||
iStIvtIostorinvdtlService.insertOutDtl(rows, mstDao.getIostorinv_id());
|
||||
|
||||
return mstDao.getIostorinv_id().toString();
|
||||
return mstDao.getIostorinv_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -247,7 +260,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
* 1.有销售订单号:用销售订单号、物料去找这批物料最早入库的木箱
|
||||
* 2.没有销售订单号,有子卷号:固定出某个木箱
|
||||
*/
|
||||
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
|
||||
StIvtIostorinv mstDao = this.getById(whereJson.getString("iostorinv_id"));
|
||||
|
||||
// 如果是发货出库则判断运费和物流公司不能为空
|
||||
if (mstDao.getBill_type().equals(IOSEnum.OUT_TYPE.code("发货出库"))) {
|
||||
@@ -675,8 +688,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
@Override
|
||||
public void allSetPoint(JSONObject whereJson) {
|
||||
// 任务表
|
||||
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
// 获取出库单据
|
||||
StIvtIostorinv mstDao = this.getById(whereJson.getString("iostorinv_id"));
|
||||
@@ -695,9 +706,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
boxCheck(whereJson.getString("iostorinv_id"));
|
||||
|
||||
//判断是否有正在执行中的任务
|
||||
List<JSONObject> arr2 = taskService.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status < '" + TaskStatusEnum.FINISHED.getCode() + "' and is_delete ='0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
List<JSONObject> arr2 = ischBaseTaskService.getTaskingByHandleClassToObject(TwoOutTask.class.getName());
|
||||
Map<String, List<JSONObject>> taskGroup = arr2.stream()
|
||||
.collect(Collectors.groupingBy(row -> row.getString("task_group_id")));
|
||||
|
||||
@@ -727,7 +736,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
|
||||
for (List<JSONObject> disLikeList : groupingDisMap.values()) {
|
||||
// 调用任务生成处理
|
||||
// 调用任务生成处理 (有移库直接下发去做,最后返回出库仓位数组)
|
||||
List<JSONObject> taskMangeList = createTaskMange2(disLikeList,mstDao.getIostorinv_id().toString(),allTransactionConsumer);
|
||||
|
||||
// 创建任务并下发一组任务
|
||||
@@ -738,10 +747,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
return arr;
|
||||
}, new JSONArray());
|
||||
// 下发任务:判断当前单据是否有正在执行的的任务
|
||||
JSONArray disArr = taskService.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'")
|
||||
.getResultJSONArray(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(disArr)) {
|
||||
List<JSONObject> disArr = ischBaseTaskService.getTaskingByFk(mstDao.getIostorinv_id());
|
||||
if (CollectionUtil.isEmpty(disArr)) {
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
twoOutTask.immediateNotifyAcs(null);
|
||||
}
|
||||
@@ -1292,27 +1299,22 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
* @return List<JSONObject> 生成任务的集合
|
||||
*/
|
||||
private List<JSONObject> createTaskMange2(List<JSONObject> disLikeList, String iostorinv_id, Consumer<String> allTransactionConsumer) {
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
|
||||
// 获取仓位集合
|
||||
String structCodeIn = disLikeList.stream()
|
||||
List<String> structCodes = disLikeList.stream()
|
||||
.map(row -> row.getString("struct_code"))
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> attrList = attrTab.query("struct_code IN ('" + structCodeIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
.distinct().collect(Collectors.toList());
|
||||
List<JSONObject> attrList = structattrService.getAttributeByCodesToObject(structCodes);
|
||||
|
||||
/*
|
||||
* 判断是否被阻挡
|
||||
*/
|
||||
// 获取所在排所有仓位
|
||||
String rowIn = attrList.stream()
|
||||
List<String> rows = attrList.stream()
|
||||
.map(row -> row.getString("row_num"))
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
.distinct().collect(Collectors.toList());
|
||||
|
||||
List<JSONObject> attrRowList = attrTab.query("stor_id = '" + IOSEnum.STOR_ID.code("二期") + "' AND row_num IN ('" + rowIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
List<JSONObject> attrRowList = structattrService.getRowsAttributeToObject(IOSEnum.STOR_ID.code("二期"), rows);
|
||||
|
||||
// 需移库仓位集合
|
||||
List<JSONObject> needMoveAttrList = new ArrayList<>();
|
||||
@@ -1540,8 +1542,11 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
flag = false;
|
||||
} else {
|
||||
// 为空:判断此木箱是否有任务
|
||||
JSONObject jsonTask = taskService.query("vehicle_code = '" + jsonLow.getString("storagevehicle_code") + "' and task_status <> '07' and is_delete = '0'").uniqueResult(0);
|
||||
|
||||
LambdaQueryWrapper<SchBaseTask> taskLam = new LambdaQueryWrapper<>();
|
||||
taskLam.eq(SchBaseTask::getVehicle_code, jsonLow.getString("storagevehicle_code"))
|
||||
.ne(SchBaseTask::getTask_status, "07")
|
||||
.eq(SchBaseTask::getIs_delete, "0");
|
||||
JSONObject jsonTask = ischBaseTaskService.getTaskObject(taskLam);
|
||||
if (ObjectUtil.isNotEmpty(jsonTask)) {
|
||||
flag = false;
|
||||
}
|
||||
@@ -1767,27 +1772,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建任务
|
||||
* 创建任务(通过仓位集合创建)
|
||||
* @param taskMangeList:仓位集合
|
||||
* @param disLikeList:分配明细集合
|
||||
* @param point_code : 终点
|
||||
*/
|
||||
private void createTask2(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code, Consumer<String> allTransactionConsumer) {
|
||||
// 任务表
|
||||
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
|
||||
// 点位表
|
||||
WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point");
|
||||
// 载具扩展属性表
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
// 查询异常货位任务集合
|
||||
String TaskCodeIn = taskMangeList.stream()
|
||||
List<String> taskIds = taskMangeList.stream()
|
||||
.filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")))
|
||||
.map(row -> row.getString("task_code"))
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
.distinct().collect(Collectors.toList());
|
||||
|
||||
List<JSONObject> taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
List<SchBaseTask> taskList = ischBaseTaskService.getTaskByIds(taskIds, true);
|
||||
|
||||
// 任务组标识
|
||||
String task_group_id = IdUtil.getStringId();
|
||||
@@ -1797,12 +1794,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 是否自动下发
|
||||
String is_auto_issue = IOSEnum.IS_SEND.code("是");
|
||||
|
||||
WQLObject paramTab = WQLObject.getWQLObject("sys_param");
|
||||
|
||||
JSONObject jsonParam = paramTab.query("code = 'one_or_two_struct'").uniqueResult(0);
|
||||
Param oneOrTwoStruct = paramService.findByCode("one_or_two_struct");
|
||||
String flag = "0";
|
||||
if (ObjectUtil.isNotEmpty(jsonParam)) {
|
||||
flag = jsonParam.getString("value");
|
||||
if (ObjectUtil.isNotEmpty(oneOrTwoStruct)) {
|
||||
flag = oneOrTwoStruct.getValue();
|
||||
}
|
||||
for (int i = 0; i < taskMangeList.size(); i++) {
|
||||
JSONObject json = taskMangeList.get(i);
|
||||
@@ -1835,14 +1830,13 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
* 完成:生成完成任务的point_code2 当做起点的任务
|
||||
* 未完成:只更新分配明细状态为生成
|
||||
*/
|
||||
JSONObject jsonTask = taskList.stream()
|
||||
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
SchBaseTask jsonTask = taskList.stream()
|
||||
.filter(row -> row.getTask_id().equals(json.getString("task_code")))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
// 完成
|
||||
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
start_device_code = jsonTask.getString("point_code2");
|
||||
if (TaskStatusEnum.FINISHED.getCode().equals(jsonTask.getTask_status())) {
|
||||
start_device_code = jsonTask.getPoint_code2();
|
||||
is_auto_issue = IOSEnum.IS_SEND.code("否");
|
||||
} else {
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
@@ -1853,15 +1847,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
|
||||
taskService.update(jsonTask);
|
||||
jsonTask.setIs_auto_issue(IOSEnum.IS_SEND.code("否"));
|
||||
ischBaseTaskService.updateById(jsonTask);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
|
||||
}
|
||||
@@ -1898,15 +1891,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
String task_id = twoOutTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新分配明细
|
||||
JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonPoint)) {
|
||||
SchBasePoint point = ischBasePointService.findByCode(end_device_code);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
throw new BadRequestException("出库点位不存在:"+end_device_code);
|
||||
}
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(task_id);
|
||||
row.setPoint_id(jsonPoint.getString("point_id"));
|
||||
row.setPoint_id(point.getPoint_id());
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
}
|
||||
|
||||
@@ -180,24 +180,19 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
||||
);
|
||||
|
||||
// 查询所有对应物料集合
|
||||
String materialIdIn = rows.stream()
|
||||
List<String> materialIds = rows.stream()
|
||||
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)).getString("material_id"))
|
||||
.distinct()
|
||||
.collect(Collectors.joining("','"));
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<JSONObject> materList = WQLObject.getWQLObject("md_me_materialbase")
|
||||
.query("material_id in ('" + materialIdIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
List<JSONObject> materList = materialbaseService.getMaterialAllByIdsToObject(materialIds);
|
||||
|
||||
// 查询所有物料对应的计量单位
|
||||
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<>();
|
||||
|
||||
@@ -8,6 +8,7 @@ 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.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
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;
|
||||
@@ -22,6 +23,7 @@ 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.MaterialbaseService;
|
||||
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;
|
||||
@@ -118,6 +120,10 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
private StIvtSectattrService sectattrService;
|
||||
@Autowired
|
||||
private StIvtStructattrService structattrService;
|
||||
@Autowired
|
||||
private MaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -381,8 +387,6 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
|
||||
//物料表
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
// 载具扩展属性表
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
// 获取子卷包装集合
|
||||
String vehilcle_in = list.stream()
|
||||
@@ -489,8 +493,7 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name"));
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
|
||||
}
|
||||
@@ -522,30 +525,17 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
|
||||
@Override
|
||||
public void createMove2(List<JSONObject> list, Consumer<String> allTransactionConsumer) {
|
||||
//子卷包装关系表
|
||||
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
|
||||
|
||||
//物料表
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
// 载具扩展属性表
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
// 获取子卷包装集合
|
||||
String vehilcle_in = list.stream()
|
||||
List<String> boxs = list.stream()
|
||||
.map(row -> row.getString("storagevehicle_code"))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> subList = subTab.query("package_box_sn IN ('" + vehilcle_in + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
.collect(Collectors.toList());
|
||||
List<JSONObject> subList = subpackagerelationService.getSubInfoByBoxNosToObject(boxs);
|
||||
|
||||
// 查询物料集合
|
||||
String materialCode_in = subList.stream()
|
||||
List<String> materialCodes = subList.stream()
|
||||
.map(row -> row.getString("product_name"))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> materList = materTab.query("material_code IN ('" + materialCode_in + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
.collect(Collectors.toList());
|
||||
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
JSONObject json = list.get(i);
|
||||
@@ -637,8 +627,8 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name"));
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.md.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
|
||||
import org.nl.wms.basedata.master.service.dto.MaterialbaseDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
@@ -98,4 +99,17 @@ public interface MaterialbaseService {
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getMaterialAllByCodes(List<String> materialCodes);
|
||||
|
||||
/**
|
||||
* 根据ids获取物料信息
|
||||
* @param materialIds
|
||||
* @return
|
||||
*/
|
||||
List<MdMeMaterialBase> getMaterialAllByIds(List<String> materialIds);
|
||||
/**
|
||||
* 根据ids获取物料信息,转List<JSONObject>
|
||||
* @param materialIds
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getMaterialAllByIdsToObject(List<String> materialIds);
|
||||
}
|
||||
|
||||
@@ -245,4 +245,23 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
||||
return CollectionUtils.mapList(materialBases, material -> (JSONObject) JSON.toJSON(material));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MdMeMaterialBase> getMaterialAllByIds(List<String> materialIds) {
|
||||
if (materialIds.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<MdMeMaterialBase> lam = new LambdaQueryWrapper<>();
|
||||
lam.in(MdMeMaterialBase::getMaterial_id, materialIds);
|
||||
List<MdMeMaterialBase> materialBases = mdMeMaterialBaseMapper.selectList(lam);
|
||||
return materialBases;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getMaterialAllByIdsToObject(List<String> materialIds) {
|
||||
if (materialIds.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
return CollectionUtils.mapList(getMaterialAllByIds(materialIds), material -> (JSONObject) JSON.toJSON(material));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.wms.stat.service.dto.PastStructPageParam;
|
||||
import org.nl.wms.stat.service.vo.PastStructPageVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -42,4 +43,8 @@ public interface StIvtStructivtMapper extends BaseMapper<StIvtStructivt> {
|
||||
JSONArray getBoxAllMaterial(String boxNo);
|
||||
|
||||
List<JSONObject> getAllInventorys(@Param("param") InventoryQueryParam param);
|
||||
|
||||
JSONArray getOutBillDis2(Map param);
|
||||
|
||||
JSONArray getOutBillTask(Map param);
|
||||
}
|
||||
|
||||
@@ -827,4 +827,96 @@
|
||||
</if>
|
||||
order by ivt.instorage_time ASC
|
||||
</select>
|
||||
<select id="getOutBillDis2" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
dis.*,
|
||||
ios.io_type,
|
||||
ios.bill_code,
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
task.task_code,
|
||||
task.task_status,
|
||||
task.task_type,
|
||||
point2.point_code,
|
||||
sub.sap_pcsn,
|
||||
attr.out_order_seq,
|
||||
attr.row_num,
|
||||
attr.col_num,
|
||||
attr.layer_num,
|
||||
attr.block_num,
|
||||
attr.placement_type,
|
||||
sub.sale_order_name,
|
||||
sub.width_standard
|
||||
FROM
|
||||
ST_IVT_IOStorInvDis dis
|
||||
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id
|
||||
LEFT JOIN SCH_BASE_Task task ON task.task_id = dis.task_id AND task.is_delete = '0'
|
||||
LEFT JOIN SCH_BASE_Point point2 ON point2.point_id = dis.point_id
|
||||
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.storagevehicle_code = sub.package_box_sn
|
||||
WHERE
|
||||
1=1
|
||||
<if test="iostorinvdtl_id != '' and iostorinvdtl_id != null">
|
||||
AND dis.iostorinvdtl_id = #{iostorinvdtl_id}
|
||||
</if>
|
||||
<if test="task_id != '' and task_id != null">
|
||||
AND dis.task_id = #{task_id}
|
||||
</if>
|
||||
<if test="iostorinv_id != '' and iostorinv_id != null">
|
||||
AND dis.iostorinv_id = #{iostorinv_id}
|
||||
</if>
|
||||
<if test="iostorinvdis_id != '' and iostorinvdis_id != null">
|
||||
AND dis.iostorinvdis_id = #{iostorinvdis_id}
|
||||
</if>
|
||||
<if test="is_issued != '' and is_issued != null">
|
||||
AND dis.is_issued = #{is_issued}
|
||||
</if>
|
||||
<if test="struct_id != '' and struct_id != null">
|
||||
AND dis.struct_id = #{struct_id}
|
||||
</if>
|
||||
<if test="bill_status != '' and bill_status != null">
|
||||
AND dis.work_status <![CDATA[ <= ]]> #{bill_status}
|
||||
</if>
|
||||
order by dis.box_no,dis.pcsn
|
||||
</select>
|
||||
<select id="getOutBillTask" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
dis.*,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
point.point_code AS next_point_code,
|
||||
task.task_id,
|
||||
task.task_code,
|
||||
task.task_type,
|
||||
task.task_status,
|
||||
(case when IFNULL(record.sap_pcsn,'') = '' then sub.sap_pcsn else record.sap_pcsn end) AS sap_pcsn,
|
||||
md.class_name task_type_name
|
||||
FROM
|
||||
st_ivt_iostorinvdis dis
|
||||
LEFT JOIN md_me_materialbase mater ON dis.material_id = mater.material_id
|
||||
LEFT JOIN sch_base_point point ON dis.point_id = point.point_id
|
||||
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id
|
||||
LEFT JOIN sch_base_task task ON dis.task_id = task.task_id
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON dis.pcsn = sub.container_name
|
||||
LEFT JOIN pdm_bi_subpackagerelationrecord record ON record.container_name = dis.pcsn AND ios.bill_code = record.bill_code
|
||||
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
|
||||
WHERE
|
||||
1=1
|
||||
<if test="iostorinvdtl_id != '' and iostorinvdtl_id != null">
|
||||
AND dis.iostorinvdtl_id = #{iostorinvdtl_id}
|
||||
</if>
|
||||
<if test="iostorinv_id != '' and iostorinv_id != null">
|
||||
AND dis.iostorinv_id = #{iostorinv_id}
|
||||
</if>
|
||||
<if test="is_issued != '' and is_issued != null">
|
||||
AND dis.is_issued = #{is_issued}
|
||||
</if>
|
||||
<if test="struct_id != '' and struct_id != null">
|
||||
AND dis.struct_id = #{struct_id}
|
||||
</if>
|
||||
<if test="task_status != '' and task_status != null">
|
||||
AND task.task_status = #{task_status}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.nl.b_lms.storage_manage.st.dao.StIvtStructattr;
|
||||
@@ -23,4 +24,25 @@ public interface StIvtStructattrService extends IService<StIvtStructattr> {
|
||||
* @return
|
||||
*/
|
||||
IPage<StIvtStructattr> emptyPalletInventoryPage(EmptyVehicleParam paramMap, PageQuery page);
|
||||
|
||||
/**
|
||||
* 根据仓位编码获取仓位属性
|
||||
* @param structCodes
|
||||
* @return
|
||||
*/
|
||||
List<StIvtStructattr> getAttributeByCodes(List<String> structCodes);
|
||||
/**
|
||||
* 根据仓位编码获取仓位属性
|
||||
* @param structCodes
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getAttributeByCodesToObject(List<String> structCodes);
|
||||
|
||||
/**
|
||||
* 获取仓位属性
|
||||
* @param stor 仓库id
|
||||
* @param rows 排
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getRowsAttributeToObject(String stor, List<String> rows);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.nl.b_lms.storage_manage.st.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.metadata.IPage;
|
||||
@@ -10,6 +12,7 @@ import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr;
|
||||
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper;
|
||||
import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.CollectionUtils;
|
||||
import org.nl.wms.basedata.st.service.dto.EmptyVehicleParam;
|
||||
import org.nl.wms.basedata.st.service.vo.EmptyVehicleVo;
|
||||
import org.nl.wms.stat.service.vo.PastStructPageVo;
|
||||
@@ -48,4 +51,29 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
structattrMapper.selectPage(pages, lam);
|
||||
return pages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StIvtStructattr> getAttributeByCodes(List<String> structCodes) {
|
||||
if (structCodes.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<StIvtStructattr> lam = new LambdaQueryWrapper<>();
|
||||
lam.in(StIvtStructattr::getStruct_code, structCodes);
|
||||
return list(lam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getAttributeByCodesToObject(List<String> structCodes) {
|
||||
if (structCodes.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
return CollectionUtils.mapList(getAttributeByCodes(structCodes), attr -> (JSONObject) JSON.toJSON(attr));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getRowsAttributeToObject(String stor, List<String> rows) {
|
||||
LambdaQueryWrapper<StIvtStructattr> lam = new LambdaQueryWrapper<>();
|
||||
lam.in(StIvtStructattr::getRow_num, rows).eq(StIvtStructattr::getStor_id, stor);
|
||||
return CollectionUtils.mapList(list(lam), attr -> (JSONObject) JSON.toJSON(attr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,27 +133,18 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
|
||||
@Override
|
||||
public JSONArray getOutBillDis2(Map whereJson) {
|
||||
whereJson.put("flag", "52");
|
||||
JSONArray jo = WQL.getWO("QST_IVT_CHECKOUTBILL")
|
||||
.addParamMap((HashMap) whereJson)
|
||||
.process()
|
||||
.getResultJSONArray(0);
|
||||
return jo;
|
||||
return stIvtStructivtMapper.getOutBillDis2(whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getOutBillTask(Map whereJson) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
map.put("flag", "10");
|
||||
if ("true".equals(map.get("checked"))) {
|
||||
map.put("task_status", "99");
|
||||
}
|
||||
JSONArray jo = new JSONArray();
|
||||
if (map.containsKey("iostorinvdtl_id")) {
|
||||
jo = WQL.getWO("QST_IVT_CHECKOUTBILL")
|
||||
.addParamMap(map)
|
||||
.process()
|
||||
.getResultJSONArray(0);
|
||||
jo = stIvtStructivtMapper.getOutBillTask(map);
|
||||
}
|
||||
return jo;
|
||||
}
|
||||
|
||||
@@ -2,10 +2,16 @@ package org.nl.test;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/23
|
||||
@@ -15,4 +21,12 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
@DisplayName("event test")
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class EventTest {
|
||||
@Autowired
|
||||
private StIvtStructivtMapper stIvtStructivtMapper;
|
||||
@Test
|
||||
public void Test_01() {
|
||||
Map whereJson = new HashMap();
|
||||
whereJson.put("iostorinvdtl_id", "1");
|
||||
stIvtStructivtMapper.getOutBillDis2(whereJson);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user