add:出库一键设置
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
package org.nl.b_lms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 二期出库异常任务类
|
||||
* Created by Lxy on 2024/1/19.
|
||||
*/
|
||||
public class TwoOutExceptionalTask extends AbstractAcsTask {
|
||||
|
||||
/**
|
||||
* 处理类
|
||||
*/
|
||||
private final String THIS_CLASS = TwoOutExceptionalTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
/*
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.vehicle_code(json.getString("vehicle_code"))
|
||||
.priority(json.getString("priority"))
|
||||
.class_type(json.getString("task_type"))
|
||||
.dtl_type(String.valueOf(dtl_type))
|
||||
.remark(json.getString("remark"))
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
// 出入库分配明细表
|
||||
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis");
|
||||
// 点位表
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
|
||||
JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0);
|
||||
|
||||
// 更新任务的参数
|
||||
JSONObject map = new JSONObject();
|
||||
|
||||
/*
|
||||
* 1-执行中, 2-完成 ,0-acs取消
|
||||
*/
|
||||
// 执行中
|
||||
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
|
||||
|
||||
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
|
||||
// 完成
|
||||
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
|
||||
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
// 判断任务是否被标记
|
||||
if (jsonTask.getString("is_auto_issue").equals(IOSEnum.IS_SEND.code("否"))) {
|
||||
// 创建出库任务
|
||||
JSONObject jsonDis = disTab.query("iostorinv_id = '" + jsonTask.getString("table_fk") + "' and struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
|
||||
JSONObject jsonPoint = pointTab.query("region_id = '" + RegionTypeEnum.TWO_OUT01.getId() + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
|
||||
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010504");
|
||||
jsonTaskParam.put("point_code1", jsonTask.getString("point_code2"));
|
||||
jsonTaskParam.put("point_code2", jsonPoint.getString("point_code"));
|
||||
jsonTaskParam.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||
jsonTaskParam.put("task_group_id", jsonDis.getString("task_id"));
|
||||
jsonTaskParam.put("is_auto_issue", IOSEnum.IS_SEND.code("否"));
|
||||
jsonTaskParam.put("table_fk", jsonTask.getString("table_fk"));
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅")));
|
||||
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
String task_id = twoOutTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新分配明细
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("task_id",task_id);
|
||||
param.put("point_id",jsonPoint.getString("point_id"));
|
||||
disTab.update(param,"iostorinv_id = '"+jsonTask.getString("table_fk")+"' and struct_code = '"+jsonTask.getString("point_code1")+"'");
|
||||
}
|
||||
}
|
||||
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
|
||||
if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
|
||||
// 更新任务表删除字段
|
||||
map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
|
||||
}
|
||||
map.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
map.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
map.put("update_time", DateUtil.now());
|
||||
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void findStartPoint() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void findNextPoint() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject form) {
|
||||
|
||||
if (StrUtil.isBlank(form.getString("task_type"))) {
|
||||
throw new BadRequestException("业务类型不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("start_device_code"))) {
|
||||
throw new BadRequestException("起点不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("next_device_code"))) {
|
||||
throw new BadRequestException("终点不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("vehicle_code"))) {
|
||||
throw new BadRequestException("托盘号不能为空!");
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
json.put("point_code1", form.getString("start_device_code"));
|
||||
json.put("point_code2", form.getString("next_device_code"));
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("table_fk", form.getString("table_fk"));
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "7");
|
||||
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forceFinish(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消"));
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,12 @@ package org.nl.b_lms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.impl.StIvtIostorinvOutServiceImpl;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
@@ -15,18 +15,16 @@ import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.st.inbill.service.CheckOutBillService;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Created by Lxy on 2021/12/22.
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class TwoOutTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = TwoOutTask.class.getName();
|
||||
|
||||
@@ -41,10 +39,24 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
map.put("handle_class", THIS_CLASS);
|
||||
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
|
||||
List<JSONObject> arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by sort_seq")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 根据任务组分组
|
||||
Map<String, List<JSONObject>> groupMap = arr.stream()
|
||||
.collect(Collectors.groupingBy(row -> row.getString("task_group_id")));
|
||||
|
||||
List<JSONObject> taskArr = new ArrayList<>();
|
||||
|
||||
for(String task_group_id : groupMap.keySet()) {
|
||||
taskArr = groupMap.get(task_group_id);
|
||||
continue;
|
||||
}
|
||||
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject json = taskArr.get(i);
|
||||
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
@@ -79,7 +91,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonTask)) {
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
// 任务为执行之后就不允许取消
|
||||
if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消");
|
||||
@@ -92,11 +104,11 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
|
||||
// 更新分配明细为:未生成
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("work_status", "00");
|
||||
map.put("work_status", IOSEnum.WORK_STATUS.code("未生成"));
|
||||
map.put("point_id", "");
|
||||
map.put("task_id", "");
|
||||
|
||||
disTab.update(map, "task_id = '" + task_id + "'");
|
||||
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
@@ -108,26 +120,16 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
|
||||
// 判断此任务是否有任务组
|
||||
String task_group_id = jsonTask.getString("task_group_id");
|
||||
if (ObjectUtil.isNotEmpty(task_group_id)) {
|
||||
// 上一个任务组顺序号
|
||||
String sort_seq_last = NumberUtil.sub(jsonTask.getString("sort_seq"), "1").toString();
|
||||
}
|
||||
|
||||
// 调用标识完成
|
||||
CheckOutBillService checkOutBillService = SpringContextHolder.getBean(CheckOutBillService.class);
|
||||
checkOutBillService.finishTask(jsonTask);
|
||||
StIvtIostorinvOutServiceImpl bean = SpringContextHolder.getBean(StIvtIostorinvOutServiceImpl.class);
|
||||
bean.finishTask(jsonTask);
|
||||
// 判断此任务组是否全部完成
|
||||
JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'")
|
||||
.getResultJSONArray(0);
|
||||
|
||||
// 更改任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("update_optid", currentUserId);
|
||||
jsonTask.put("update_optname", currentUsername);
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
taskTab.update(jsonTask);
|
||||
if (ObjectUtil.isEmpty(resultJSONArray)) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +161,9 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
json.put("point_code2", form.getString("point_code2"));
|
||||
json.put("material_id", form.getString("material_id"));
|
||||
json.put("task_group_id", form.getString("task_group_id"));
|
||||
json.put("sort_seq", form.getString("sort_seq"));
|
||||
json.put("is_auto_issue", form.getString("is_auto_issue"));
|
||||
json.put("table_fk", form.getString("table_fk"));
|
||||
json.put("sort_seq", form.getIntValue("sort_seq"));
|
||||
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
json.put("handle_class", THIS_CLASS);
|
||||
@@ -182,6 +186,6 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, "0");
|
||||
this.updateTaskStatus(taskObj, IOSEnum.IS_NOTANDYES.code("否"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,8 @@ public enum IOSEnum {
|
||||
|
||||
//仓位锁定类型
|
||||
LOCK_TYPE(MapOf.of("未锁定", "1", "入库锁", "2", "出库锁", "3", "空托盘出库锁", "4",
|
||||
"空托盘入库锁", "5", "移出锁", "6", "移入锁", "7","木箱入库锁","8","木箱出库锁","9", "其它", "99"
|
||||
"空托盘入库锁", "5", "移出锁", "6", "移入锁", "7","木箱入库锁","8","木箱出库锁","9",
|
||||
"出库异常锁","10","其它", "99"
|
||||
)),
|
||||
|
||||
//仓库id
|
||||
@@ -81,6 +82,9 @@ public enum IOSEnum {
|
||||
//仓位伸位
|
||||
ZDEPTH_STRUCT(MapOf.of("浅", "1","深","2","无","3")),
|
||||
|
||||
//是否自动下发
|
||||
IS_SEND(MapOf.of("是", "1","否","2")),
|
||||
|
||||
//外部系统
|
||||
EXT_SYSTEM(MapOf.of("mes", "mes","sap","sap","crm","crm")),
|
||||
;
|
||||
|
||||
@@ -119,4 +119,11 @@ public interface IStIvtIostorinvOutService extends IService<StIvtIostorinv> {
|
||||
* }
|
||||
*/
|
||||
void confirm(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 标识完成
|
||||
* @param whereJson: 任务对象
|
||||
*/
|
||||
void finishTask(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -21,6 +22,7 @@ import java.math.BigDecimal;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinvdis")
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
public class StIvtIostorinvdis implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
ST_IVT_IOStorInvDis dis
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn
|
||||
WHERE
|
||||
1 = 1
|
||||
dis.work_status = '00'
|
||||
<if test="iostorinvdtl_id != null and iostorinvdtl_id != ''">
|
||||
AND dis.iostorinvdtl_id= #{iostorinvdtl_id}
|
||||
</if>
|
||||
|
||||
@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
|
||||
@@ -21,6 +23,7 @@ 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.util.service.InBussManageService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussManageService;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -30,6 +33,7 @@ import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
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;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -87,6 +91,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
@Autowired
|
||||
private IStIvtIostorinvService iStIvtIostorinvService;
|
||||
|
||||
/**
|
||||
* 入库业务处理服务
|
||||
*/
|
||||
@Autowired
|
||||
private InBussManageService inBussManageService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public String insertMst(JSONObject whereJson) {
|
||||
@@ -520,9 +530,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
@Override
|
||||
@Transactional
|
||||
public void allSetPoint(JSONObject whereJson) {
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
|
||||
|
||||
// 判断是否有正在执行中的任务
|
||||
List<JSONObject> arr = taskTab.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "' and is_delete ='0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(arr)) {
|
||||
throw new BadRequestException("当前有出库任务正在执行,请稍后在试!");
|
||||
}
|
||||
|
||||
// 查询此明细所有未生成的分配明细
|
||||
List<JSONObject> disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson);
|
||||
|
||||
@@ -548,6 +568,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
for (List<JSONObject> disLikeList : groupingDisMap.values()) {
|
||||
// 调用任务生成处理
|
||||
List<JSONObject> taskMangeList = createTaskMange(disLikeList,mstDao.getIostorinv_id().toString());
|
||||
|
||||
// 创建任务并下发一组任务
|
||||
createTask(taskMangeList,disLikeList,whereJson.getString("point_code"));
|
||||
}
|
||||
|
||||
// 下发任务:判断当前单据是否有正在执行的的任务
|
||||
JSONArray disArr = taskTab.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'")
|
||||
.getResultJSONArray(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(disArr)) {
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
twoOutTask.immediateNotifyAcs(null);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -625,11 +657,13 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
needUpdateIvtList.add(jsonIvt);
|
||||
|
||||
if (disDao.getTask_id() != null) {
|
||||
|
||||
needUpdateTaskList.add(disDao.getTask_id().toString());
|
||||
}
|
||||
}
|
||||
|
||||
// 处理异常货位
|
||||
UpdateExceptional(disDaoList);
|
||||
|
||||
// 更新库存
|
||||
outBussManageService.upateIvt(needUpdateIvtList,mstDao,IOSEnum.IVT_CHANGE.code("减库存"));
|
||||
|
||||
@@ -766,6 +800,86 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void finishTask(JSONObject whereJson) {
|
||||
//任务表
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
|
||||
// 查询任务
|
||||
JSONObject jsonTask = wo_Task.query("task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' and task_id = '" + whereJson.getString("task_id") + "'")
|
||||
.uniqueResult(0);
|
||||
|
||||
if (jsonTask == null) {
|
||||
throw new BadRequestException("查询不到操作的任务记录!"+whereJson.getString("task_id"));
|
||||
}
|
||||
|
||||
// 查询分配明细
|
||||
List<StIvtIostorinvdis> disDaoList = iStIvtIostorinvdisService.list(
|
||||
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
||||
.eq(StIvtIostorinvdis::getTask_id, whereJson.getString("task_id"))
|
||||
);
|
||||
|
||||
StIvtIostorinvdis disDao = disDaoList.get(0);
|
||||
|
||||
// 查询主表
|
||||
StIvtIostorinv mstDao = this.getById(disDao.getIostorinv_id());
|
||||
|
||||
if (ObjectUtil.isEmpty(mstDao)) {
|
||||
throw new BadRequestException("未查询到对应的出库单据!");
|
||||
}
|
||||
|
||||
if (IOSEnum.OUT_TYPE.code("改切出库").equals(mstDao.getBill_type()) || IOSEnum.OUT_TYPE.code("返检出库").equals(mstDao.getBill_type())) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("need_delete", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
|
||||
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(map, "package_box_sn = '" + jsonTask.getString("vehicle_code") + "'");
|
||||
|
||||
JSONArray rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + jsonTask.getString("vehicle_code") + "'").getResultJSONArray(0);
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
JSONObject row = rows.getJSONObject(i);
|
||||
//插入包装关系出入库记录表
|
||||
row.put("bill_code", mstDao.getBill_code());
|
||||
row.put("bill_id", mstDao.getIostorinv_id());
|
||||
row.put("bill_type", mstDao.getBill_type());
|
||||
row.put("io_type", IOSEnum.IO_TYPE.code("出库"));
|
||||
row.put("insert_time", DateUtil.now());
|
||||
row.put("record_id", cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextId());
|
||||
WQLObject.getWQLObject("pdm_bi_subpackagerelationrecord").insert(row);
|
||||
}
|
||||
}
|
||||
|
||||
//更新任务为完成
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
map.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
map.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
map.put("update_time", DateUtil.now());
|
||||
|
||||
wo_Task.update(map, "task_id='" + whereJson.getString("task_id") + "'");
|
||||
|
||||
// 查询此任务下所有的分配明细
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("完成"));
|
||||
});
|
||||
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 更新明细状态
|
||||
iStIvtIostorinvdtlService.updateStatus(disDao.getIostorinvdtl_id());
|
||||
|
||||
//判断是否还有未完成的明细
|
||||
List<StIvtIostorinvdtl> dtlDaoList = iStIvtIostorinvdtlService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtl>().lambda()
|
||||
.eq(StIvtIostorinvdtl::getIostorinv_id, mstDao.getIostorinv_id())
|
||||
.ne(StIvtIostorinvdtl::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
);
|
||||
|
||||
if (ObjectUtil.isEmpty(dtlDaoList)) {
|
||||
this.confirm(JSONObject.parseObject(JSON.toJSONString(mstDao)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建调拨入库单
|
||||
* @param disDaoList:出库分配明细集合
|
||||
@@ -882,10 +996,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
List<JSONObject> attrRowList = attrTab.query("stor_id = '" + IOSEnum.STOR_ID.code("二期") + "' AND row_num IN ('" + rowIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 需生成出库任务的仓位集合
|
||||
// 需移库仓位集合
|
||||
List<JSONObject> needMoveAttrList = new ArrayList<>();
|
||||
|
||||
// 需移库仓位集合
|
||||
// 需生成出库任务的仓位集合
|
||||
List<JSONObject> needCreateAttrList = new ArrayList<>();
|
||||
|
||||
// 循环准备任务参数
|
||||
@@ -894,19 +1008,22 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
// 判断是深位还是浅位
|
||||
if (jsonAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||
// 深位,判断对应浅位是否阻挡
|
||||
// 深位:判断对应浅位是否阻挡
|
||||
JSONObject jsonBoxStop = ifBoxStop(jsonAttr,attrRowList,iostorinv_id);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonBoxStop)) {
|
||||
// 加入需要移库的集合
|
||||
needMoveAttrList.add(jsonBoxStop);
|
||||
}
|
||||
|
||||
// 加入需生成任务的集合
|
||||
needCreateAttrList.add(jsonAttr);
|
||||
}
|
||||
// 加入需要出库的集合
|
||||
needCreateAttrList.add(jsonAttr);
|
||||
}
|
||||
return needMoveAttrList;
|
||||
|
||||
// 创建移库单下发移库任务
|
||||
outBussManageService.createMove(needMoveAttrList);
|
||||
|
||||
return needCreateAttrList;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -917,6 +1034,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
* @return JSONObject 需要移库的仓位
|
||||
*/
|
||||
private JSONObject ifBoxStop(JSONObject jsonAttr, List<JSONObject> attrRowList, String iostorinv_id) {
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
// 子卷包装关系表
|
||||
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
@@ -941,15 +1064,225 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 未锁定说明可以移库
|
||||
if (jsonLow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
result = jsonLow;
|
||||
} else {
|
||||
// 锁定
|
||||
// TODO 判断是否是此单据下的木箱 || 不同单据下的(在分配时做限制只允许一个单据的任务做完才能分配)
|
||||
} else if (jsonLow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库锁"))) {
|
||||
boolean flag = true;
|
||||
|
||||
// 判断是否是此单据下相同订单、长宽高、物料的木箱
|
||||
List<StIvtIostorinvdis> disDaoList = iStIvtIostorinvdisService.list(
|
||||
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
||||
.eq(StIvtIostorinvdis::getIostorinv_id, iostorinv_id)
|
||||
.eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code"))
|
||||
);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(disDaoList)) {
|
||||
// 相同
|
||||
JSONObject jsonSub1 = subTab.query("package_box_sn = '" + jsonAttr.getString("storagevehicle_code") + "'").uniqueResult(0);
|
||||
JSONObject jsonSub2 = subTab.query("package_box_sn = '" + jsonLow.getString("storagevehicle_code") + "'").uniqueResult(0);
|
||||
|
||||
if (jsonSub1.getString("sale_order_name").equals(jsonSub2.getString("sale_order_name")) &&
|
||||
jsonSub1.getString("box_length").equals(jsonSub2.getString("box_length")) &&
|
||||
jsonSub1.getString("box_width").equals(jsonSub2.getString("box_width")) &&
|
||||
jsonSub1.getString("box_high").equals(jsonSub2.getString("box_high")) &&
|
||||
jsonSub1.getString("product_name").equals(jsonSub2.getString("product_name"))) {
|
||||
|
||||
flag = false;
|
||||
} else {
|
||||
// 不相同:判断是否有此木箱的任务
|
||||
JSONObject jsonTask = taskTab.query("table_fk = '" + iostorinv_id + "' and vehicle_code = '" + jsonLow.getString("storagevehicle_code") + "' and is_delete = '0'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonTask)) {
|
||||
flag = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
// 查询移入货位
|
||||
JSONObject moveParam = new JSONObject();
|
||||
moveParam.put("stor_id", IOSEnum.STOR_ID.code("二期"));
|
||||
moveParam.put("sect_id", RegionTypeEnum.TWO_ZZ01.getId());
|
||||
moveParam.put("box_no", jsonLow.getString("storagevehicle_code"));
|
||||
// moveParam.put("material_id", jsonMater.getString("material_id"));
|
||||
JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
|
||||
|
||||
// 生成任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010504");
|
||||
jsonTaskParam.put("start_device_code", jsonLow.getString("struct_code"));
|
||||
jsonTaskParam.put("next_device_code", jsonMove.getString("struct_code"));
|
||||
jsonTaskParam.put("vehicle_code", jsonLow.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("table_fk", iostorinv_id);
|
||||
|
||||
TwoOutExceptionalTask taskBean = new TwoOutExceptionalTask();
|
||||
String task_id = taskBean.createTask(jsonTaskParam);
|
||||
taskBean.immediateNotifyAcs(task_id);
|
||||
|
||||
// 锁定:标记货位为异常并生成异常移库任务
|
||||
jsonLow.put("lock_type", IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonLow.put("task_code", task_id);
|
||||
attrTab.update(jsonLow);
|
||||
|
||||
// 更新移入货位为出库异常货位
|
||||
jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonLow.put("task_code", task_id);
|
||||
attrTab.update(jsonMove);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建任务
|
||||
* @param taskMangeList:仓位集合
|
||||
* @param disLikeList:分配明细集合
|
||||
* @param point_code : 终点
|
||||
*/
|
||||
private void createTask(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code) {
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
// 点位表
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
|
||||
// 查询异常货位任务集合
|
||||
String TaskCodeIn = taskMangeList.stream()
|
||||
.filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")))
|
||||
.map(row -> row.getString("task_code"))
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> taskList = taskTab.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 任务组标识
|
||||
String task_group_id = IdUtil.getStringId();
|
||||
|
||||
// 起点
|
||||
String start_device_code = "";
|
||||
// 是否自动下发
|
||||
String is_auto_issue = IOSEnum.IS_SEND.code("是");
|
||||
|
||||
for (int i = 0; i < taskMangeList.size(); i++) {
|
||||
JSONObject json = taskMangeList.get(i);
|
||||
start_device_code = json.getString("struct_code");
|
||||
|
||||
// 过滤此仓位的分配明细
|
||||
List<StIvtIostorinvdis> disDaoList = disLikeList.stream()
|
||||
.filter(row -> row.getString("struct_code").equals(json.getString("struct_code")))
|
||||
.map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), StIvtIostorinvdis.class))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 判断是否是异常货位
|
||||
if (json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) {
|
||||
/*
|
||||
* 判断异常货位上的任务是否完成
|
||||
* 完成:生成完成任务的point_code2 当做起点的任务
|
||||
* 未完成:只更新分配明细状态为生成
|
||||
*/
|
||||
JSONObject jsonTask = taskList.stream()
|
||||
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
// 完成
|
||||
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
start_device_code = jsonTask.getString("point_code2");
|
||||
is_auto_issue = IOSEnum.IS_SEND.code("否");
|
||||
} else {
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_group_id));
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
|
||||
taskTab.update(jsonTask);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// 生成任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010504");
|
||||
jsonTaskParam.put("point_code1", start_device_code);
|
||||
jsonTaskParam.put("point_code2", point_code);
|
||||
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("task_group_id", task_group_id);
|
||||
jsonTaskParam.put("is_auto_issue", is_auto_issue);
|
||||
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
|
||||
|
||||
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) ||
|
||||
json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无")))
|
||||
{
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅")));
|
||||
} else {
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("深")));
|
||||
}
|
||||
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
String task_id = twoOutTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新分配明细
|
||||
JSONObject jsonPoint = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_id));
|
||||
row.setPoint_id(jsonPoint.getLongValue("point_id"));
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新异常货位
|
||||
* @param disDaoList:所有分配明细集合
|
||||
*/
|
||||
private void UpdateExceptional(List<StIvtIostorinvdis> disDaoList) {
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
// 获取仓位集合
|
||||
String structCodeIn = disDaoList.stream()
|
||||
.map(StIvtIostorinvdis::getStruct_code)
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> attrList = attrTab.query("struct_code IN ('" + structCodeIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 过滤异常货位
|
||||
List<JSONObject> attrExcepList = attrList.stream()
|
||||
.filter(row -> ObjectUtil.isNotEmpty(row.getString("task_code")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 找所有异常任务
|
||||
String taskCodeIn = attrExcepList.stream()
|
||||
.map(row -> row.getString("task_code"))
|
||||
.distinct().collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> taskList = taskTab.query("task_id IN ('" + taskCodeIn + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 更新异常货位
|
||||
List<String> structCodeInList = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < taskList.size(); i++) {
|
||||
JSONObject json = taskList.get(0);
|
||||
|
||||
structCodeInList.add(json.getString("point_code1"));
|
||||
structCodeInList.add(json.getString("point_code2"));
|
||||
}
|
||||
|
||||
JSONObject jsonUpdate = new JSONObject();
|
||||
jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
jsonUpdate.put("task_code", "");
|
||||
|
||||
attrTab.update(jsonUpdate,"struct_code IN ('"+String.join("','",structCodeInList)+"')");
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新主表状态
|
||||
|
||||
@@ -5,7 +5,6 @@ import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
|
||||
|
||||
@@ -21,6 +21,7 @@ public class Init implements ApplicationRunner {
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
// initTwoAttr(4,30,3,2, "2");
|
||||
// createAttr();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,27 +153,27 @@ public class Init implements ApplicationRunner {
|
||||
|
||||
|
||||
String now = DateUtil.now();
|
||||
for (int i = 1; i <= 2000; i++) {
|
||||
for (int i = 1; i <= 3000; i++) {
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("struct_id", IdUtil.getSnowflake(1,1).nextId());
|
||||
|
||||
if (i < 10) {
|
||||
json.put("struct_code", "B01-"+"000"+i+"-01");
|
||||
json.put("struct_name", "B01排"+"000"+i+"列-01层");
|
||||
json.put("struct_code", "81-"+"000"+i+"-01");
|
||||
json.put("struct_name", "81排"+"000"+i+"列-01层");
|
||||
|
||||
}else if (i >= 10 && i < 100) {
|
||||
json.put("struct_code", "B01-"+"00"+i+"-01");
|
||||
json.put("struct_name", "B01排"+"00"+i+"列-01层");
|
||||
json.put("struct_code", "81-"+"00"+i+"-01");
|
||||
json.put("struct_name", "81排"+"00"+i+"列-01层");
|
||||
}else if (i >= 100 && i < 1000) {
|
||||
json.put("struct_code", "B01-"+"0"+i+"-01");
|
||||
json.put("struct_name", "B01排"+"0"+i+"列-01层");
|
||||
json.put("struct_code", "81-"+"0"+i+"-01");
|
||||
json.put("struct_name", "81排"+"0"+i+"列-01层");
|
||||
} else {
|
||||
json.put("struct_code", "B01-"+i+"-01");
|
||||
json.put("struct_name", "B01排"+i+"列-01层");
|
||||
json.put("struct_code", "81-"+i+"-01");
|
||||
json.put("struct_name", "81排"+i+"列-01层");
|
||||
}
|
||||
JSONObject jsonObject = tab2.query("stor_id = '1582991156504039455'").uniqueResult(0);
|
||||
JSONObject jsonObjec2 = tab3.query("stor_id = '1582991156504039455' and sect_code = 'BXN01'").uniqueResult(0);
|
||||
JSONObject jsonObject = tab2.query("stor_id = '1597073830499717137'").uniqueResult(0);
|
||||
JSONObject jsonObjec2 = tab3.query("stor_id = '1597073830499717137' and sect_code = 'XN81'").uniqueResult(0);
|
||||
|
||||
// 新增仓位
|
||||
json.put("simple_name", json.getString("struct_name"));
|
||||
|
||||
@@ -20,11 +20,12 @@ public enum RegionTypeEnum {
|
||||
LKCK("17", "密集库出库输送线", "1585167595403874304"),
|
||||
XN01("18", "虚拟区", "1586913215886004224"),
|
||||
PD01("19", "盘点区", "1645705331612979200"),
|
||||
TWO_ZZ01("20", "二期暂存区", ""),
|
||||
TWO_ZZ01("20", "二期暂存区", "1760183596628447232"),
|
||||
TWO_TTP01("21", "二期空托盘区", "1750471797729529856"),
|
||||
TWO_MX01("22", "二期木箱区", "1752254266938101760"),
|
||||
TWO_KZ01("23", "二期捆扎区", "1754774130626007040"),
|
||||
TWO_FH01("24", "二期发货区", "1759453285649092608");
|
||||
TWO_FH01("24", "二期发货区", "1759453285649092608"),
|
||||
TWO_OUT01("25", "二期出库区", "1760141408548818944");
|
||||
|
||||
private String name;
|
||||
private String code;
|
||||
|
||||
Reference in New Issue
Block a user