feat: 手持预加工下料、生产下料(粉碎、制粒,压片下料)
This commit is contained in:
@@ -1,8 +1,11 @@
|
|||||||
package org.nl.wms.basedata_manage.service;
|
package org.nl.wms.basedata_manage.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 组桶记录表 服务类
|
* 组桶记录表 服务类
|
||||||
@@ -13,4 +16,12 @@ import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
|||||||
*/
|
*/
|
||||||
public interface IMdPdGroupbucketService extends IService<MdPdGroupbucket> {
|
public interface IMdPdGroupbucketService extends IService<MdPdGroupbucket> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据桶号获取信息
|
||||||
|
* @param vehicleCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<JSONObject> getBucketInfoByBucket(String vehicleCode);
|
||||||
|
|
||||||
|
void upDateWeight(String weight, String vehicleCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package org.nl.wms.basedata_manage.service.dao.mapper;
|
package org.nl.wms.basedata_manage.service.dao.mapper;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 组桶记录表 Mapper 接口
|
* 组桶记录表 Mapper 接口
|
||||||
@@ -13,4 +16,7 @@ import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
|||||||
*/
|
*/
|
||||||
public interface MdPdGroupbucketMapper extends BaseMapper<MdPdGroupbucket> {
|
public interface MdPdGroupbucketMapper extends BaseMapper<MdPdGroupbucket> {
|
||||||
|
|
||||||
|
List<JSONObject> getBucketInfoByBucket(String vehicleCode);
|
||||||
|
|
||||||
|
void upDateWeight(String weight, String vehicleCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper">
|
<mapper namespace="org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper">
|
||||||
|
<update id="upDateWeight">
|
||||||
|
UPDATE md_pd_groupbucket
|
||||||
|
SET qty = #{weight} - bucket_weight
|
||||||
|
WHERE
|
||||||
|
bucket_code = #{vehicleCode}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<select id="getBucketInfoByBucket" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
g.*,
|
||||||
|
m.material_code,
|
||||||
|
m.material_name,
|
||||||
|
m.material_spec,
|
||||||
|
m.material_model,
|
||||||
|
m.material_type_id
|
||||||
|
FROM
|
||||||
|
`md_pd_groupbucket` g
|
||||||
|
LEFT JOIN md_me_materialbase m ON m.material_id = g.material_id
|
||||||
|
WHERE
|
||||||
|
g.bucket_code = #{vehicleCode}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package org.nl.wms.basedata_manage.service.impl;
|
package org.nl.wms.basedata_manage.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 组桶记录表 服务实现类
|
* 组桶记录表 服务实现类
|
||||||
@@ -17,4 +20,13 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class MdPdGroupbucketServiceImpl extends ServiceImpl<MdPdGroupbucketMapper, MdPdGroupbucket> implements IMdPdGroupbucketService {
|
public class MdPdGroupbucketServiceImpl extends ServiceImpl<MdPdGroupbucketMapper, MdPdGroupbucket> implements IMdPdGroupbucketService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<JSONObject> getBucketInfoByBucket(String vehicleCode) {
|
||||||
|
return this.baseMapper.getBucketInfoByBucket(vehicleCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void upDateWeight(String weight, String vehicleCode) {
|
||||||
|
this.baseMapper.upDateWeight(weight, vehicleCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,4 +86,17 @@ public class PdaProductionController {
|
|||||||
public ResponseEntity<Object> preProcessingDown(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> preProcessingDown(@RequestBody JSONObject whereJson) {
|
||||||
return new ResponseEntity<>(pdaProductionService.preProcessingDown(whereJson), HttpStatus.OK);
|
return new ResponseEntity<>(pdaProductionService.preProcessingDown(whereJson), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getGroupBucketInfo")
|
||||||
|
@Log("生产下料-获取物料信息")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> getGroupBucketInfo(@RequestBody JSONObject whereJson) {
|
||||||
|
return new ResponseEntity<>(pdaProductionService.getGroupBucketInfo(whereJson), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@PostMapping("/productionLine")
|
||||||
|
@Log("生产下料-下料")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> productionLine(@RequestBody JSONObject whereJson) {
|
||||||
|
return new ResponseEntity<>(pdaProductionService.productionLine(whereJson), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,4 +65,8 @@ public interface PdaProductionService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PdaResponse takeFinish(JSONObject param);
|
PdaResponse takeFinish(JSONObject param);
|
||||||
|
|
||||||
|
PdaResponse getGroupBucketInfo(JSONObject param);
|
||||||
|
|
||||||
|
PdaResponse productionLine(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.nl.wms.pda.general_management.service.impl;
|
|||||||
|
|
||||||
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.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.LambdaQueryWrapper;
|
||||||
@@ -45,6 +46,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
|||||||
private IMdPbGroupplateService groupplateService;
|
private IMdPbGroupplateService groupplateService;
|
||||||
@Resource
|
@Resource
|
||||||
private IRawAssistIStorService rawAssistIStorService;
|
private IRawAssistIStorService rawAssistIStorService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doGroupPallet(JSONObject param, SchBasePoint startPoint) {
|
public void doGroupPallet(JSONObject param, SchBasePoint startPoint) {
|
||||||
JSONArray rows = param.getJSONArray("rows");
|
JSONArray rows = param.getJSONArray("rows");
|
||||||
@@ -73,7 +75,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
|||||||
);
|
);
|
||||||
// 查找分配明细
|
// 查找分配明细
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
map.put("iostorinvdtl_id",dtlDao.get(0).getIostorinvdtl_id());
|
map.put("iostorinvdtl_id", dtlDao.get(0).getIostorinvdtl_id());
|
||||||
List<IOStorInvDisDto> disDtl = rawAssistIStorService.getDisDtl(map);
|
List<IOStorInvDisDto> disDtl = rawAssistIStorService.getDisDtl(map);
|
||||||
// 类型转换
|
// 类型转换
|
||||||
ArrayList<LinkedHashMap> tableMater = new ArrayList<>();
|
ArrayList<LinkedHashMap> tableMater = new ArrayList<>();
|
||||||
@@ -118,8 +120,10 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
|||||||
for (int i = 0; i < rows.size(); i++) {
|
for (int i = 0; i < rows.size(); i++) {
|
||||||
HashMap<String, Object> table = new HashMap<>();
|
HashMap<String, Object> table = new HashMap<>();
|
||||||
JSONObject row = rows.getJSONObject(i);
|
JSONObject row = rows.getJSONObject(i);
|
||||||
table.put("group_id", row.getString("group_id"));
|
table.put("group_id", ObjectUtil.isEmpty(row.getString("group_id"))
|
||||||
table.put("storagevehicle_code", startPoint.getVehicle_code());
|
? row.getString("id") : row.getString("group_id"));
|
||||||
|
table.put("storagevehicle_code", ObjectUtil.isEmpty(row.getString("vehicle_code"))
|
||||||
|
? row.getString("bucket_code") : row.getString("vehicle_code"));
|
||||||
table.put("material_id", row.getString("material_id"));
|
table.put("material_id", row.getString("material_id"));
|
||||||
table.put("pcsn", row.getString("pcsn"));
|
table.put("pcsn", row.getString("pcsn"));
|
||||||
table.put("qty", row.getBigDecimal("qty"));
|
table.put("qty", row.getBigDecimal("qty"));
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
||||||
import org.nl.wms.basedata_manage.service.ISectattrService;
|
import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||||
@@ -22,6 +23,8 @@ import org.nl.wms.sch_manage.service.ISchBasePointService;
|
|||||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.PreProcessingInTask;
|
import org.nl.wms.sch_manage.service.util.tasks.PreProcessingInTask;
|
||||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
|
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
|
||||||
@@ -71,6 +74,10 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
private PreProcessingInTask preProcessingInTask;
|
private PreProcessingInTask preProcessingInTask;
|
||||||
@Resource
|
@Resource
|
||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
|
@Resource
|
||||||
|
private IMdPdGroupbucketService groupbucketService;
|
||||||
|
@Resource
|
||||||
|
private TaskFactory taskFactory;
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getGroupInfo(JSONObject param) {
|
public PdaResponse getGroupInfo(JSONObject param) {
|
||||||
// search;
|
// search;
|
||||||
@@ -220,7 +227,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse leftoverMaterialBack(JSONObject param) {
|
public PdaResponse leftoverMaterialBack(JSONObject param) {
|
||||||
// search, rows
|
// search, rows 按照托盘号原来的库区回去
|
||||||
String search = param.getString("search");
|
String search = param.getString("search");
|
||||||
SchBasePoint startPoint = pointService.getByPointCode(search, false);
|
SchBasePoint startPoint = pointService.getByPointCode(search, false);
|
||||||
if (ObjectUtil.isEmpty(startPoint)) {
|
if (ObjectUtil.isEmpty(startPoint)) {
|
||||||
@@ -237,7 +244,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
log.info("剩料回库");
|
log.info("剩料回库");
|
||||||
// 剩料回库
|
// 剩料回库
|
||||||
param.put("rows", res);
|
param.put("rows", res);
|
||||||
Sectattr sectattr = sectattrService.findByCode(startPoint.getIn_sect(), false);
|
Sectattr sectattr = sectattrService.findByCode(startPoint.getOut_sect(), false);
|
||||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库"));
|
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库"));
|
||||||
// 1 创建入库单、明细、分配明细
|
// 1 创建入库单、明细、分配明细
|
||||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||||
@@ -253,7 +260,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
// 空载具回库
|
// 空载具回库
|
||||||
JSONObject vin = new JSONObject();
|
JSONObject vin = new JSONObject();
|
||||||
vin.put("storagevehicle_code", search);
|
vin.put("storagevehicle_code", search);
|
||||||
vin.put("sect_code", startPoint.getIn_sect());
|
vin.put("sect_code", startPoint.getOut_sect());
|
||||||
vin.put("point_code", startPoint.getPoint_code());
|
vin.put("point_code", startPoint.getPoint_code());
|
||||||
vehicleInService.create(vin);
|
vehicleInService.create(vin);
|
||||||
}
|
}
|
||||||
@@ -290,4 +297,29 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
// todo: 下发允许AGV通过
|
// todo: 下发允许AGV通过
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdaResponse getGroupBucketInfo(JSONObject param) {
|
||||||
|
// vehicle_code
|
||||||
|
assertNotBlankJson(param, "载具号不能为空!", "vehicle_code");
|
||||||
|
return PdaResponse.requestParamOk(groupbucketService
|
||||||
|
.getBucketInfoByBucket(
|
||||||
|
param.getString("vehicle_code")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdaResponse productionLine(JSONObject param) {
|
||||||
|
// point_code, vehicle_code
|
||||||
|
log.info("手持下料:{}", param);
|
||||||
|
assertNotBlankJson(param, "载具号不能为空!", "vehicle_code");
|
||||||
|
assertNotBlankJson(param, "点位不能为空!", "point_code");
|
||||||
|
String pointCode = param.getString("point_code");
|
||||||
|
SchBasePoint point = pointService.getByPointCode(pointCode, false);
|
||||||
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
|
throw new BadRequestException("点位[" + pointCode +"]不存在!");
|
||||||
|
}
|
||||||
|
AbstractTask task = taskFactory.getTask(IOSEnum.DOWN_CONFIG_CODE.code(point.getRegion_code()));
|
||||||
|
task.create(param);
|
||||||
|
return PdaResponse.requestOk();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,11 +111,16 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="getCanUsePointByRegion" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
<select id="getCanUsePointByRegion" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
||||||
SELECT
|
SELECT *
|
||||||
*
|
FROM `sch_base_point` p
|
||||||
FROM
|
WHERE p.region_code = #{region_code}
|
||||||
`sch_base_point` p
|
AND p.is_used = TRUE
|
||||||
WHERE p.region_code = #{region_code} AND p.is_used = TRUE
|
|
||||||
AND p.point_status = '1'
|
AND p.point_status = '1'
|
||||||
|
AND 0 = (SELECT COUNT(*)
|
||||||
|
FROM sch_base_task t
|
||||||
|
WHERE t.is_delete = '0'
|
||||||
|
AND t.task_status <![CDATA[ < ]]> '5'
|
||||||
|
AND ( t.point_code1 = p.point_code
|
||||||
|
OR t.point_code2 = p.point_code ))
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -0,0 +1,188 @@
|
|||||||
|
package org.nl.wms.sch_manage.service.util.tasks;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.CodeUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.IdUtil;
|
||||||
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
|
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||||
|
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||||
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
|
||||||
|
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||||
|
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
|
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中间站入库
|
||||||
|
* @Author: lyd
|
||||||
|
* @Date: 2025/12/4
|
||||||
|
*/
|
||||||
|
@Component(value = "CenterInTask")
|
||||||
|
@TaskType("CenterInTask")
|
||||||
|
public class CenterInTask extends AbstractTask {
|
||||||
|
@Resource
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Resource
|
||||||
|
private IRawAssistIStorService rawAssistIStorService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||||
|
@Resource
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Override
|
||||||
|
public String create(JSONObject json) {
|
||||||
|
SchBaseTask task = new SchBaseTask();
|
||||||
|
task.setTask_id(IdUtil.getStringId());
|
||||||
|
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
|
task.setConfig_code(CenterInTask.class.getSimpleName());
|
||||||
|
task.setPoint_code1(json.getString("point_code1"));
|
||||||
|
task.setPoint_code2(json.getString("point_code2"));
|
||||||
|
task.setVehicle_code(json.getString("vehicle_code"));
|
||||||
|
task.setMaterial_id(json.getString("material_id"));
|
||||||
|
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
||||||
|
task.setGroup_id(json.getString("group_id"));
|
||||||
|
task.setRequest_param(json.toString());
|
||||||
|
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
|
||||||
|
task.setPriority(json.getString("Priority"));
|
||||||
|
task.setIs_wait(json.getString("is_wait"));
|
||||||
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
task.setCreate_time(DateUtil.now());
|
||||||
|
taskService.save(task);
|
||||||
|
|
||||||
|
// 下发任务
|
||||||
|
// this.sendTaskOne(task.getTask_id());
|
||||||
|
return task.getTask_id();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AcsTaskDto sendAcsParam(String taskId) {
|
||||||
|
SchBaseTask taskDao = taskService.getById(taskId);
|
||||||
|
|
||||||
|
// 组织下发给acs的数据
|
||||||
|
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||||
|
acsTaskDto.setExt_task_id(taskDao.getTask_id());
|
||||||
|
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||||
|
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||||
|
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||||
|
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
||||||
|
|
||||||
|
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
||||||
|
acsTaskDto.setIs_wait(IOSConstant.ZERO);
|
||||||
|
acsTaskDto.setTask_type(ACSTaskTypeEnum.CTU_TASK.getCode());
|
||||||
|
|
||||||
|
acsTaskDto.setPriority(IOSConstant.ONE);
|
||||||
|
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
|
||||||
|
acsTaskDto.setIs_get_pause(IOSConstant.ZERO);
|
||||||
|
acsTaskDto.setIs_put_pause(IOSConstant.ZERO);
|
||||||
|
|
||||||
|
return acsTaskDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
// 校验任务
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已完成!");
|
||||||
|
}
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已取消!");
|
||||||
|
}
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) {
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) {
|
||||||
|
this.finishTask(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) {
|
||||||
|
this.cancelTask(taskObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancelTask(SchBaseTask taskObj) {
|
||||||
|
// 取消任务
|
||||||
|
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
|
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||||
|
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
|
||||||
|
.set(SchBaseTask::getRemark, "已取消")
|
||||||
|
.eq(SchBaseTask::getTask_id, taskObj.getTask_id())
|
||||||
|
);
|
||||||
|
//分配表清除任务
|
||||||
|
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||||
|
.set(IOStorInvDis::getTask_id, null)
|
||||||
|
.set(IOStorInvDis::getPoint_code, null)
|
||||||
|
.set(IOStorInvDis::getIs_issued, 0)
|
||||||
|
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
|
||||||
|
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 更新任务状态
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setRemark("已取消");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void finishTask(SchBaseTask taskObj) {
|
||||||
|
// 任务完成
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark("已完成");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
rawAssistIStorService.taskFinish(taskObj);
|
||||||
|
// 更新起点
|
||||||
|
pointService.update(
|
||||||
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
|
.set(SchBasePoint::getVehicle_code, "")
|
||||||
|
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
|
||||||
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
||||||
|
.set(SchBasePoint::getIng_task_code, "")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.finishTask(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
|
||||||
|
throw new BadRequestException("任务状态必须为生成才能取消任务");
|
||||||
|
}
|
||||||
|
this.cancelTask(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void taskConfirm(String task_code) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -166,10 +166,7 @@ public class RawInTask extends AbstractTask {
|
|||||||
if (ObjectUtil.isEmpty(taskObj)) {
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
throw new BadRequestException("该任务不存在");
|
throw new BadRequestException("该任务不存在");
|
||||||
}
|
}
|
||||||
rawAssistIStorService.taskFinish(taskObj);
|
this.finishTask(taskObj);
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
|
||||||
taskObj.setRemark("已完成");
|
|
||||||
taskService.updateById(taskObj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,220 @@
|
|||||||
|
package org.nl.wms.sch_manage.service.util.tasks;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.CodeUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.IdUtil;
|
||||||
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
||||||
|
import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||||
|
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||||
|
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||||
|
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||||
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
|
||||||
|
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||||
|
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
|
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 压片入库
|
||||||
|
* @Author: lyd
|
||||||
|
* @Date: 2025/12/4
|
||||||
|
*/
|
||||||
|
@Component(value = "TabletingInTask")
|
||||||
|
@TaskType("TabletingInTask")
|
||||||
|
public class TabletingInTask extends AbstractTask {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IMdPdGroupbucketService groupbucketService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Resource
|
||||||
|
private ISectattrService sectattrService;
|
||||||
|
@Resource
|
||||||
|
private PdaBuildParamService defaultPdaBuildParam;
|
||||||
|
@Resource
|
||||||
|
private IRawAssistIStorService rawAssistIStorService;
|
||||||
|
@Override
|
||||||
|
public String create(JSONObject json) {
|
||||||
|
//point_code, vehicle_code
|
||||||
|
String vehicleCode = json.getString("vehicle_code");
|
||||||
|
List<JSONObject> bucket = groupbucketService.getBucketInfoByBucket(vehicleCode);
|
||||||
|
if (bucket.size() == 0) {
|
||||||
|
throw new BadRequestException("该载具未存在组桶信息,请先组桶!");
|
||||||
|
}
|
||||||
|
// 找一个没任务的称重位
|
||||||
|
List<SchBasePoint> czws = pointService.getCanUsePointByRegion("ZZC01");
|
||||||
|
if (czws.size() == 0) {
|
||||||
|
throw new BadRequestException("找不到中转区的称重位!");
|
||||||
|
}
|
||||||
|
JSONObject jsonObject = bucket.get(0);
|
||||||
|
SchBasePoint point = czws.get(0);
|
||||||
|
SchBaseTask task = new SchBaseTask();
|
||||||
|
task.setTask_id(IdUtil.getStringId());
|
||||||
|
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
|
task.setConfig_code(TabletingInTask.class.getSimpleName());
|
||||||
|
task.setPoint_code1(json.getString("point_code"));
|
||||||
|
task.setPoint_code2(point.getPoint_code());
|
||||||
|
task.setVehicle_code(json.getString("vehicle_code"));
|
||||||
|
task.setMaterial_id(jsonObject.getString("material_id"));
|
||||||
|
task.setMaterial_qty(jsonObject.getBigDecimal("qty"));
|
||||||
|
task.setGroup_id(jsonObject.getString("group_id"));
|
||||||
|
task.setRequest_param(json.toString());
|
||||||
|
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
|
||||||
|
task.setPriority("1");
|
||||||
|
task.setIs_wait("0");
|
||||||
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
task.setCreate_time(DateUtil.now());
|
||||||
|
taskService.save(task);
|
||||||
|
|
||||||
|
// 下发任务
|
||||||
|
// this.sendTaskOne(task.getTask_id());
|
||||||
|
return task.getTask_id();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AcsTaskDto sendAcsParam(String taskId) {
|
||||||
|
SchBaseTask taskDao = taskService.getById(taskId);
|
||||||
|
|
||||||
|
// 组织下发给acs的数据
|
||||||
|
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||||
|
acsTaskDto.setExt_task_id(taskDao.getTask_id());
|
||||||
|
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||||
|
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||||
|
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||||
|
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
||||||
|
|
||||||
|
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
||||||
|
acsTaskDto.setIs_wait(IOSConstant.ZERO);
|
||||||
|
acsTaskDto.setTask_type(ACSTaskTypeEnum.CTU_TASK.getCode());
|
||||||
|
|
||||||
|
acsTaskDto.setPriority(IOSConstant.ONE);
|
||||||
|
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
|
||||||
|
acsTaskDto.setIs_get_pause(IOSConstant.ZERO);
|
||||||
|
acsTaskDto.setIs_put_pause(IOSConstant.ZERO);
|
||||||
|
|
||||||
|
return acsTaskDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
// 校验任务
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已完成!");
|
||||||
|
}
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已取消!");
|
||||||
|
}
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) {
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) {
|
||||||
|
this.finishTask(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) {
|
||||||
|
this.cancelTask(taskObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancelTask(SchBaseTask taskObj) {
|
||||||
|
// 取消任务
|
||||||
|
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
|
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||||
|
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
|
||||||
|
.set(SchBaseTask::getRemark, "已取消")
|
||||||
|
.eq(SchBaseTask::getTask_id, taskObj.getTask_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 更新任务状态
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setRemark("已取消");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void finishTask(SchBaseTask taskObj) {
|
||||||
|
// 任务完成
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark("已完成");
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
// 更新起点
|
||||||
|
pointService.update(
|
||||||
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
|
.set(SchBasePoint::getVehicle_code, "")
|
||||||
|
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
|
||||||
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
||||||
|
.set(SchBasePoint::getIng_task_code, "")
|
||||||
|
);
|
||||||
|
SchBasePoint startPoint = pointService.getByPointCode(taskObj.getPoint_code2(), false);
|
||||||
|
// todo: 获取重量
|
||||||
|
groupbucketService.upDateWeight("26.8", taskObj.getVehicle_code());
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
// 创建入库任务
|
||||||
|
List<JSONObject> infos = groupbucketService.getBucketInfoByBucket(taskObj.getVehicle_code());
|
||||||
|
Sectattr sectattr = sectattrService.findByCode(startPoint.getIn_sect(), false);
|
||||||
|
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("中间站入库"));
|
||||||
|
param.put("rows", infos);
|
||||||
|
// 1 创建入库单、明细、分配明细
|
||||||
|
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||||
|
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||||
|
// 2 调用分配
|
||||||
|
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId);
|
||||||
|
rawAssistIStorService.divStruct(divObj);
|
||||||
|
// 3 创建任务
|
||||||
|
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||||
|
rawAssistIStorService.divPoint(jsonMst);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.finishTask(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
|
||||||
|
throw new BadRequestException("任务状态必须为生成才能取消任务");
|
||||||
|
}
|
||||||
|
this.cancelTask(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void taskConfirm(String task_code) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,7 +33,8 @@ public enum IOSEnum {
|
|||||||
// 入库业务类型
|
// 入库业务类型
|
||||||
IN_BILL_TYPE(MapOf.of( "手工入库", "0009",
|
IN_BILL_TYPE(MapOf.of( "手工入库", "0009",
|
||||||
"原辅料入库", "0001",
|
"原辅料入库", "0001",
|
||||||
"剩料回库", "0002"
|
"剩料回库", "0002",
|
||||||
|
"中间站入库", "0003"
|
||||||
)),
|
)),
|
||||||
|
|
||||||
// 出库业务类型
|
// 出库业务类型
|
||||||
@@ -49,14 +50,16 @@ public enum IOSEnum {
|
|||||||
|
|
||||||
// 入库任务配置类编码
|
// 入库任务配置类编码
|
||||||
IN_CONFIG_CODE(MapOf.of("0009", "HandInTask",
|
IN_CONFIG_CODE(MapOf.of("0009", "HandInTask",
|
||||||
"0001", "RawInTask", "0002", "RawInTask"
|
"0001", "RawInTask", "0002", "RawInTask", "0003", "CenterInTask"
|
||||||
)),
|
)),
|
||||||
|
|
||||||
// 出库任务配置类编码
|
// 出库任务配置类编码
|
||||||
OUT_CONFIG_CODE(MapOf.of( "1009", "HandOutTask",
|
OUT_CONFIG_CODE(MapOf.of( "1009", "HandOutTask",
|
||||||
"1001", "CallMaterialTask"
|
"1001", "CallMaterialTask"
|
||||||
)),
|
)),
|
||||||
|
// 下料任务配置编码
|
||||||
|
DOWN_CONFIG_CODE(MapOf.of("YPQ", "TabletingInTask"
|
||||||
|
)),
|
||||||
// 移库任务配置类编码
|
// 移库任务配置类编码
|
||||||
MOVE_CONFIG_CODE(MapOf.of("2001","InsideMoveTask", "2004", "CheckMoveTask"
|
MOVE_CONFIG_CODE(MapOf.of("2001","InsideMoveTask", "2004", "CheckMoveTask"
|
||||||
)),
|
)),
|
||||||
|
|||||||
Reference in New Issue
Block a user