add 项目更新
This commit is contained in:
@@ -2,6 +2,7 @@ package org.nl.wms.basedata_manage.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -87,6 +88,9 @@ public class GroupController {
|
||||
JSONObject row = rows.getJSONObject(i);
|
||||
GroupPlate groupPlate = row.toJavaObject(GroupPlate.class);
|
||||
String material_code=row.getString("material_code");
|
||||
if(!ObjectUtil.isNotEmpty(iMdMeMaterialbaseService.getByCode(material_code))){
|
||||
throw new BadRequestException("传入的物料信息不存在");
|
||||
}
|
||||
groupPlate.setMaterial_id(material_code);
|
||||
groupPlate.setStoragevehicle_code(storagevehicleCode);
|
||||
groupPlate.setGroup_id(IdUtil.getStringId());
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package org.nl.wms.basedata_manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicletype;
|
||||
|
||||
public interface IMdPbStoragevehicletypeService extends IService<MdPbStoragevehicletype> {
|
||||
/**
|
||||
* 根据编码获取载具
|
||||
* @param storagevehicle_stype 载具类型细分
|
||||
* @return 实体类
|
||||
*/
|
||||
MdPbStoragevehicletype getByCode(String storagevehicle_stype);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.nl.wms.basedata_manage.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具信息表
|
||||
* </p>
|
||||
*
|
||||
* @author Zjj
|
||||
* @since 2025-12-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("md_pb_storagevehicletype")
|
||||
public class MdPbStoragevehicletype {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String storagevehicle_stype;
|
||||
/**
|
||||
* 1.木栈板 2.胶合栈板 3.烟熏栈板 4.纸栈板
|
||||
*/
|
||||
private String storagevehicle_btype;
|
||||
private String storagevehicle_size;
|
||||
/**
|
||||
* 1.RT16 2.PS20 3.RT16和PS20
|
||||
*/
|
||||
private String suitable_car;
|
||||
private String storagevehicle_name;
|
||||
private String car_width;
|
||||
}
|
||||
@@ -13,4 +13,5 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
*/
|
||||
public interface MdPbStoragevehicleinfoMapper extends BaseMapper<MdPbStoragevehicleinfo> {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.wms.basedata_manage.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicletype;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具类型表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-05-14
|
||||
*/
|
||||
public interface MdPbStoragevehicletypeMapper extends BaseMapper<MdPbStoragevehicletype> {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicletypeMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -42,6 +42,8 @@ public class StrategyStructParam {
|
||||
*/
|
||||
private String storagevehicle_code;
|
||||
|
||||
private String suitable_car;
|
||||
|
||||
/**
|
||||
* 载具明细:混料的话则是数组
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,9 @@ import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicletypeService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicletype;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
|
||||
import org.nl.wms.system_manage.service.dict.ISysDictService;
|
||||
import org.nl.wms.system_manage.service.dict.dao.Dict;
|
||||
@@ -40,12 +42,13 @@ import java.util.Set;
|
||||
public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStoragevehicleinfoMapper, MdPbStoragevehicleinfo> implements IMdPbStoragevehicleinfoService {
|
||||
@Autowired
|
||||
private ISysDictService dictService;
|
||||
|
||||
@Autowired
|
||||
private IMdPbStoragevehicletypeService iMdPbStoragevehicletypeService;
|
||||
@Override
|
||||
public IPage<MdPbStoragevehicleinfo> queryAll(Map whereJson, PageQuery page) {
|
||||
// 查询条件
|
||||
LambdaQueryWrapper<MdPbStoragevehicleinfo> queryWrapper = new QueryWrapper<MdPbStoragevehicleinfo>().lambda();
|
||||
String search = MapUtil.getStr(whereJson, "storagevehicle_code");
|
||||
String search = MapUtil.getStr(whereJson, "vehicle_code");
|
||||
String storagevehicle_type = MapUtil.getStr(whereJson, "storagevehicle_type");
|
||||
|
||||
if (ObjectUtil.isNotEmpty(search)) {
|
||||
@@ -75,21 +78,23 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
||||
throw new BadRequestException("当前载具编码已存在【"+dto.getString("storagevehicle_code")+"】");
|
||||
}
|
||||
//转编码类型:
|
||||
Dict dict = dictService.getOne(new QueryWrapper<Dict>().eq("para1", dto.getString("storagevehicle_type")));
|
||||
if (dict==null){
|
||||
throw new BadRequestException("此载具类型"+dto.getString("vehicle_type")+"没有配置字典值");
|
||||
}
|
||||
// Dict dict = dictService.getOne(new QueryWrapper<Dict>().eq("para1", dto.getString("storagevehicle_type")));
|
||||
// if (dict==null){
|
||||
// throw new BadRequestException("此载具类型"+dto.getString("vehicle_type")+"没有配置字典值");
|
||||
// }
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype=iMdPbStoragevehicletypeService.getByCode(dto.getString("storagevehicle_type"));
|
||||
|
||||
JSONArray resultCodeArr = new JSONArray();
|
||||
MdPbStoragevehicleinfo vehicleInfo = dto.toJavaObject(MdPbStoragevehicleinfo.class);
|
||||
MdPbStoragevehicleinfo entity = new MdPbStoragevehicleinfo();
|
||||
entity.setStoragevehicle_id(IdUtil.getStringId());
|
||||
entity.setStoragevehicle_code(dto.getString("storagevehicle_code"));
|
||||
entity.setStoragevehicle_name(dict.getLabel());
|
||||
entity.setStoragevehicle_name(mdPbStoragevehicletype.getStoragevehicle_name());
|
||||
entity.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
entity.setCreate_time(DateUtil.now());
|
||||
entity.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
entity.setIs_used(vehicleInfo.getIs_used());
|
||||
entity.setStoragevehicle_type(dict.getValue());
|
||||
entity.setStoragevehicle_type(mdPbStoragevehicletype.getStoragevehicle_btype());
|
||||
entity.setVehicle_height(vehicleInfo.getVehicle_height());
|
||||
entity.setVehicle_width(vehicleInfo.getVehicle_width());
|
||||
entity.setVehicle_long(vehicleInfo.getVehicle_long());
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package org.nl.wms.basedata_manage.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicletypeService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicletype;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicletypeMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class MdPbStoragevehicletypeServiceImpl extends ServiceImpl<MdPbStoragevehicletypeMapper, MdPbStoragevehicletype> implements IMdPbStoragevehicletypeService {
|
||||
@Override
|
||||
public MdPbStoragevehicletype getByCode(String storagevehicle_stype) {
|
||||
MdPbStoragevehicletype one = this.getOne(
|
||||
new QueryWrapper<MdPbStoragevehicletype>().lambda()
|
||||
.eq(MdPbStoragevehicletype::getStoragevehicle_stype, storagevehicle_stype)
|
||||
);
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
throw new BadRequestException("载具类型为【"+storagevehicle_stype+"】的不存在!");
|
||||
}
|
||||
return one;
|
||||
}
|
||||
}
|
||||
@@ -128,6 +128,7 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
.eq(Structattr::getSect_id,id));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(Structattr dto) {
|
||||
@@ -357,11 +358,33 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
}
|
||||
List<String> strategy = one.getStrategy();
|
||||
Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class);
|
||||
QueryWrapper<Structattr> query = new QueryWrapper<Structattr>()
|
||||
.eq("is_used", true)
|
||||
QueryWrapper<Structattr> query = new QueryWrapper<Structattr>();
|
||||
if ("3".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.isNull("storagevehicle_code");
|
||||
.ne("width",1)
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if("2".equals(param.getSuitable_car())){
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("width",1)
|
||||
.ne("layer_num",4)
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("1".equals(param.getSuitable_car())){
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("layer_num",4)
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
}
|
||||
List<Structattr> list = this.list(query);
|
||||
for (String decisionerType : strategy) {
|
||||
Decisioner decisioner = decisionerMap.get(decisionerType);
|
||||
|
||||
@@ -46,6 +46,7 @@ public class NearbyRuleHandler extends Decisioner<Structattr, JSONObject> {
|
||||
*/
|
||||
@Override
|
||||
public List<Structattr> handler(List<Structattr> list, JSONObject param) {
|
||||
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("当前分配策略无可用货位");
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
* @since 2025-06-09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/wms")
|
||||
@RequestMapping("/api/wms/task")
|
||||
@Slf4j
|
||||
public class AcsToWmsController {
|
||||
@Autowired
|
||||
|
||||
@@ -16,8 +16,12 @@ public enum ResultAcsStatus {
|
||||
/**
|
||||
* 完成
|
||||
*/
|
||||
FINISHED("2", "完成", "完成");
|
||||
FINISHED("2", "完成", "完成"),
|
||||
|
||||
/**
|
||||
* 取货完成
|
||||
*/
|
||||
MOVEFINISH("10","取货完成","取货完成");
|
||||
|
||||
ResultAcsStatus(String code, String name, String desc) {
|
||||
this.code = code;
|
||||
|
||||
@@ -2,14 +2,19 @@ package org.nl.wms.ext_manage.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext_manage.enums.ResultAcsStatus;
|
||||
import org.nl.wms.ext_manage.service.AcsToWmsService;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
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.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.redisson.api.RLock;
|
||||
@@ -18,7 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -46,18 +54,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
|
||||
/**
|
||||
* 任务工厂服务
|
||||
*/
|
||||
@Autowired
|
||||
private TaskFactory taskFactory;
|
||||
@Autowired
|
||||
private SchBasePointMapper schBasePointMapper;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
public Map<String, Object> receiveTaskStatusAcs(String string) {
|
||||
log.info("acs向lms反馈任务状态,请求参数:--------------------------------------" + string);
|
||||
JSONObject data=new JSONObject();
|
||||
JSONArray array = JSONArray.parseArray(string);
|
||||
String finish_code=null;
|
||||
//返回处理失败的任务
|
||||
JSONArray errArr = new JSONArray();
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
@@ -78,6 +93,36 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
// 完成
|
||||
status = TaskStatus.FINISHED;
|
||||
iSchBaseTaskService.updateById(taskObj);
|
||||
} else if(ResultAcsStatus.MOVEFINISH.getCode().equals(acs_task_status)){
|
||||
if(!taskObj.getPoint_code2().equals("CKFPW")){
|
||||
log.info("任务号{}已经申请二次分配",taskObj.getTask_code());
|
||||
finish_code=taskObj.getPoint_code2();
|
||||
}else{
|
||||
log.info("任务号{}开始申请二次分配",taskObj.getTask_code());
|
||||
String region_code=null;
|
||||
if(taskObj.getConfig_code().equals("STOutTask")){
|
||||
region_code="CKQ";
|
||||
}
|
||||
List<SchBasePoint> regionCode = schBasePointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code,region_code)
|
||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||
.eq(SchBasePoint::getLock_up,"0")
|
||||
.eq(SchBasePoint::getIs_used,"1")
|
||||
.orderByDesc(SchBasePoint::getOut_order_seq)
|
||||
);
|
||||
if (CollectionUtils.isEmpty(regionCode)){
|
||||
throw new BadRequestException("当前库区"+regionCode+"无可用点位");
|
||||
}
|
||||
finish_code=regionCode.get(0).getPoint_code();
|
||||
SchBasePoint schBasePoint=new SchBasePoint();
|
||||
schBasePoint=iSchBasePointService.getByCode(finish_code);
|
||||
schBasePoint.setLock_up(true);
|
||||
iSchBasePointService.update(schBasePoint);
|
||||
taskObj.setPoint_code2(finish_code);
|
||||
taskObj.setTask_status(TaskStatus.FINISHFP.getCode());
|
||||
iSchBaseTaskService.update(taskObj);
|
||||
}
|
||||
status = TaskStatus.FINISHFP;
|
||||
} else {
|
||||
// 取消
|
||||
status = TaskStatus.CANCELED;
|
||||
@@ -98,7 +143,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "任务状态反馈成功!");
|
||||
result.put("data", new JSONObject());
|
||||
result.put("data", data);
|
||||
result.put("finish_code",finish_code);
|
||||
result.put("errArr", errArr);
|
||||
log.info("acs向lms反馈任务状态,返回参数:--------------------------------------" + result.toString());
|
||||
return result;
|
||||
|
||||
@@ -26,6 +26,10 @@ public enum TaskStatus {
|
||||
* 执行中
|
||||
*/
|
||||
EXECUTING("4", "执行中", "执行中"),
|
||||
/**
|
||||
* 分配完成
|
||||
*/
|
||||
FINISHFP("8", "执行中", "执行中"),
|
||||
/**
|
||||
* 完成
|
||||
*/
|
||||
@@ -40,6 +44,7 @@ public enum TaskStatus {
|
||||
UNFINISHED("7", "未完成", "未完成");
|
||||
|
||||
|
||||
|
||||
TaskStatus(String code, String name, String desc) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
|
||||
@@ -159,4 +159,5 @@ public class SchBasePoint implements Serializable {
|
||||
private String task_warn;
|
||||
@TableField(exist = false)
|
||||
private String storagevehicle_code;
|
||||
private Boolean lock_up;
|
||||
}
|
||||
|
||||
@@ -123,4 +123,6 @@ public class SchBaseTask implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String task_name;
|
||||
|
||||
private String car_type;
|
||||
private String car_width;
|
||||
}
|
||||
|
||||
@@ -50,16 +50,19 @@
|
||||
<if test="whereJson.is_used != null">
|
||||
AND p.is_used = #{whereJson.is_used}
|
||||
</if>
|
||||
<choose>
|
||||
<!-- Case: whereJson.lock_type is true -->
|
||||
<when test="whereJson.lock_type">
|
||||
AND (p.ing_task_code IS NOT NULL AND p.ing_task_code <![CDATA[<>]]> '')
|
||||
</when>
|
||||
<!-- Case: whereJson.lock_type is false -->
|
||||
<otherwise>
|
||||
AND (p.ing_task_code IS NULL OR p.ing_task_code = '')
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="whereJson.lock_up != null">
|
||||
AND p.lock_up = #{whereJson.lock_up}
|
||||
</if>
|
||||
<!-- <choose>-->
|
||||
<!-- <!– Case: whereJson.lock_type is true –>-->
|
||||
<!-- <when test="whereJson.lock_type">-->
|
||||
<!-- AND (p.ing_task_code IS NOT NULL AND p.ing_task_code <![CDATA[<>]]> '')-->
|
||||
<!-- </when>-->
|
||||
<!-- <!– Case: whereJson.lock_type is false –>-->
|
||||
<!-- <otherwise>-->
|
||||
<!-- AND (p.ing_task_code IS NULL OR p.ing_task_code = '')-->
|
||||
<!-- </otherwise>-->
|
||||
<!-- </choose>-->
|
||||
</where>
|
||||
ORDER BY p.region_code, p.point_code, p.point_type
|
||||
</select>
|
||||
|
||||
@@ -16,6 +16,6 @@ public class SchBasePointQuery implements Serializable {
|
||||
private String point_type;
|
||||
private String point_status;
|
||||
private Boolean is_used;
|
||||
private Boolean lock_type;
|
||||
private Boolean lock_up;
|
||||
private Boolean parent_point;
|
||||
}
|
||||
|
||||
@@ -192,9 +192,12 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
@Transactional
|
||||
public void changeLock(JSONObject points) {
|
||||
JSONArray data = points.getJSONArray("data");
|
||||
Boolean lockType = points.getBoolean("lock_type");
|
||||
Boolean lockType = points.getBoolean("lock_up");
|
||||
List<SchBasePoint> pointList = data.toJavaList(SchBasePoint.class);
|
||||
pointList.forEach(point -> point.setIng_task_code(lockType ? "" : "-"));
|
||||
for (SchBasePoint point : pointList) {
|
||||
point.setLock_up(lockType);
|
||||
}
|
||||
// pointList.forEach(point -> point.setIng_task_code(lockType ? "" : "-"));
|
||||
this.updateBatchById(pointList);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
@Override
|
||||
@Transactional
|
||||
public void update(SchBaseTask entity) {
|
||||
SchBaseTask dto = schBaseTaskMapper.selectById(entity.getTask_code());
|
||||
SchBaseTask dto = schBaseTaskMapper.selectById(entity.getTask_id());
|
||||
if (dto == null) {
|
||||
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||
}
|
||||
|
||||
@@ -124,4 +124,10 @@ public class AcsTaskDto {
|
||||
* 扩展属性
|
||||
*/
|
||||
Map<String, String> params;
|
||||
|
||||
/**
|
||||
* 车辆类型 1 ps20 2 RT
|
||||
*/
|
||||
private String car_type;
|
||||
private String car_width;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class AutoTask {
|
||||
//定时任务
|
||||
@SneakyThrows
|
||||
public void run() {
|
||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
|
||||
@@ -0,0 +1,159 @@
|
||||
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.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
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.SchBaseTask;
|
||||
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_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.service.dao.StIvtCheckdtl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Component(value = "CheckInTask")
|
||||
@TaskType("CheckInTask")
|
||||
public class CheckInTask extends AbstractTask {
|
||||
/**
|
||||
* 任务服务类
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 仓位服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
/**
|
||||
* 点位服务
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("TaskCode"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("PickingLocation"));
|
||||
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
taskService.save(task);
|
||||
return task.getTask_id();
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
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);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
|
||||
// 组织下发给acs的数据
|
||||
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type("1");
|
||||
acsTaskDto.setCar_type(taskDao.getCar_type());
|
||||
if(StringUtils.isNoneBlank(taskDao.getCar_width())){
|
||||
acsTaskDto.setCar_width(taskDao.getCar_width());
|
||||
}
|
||||
return acsTaskDto;
|
||||
}
|
||||
@Override
|
||||
public void backMes(String task_code) {
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public void forceFinish(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
// 完成任务
|
||||
this.taskConfirm(taskObj.getTask_code());
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已完成");
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void taskConfirm(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
// 更新终点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
);
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public void cancel(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已取消");
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
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.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
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.SchBaseTask;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Component(value = "CheckOutTask")
|
||||
@TaskType("CheckOutTask")
|
||||
public class CheckOutTask extends AbstractTask {
|
||||
/**
|
||||
* 任务服务类
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 仓位服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
/**
|
||||
* 点位服务
|
||||
*/
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("TaskCode"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("PickingLocation"));
|
||||
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
taskService.save(task);
|
||||
return task.getTask_id();
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
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);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
|
||||
// 组织下发给acs的数据
|
||||
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type("2");
|
||||
acsTaskDto.setCar_type(taskDao.getCar_type());
|
||||
if(StringUtils.isNoneBlank(taskDao.getCar_width())){
|
||||
acsTaskDto.setCar_width(taskDao.getCar_width());
|
||||
}
|
||||
return acsTaskDto;
|
||||
}
|
||||
@Override
|
||||
public void backMes(String task_code) {
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public void forceFinish(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
// 完成任务
|
||||
this.taskConfirm(taskObj.getTask_code());
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已完成");
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void taskConfirm(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
);
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public void cancel(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
@Transactional
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
// 更新任务状态
|
||||
taskObj.setRemark("已取消");
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,10 +4,14 @@ 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 org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
@@ -18,6 +22,9 @@ import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -41,6 +48,16 @@ public class StInTask extends AbstractTask {
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
|
||||
@Autowired
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
|
||||
@Autowired
|
||||
private MdPbGroupplateMapper mdPbGroupplateMapper;
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
|
||||
@Autowired
|
||||
private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper;
|
||||
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
@@ -52,7 +69,8 @@ public class StInTask extends AbstractTask {
|
||||
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
@@ -62,6 +80,7 @@ public class StInTask extends AbstractTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
|
||||
@@ -71,12 +90,12 @@ public class StInTask extends AbstractTask {
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
if (taskDao.getPoint_code2().contains("-")) {
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2().replace('-', '_'));
|
||||
}
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type("1");
|
||||
|
||||
acsTaskDto.setCar_type(taskDao.getCar_type());
|
||||
if(StringUtils.isNoneBlank(taskDao.getCar_width())){
|
||||
acsTaskDto.setCar_width(taskDao.getCar_width());
|
||||
}
|
||||
return acsTaskDto;
|
||||
}
|
||||
|
||||
@@ -123,9 +142,9 @@ public class StInTask extends AbstractTask {
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
|
||||
throw new BadRequestException("任务状态必须为生成才能取消任务");
|
||||
}
|
||||
// if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
|
||||
// throw new BadRequestException("任务状态必须为生成才能取消任务");
|
||||
// }
|
||||
this.cancelTask(taskObj);
|
||||
|
||||
}
|
||||
@@ -145,6 +164,17 @@ public class StInTask extends AbstractTask {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
rawAssistIStorService.taskCancel(taskObj);
|
||||
//删除托盘和组盘
|
||||
GroupPlate groupPlate=new GroupPlate();
|
||||
String storagevehicle_code=taskObj.getVehicle_code();
|
||||
groupPlate=iMdPbGroupplateService.getByCode(storagevehicle_code);
|
||||
mdPbGroupplateMapper.deleteById(groupPlate);
|
||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo=new MdPbStoragevehicleinfo();
|
||||
mdPbStoragevehicleinfo=iMdPbStoragevehicleinfoService.getByCode(storagevehicle_code);
|
||||
//将载具信息清除
|
||||
mdPbStoragevehicleinfoMapper.deleteById(mdPbStoragevehicleinfo);
|
||||
|
||||
// 取消任务
|
||||
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
|
||||
@@ -4,6 +4,7 @@ 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 org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
@@ -51,6 +52,8 @@ public class StOutTask extends AbstractTask {
|
||||
task.setPoint_code1(json.getString("PickingLocation"));
|
||||
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
@@ -71,12 +74,12 @@ public class StOutTask extends AbstractTask {
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
if (taskDao.getPoint_code2().contains("-")) {
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2().replace('-', '_'));
|
||||
}
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type("1");
|
||||
|
||||
acsTaskDto.setTask_type("2");
|
||||
acsTaskDto.setCar_type(taskDao.getCar_type());
|
||||
if(StringUtils.isNoneBlank(taskDao.getCar_width())){
|
||||
acsTaskDto.setCar_width(taskDao.getCar_width());
|
||||
}
|
||||
return acsTaskDto;
|
||||
}
|
||||
|
||||
@@ -140,7 +143,7 @@ public class StOutTask extends AbstractTask {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
|
||||
outBillService.taskCancel(taskObj);
|
||||
// 取消任务
|
||||
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.system_manage.service.quartz.config;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nl.wms.system_manage.service.quartz.ISysQuartzJobService;
|
||||
import org.nl.wms.system_manage.service.quartz.dao.SysQuartzJob;
|
||||
import org.nl.wms.system_manage.service.quartz.utils.QuartzManage;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -10,6 +11,8 @@ import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 项目启动时重新激活启用的定时任务
|
||||
@@ -33,5 +36,9 @@ public class JobRunner implements ApplicationRunner {
|
||||
*/
|
||||
@Override
|
||||
public void run(ApplicationArguments applicationArguments) {
|
||||
log.info("--------------------注入定时任务---------------------");
|
||||
List<SysQuartzJob> quartzJobs = quartzJobService.findByIsPauseIsFalse();
|
||||
quartzJobs.forEach(quartzManage::addJob);
|
||||
log.info("--------------------定时任务注入完成---------------------");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,12 @@ public class IOSConstant {
|
||||
*/
|
||||
public final static String CHECK_POINT_CODE = "BCPCK5-9";
|
||||
|
||||
|
||||
/**
|
||||
* 出库分配点
|
||||
*/
|
||||
public final static String CKFPW_POINT_CODE = "CKFPW";
|
||||
|
||||
/**
|
||||
* 数字1
|
||||
*/
|
||||
|
||||
@@ -55,6 +55,12 @@ public interface IInBillService extends IService<IOStorInv> {
|
||||
|
||||
void taskFinish(SchBaseTask task);
|
||||
|
||||
/**
|
||||
* 入库任务取消
|
||||
* @param task
|
||||
*/
|
||||
void taskCancel(SchBaseTask task);
|
||||
|
||||
List<IOStorInvDisDto> getDisDtl(Map whereJson);
|
||||
|
||||
Structattr autoDis(JSONObject whereJson);
|
||||
|
||||
@@ -145,7 +145,7 @@ public interface IOutBillService extends IService<IOStorInv> {
|
||||
*
|
||||
* @param whereJson /
|
||||
*/
|
||||
String allSetPoint(JSONObject whereJson);
|
||||
void allSetPoint(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 出库单强制确认(更新仓位以及库存信息)
|
||||
@@ -167,5 +167,12 @@ public interface IOutBillService extends IService<IOStorInv> {
|
||||
*/
|
||||
void taskFinish(SchBaseTask task);
|
||||
|
||||
/**
|
||||
* 出库任务取消
|
||||
* @param task
|
||||
*/
|
||||
void taskCancel(SchBaseTask task);
|
||||
|
||||
|
||||
IOStorInv getByCode(String bill_code);
|
||||
}
|
||||
|
||||
@@ -29,4 +29,6 @@ public class IOStorInvDtlDto extends IOStorInvDtl {
|
||||
* 载具编号
|
||||
*/
|
||||
private String storagevehicle_code;
|
||||
|
||||
private String turnout_struct_code;
|
||||
}
|
||||
|
||||
@@ -21,11 +21,9 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicletypeService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyMater;
|
||||
@@ -109,6 +107,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
|
||||
@Resource
|
||||
private IWmsToWmsService iWmsToWmsService;
|
||||
|
||||
@Resource
|
||||
private IMdPbStoragevehicletypeService iMdPbStoragevehicletypeService;
|
||||
@Override
|
||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
@@ -269,22 +270,21 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
int row_size = 0;
|
||||
JSONObject io_mst = new JSONObject();
|
||||
String iostorinv_id = IdUtil.getStringId();
|
||||
String bill_code= (String) whereJson.get("bill_code");
|
||||
IOStorInv ioStorInv=new IOStorInv();
|
||||
if(ObjectUtil.isNotEmpty(this.getByCode(bill_code))){
|
||||
throw new BadRequestException("此入库批次号已经存在");
|
||||
}
|
||||
String source_name= (String) whereJson.get("bill_code");
|
||||
String bill_code = CodeUtil.getNewCode("IN_STORE_CODE");
|
||||
io_mst.put("iostorinv_id", iostorinv_id);
|
||||
io_mst.put("bill_code", bill_code);
|
||||
io_mst.put("source_name", source_name);
|
||||
io_mst.put("io_type", IOSEnum.IO_TYPE.code("入库"));
|
||||
io_mst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("生产入库"));
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String formattedDate = formatter.format(new Date());
|
||||
io_mst.put("biz_date",formattedDate);
|
||||
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById("1985609822694936576");
|
||||
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findByCode((String) whereJson.get("stor_code"));
|
||||
String stor_id=bsrealStorattr.getStor_id();
|
||||
String stor_code = bsrealStorattr.getStor_code();
|
||||
String stor_name = bsrealStorattr.getStor_name();
|
||||
io_mst.put("stor_id","1985609822694936576");
|
||||
io_mst.put("stor_id",stor_id);
|
||||
io_mst.put("stor_code", stor_code);
|
||||
io_mst.put("stor_name", stor_name);
|
||||
io_mst.put("remark", whereJson.get("remark"));
|
||||
@@ -596,6 +596,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
JSONObject mst = JSONObject.parseObject(JSON.toJSONString(param));
|
||||
String iostorinvId = param.getString("iostorinv_id");
|
||||
String storagevehicleCode = param.getString("storagevehicle_code");
|
||||
String storagevehicle_stype=param.getString("storagevehicle_type");
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype=iMdPbStoragevehicletypeService.getByCode(storagevehicle_stype);
|
||||
String suitable_car=mdPbStoragevehicletype.getSuitable_car();
|
||||
//判断该分配明细是否已经分配货位
|
||||
List<IOStorInvDis> disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinv_id, iostorinvId)
|
||||
@@ -632,6 +635,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
.sect_code(param.getString("sect_code"))
|
||||
.stor_code(param.getString("stor_code"))
|
||||
.storagevehicle_code(param.getString("storagevehicle_code"))
|
||||
.suitable_car(suitable_car)
|
||||
.strategyMaters(maters)
|
||||
.build());
|
||||
Structattr struct = structattrs.get(0);
|
||||
@@ -778,14 +782,28 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void divPoint1(Map whereJson) {
|
||||
String point_code = (String) whereJson.get("point_code");
|
||||
|
||||
String struct_code= (String) whereJson.get("struct_code");
|
||||
Structattr structattr=new Structattr();
|
||||
String car_type=null;
|
||||
String car_width=null;
|
||||
structattr=iStructattrService.getByCode(struct_code);
|
||||
if(structattr.getLayer_num().equals(4)){
|
||||
car_type="2";
|
||||
String storagevehicle_stype=(String) whereJson.get("storagevehicle_type");
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype=iMdPbStoragevehicletypeService.getByCode(storagevehicle_stype);
|
||||
car_width=mdPbStoragevehicletype.getCar_width();
|
||||
}else{
|
||||
car_type="1";
|
||||
}
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
task_form.put("task_type", "STInTask");
|
||||
task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task_form.put("PickingLocation", point_code);
|
||||
task_form.put("PlacedLocation", whereJson.get("struct_code"));
|
||||
task_form.put("PlacedLocation", struct_code);
|
||||
task_form.put("vehicle_code", whereJson.get("storagevehicle_code"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
StInTask stInTask = SpringContextHolder.getBean("STInTask");
|
||||
|
||||
String task_id = stInTask.create(task_form);
|
||||
@@ -954,6 +972,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
//获取单据编号
|
||||
String bill_code=ioStorInv.getBill_code();
|
||||
//
|
||||
//
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", structCode);
|
||||
@@ -1005,13 +1026,16 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
//回传给wms
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("0");
|
||||
towmsmsg.setBill_code(bill_code);
|
||||
towmsmsg.setStatus("Finish");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
towmsmsg.setStatus("200");
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("storagevehicle_code",task.getVehicle_code());
|
||||
jo.put("struct_name",task.getPoint_code2());
|
||||
jo.put("struct_code",task.getPoint_code2());
|
||||
GroupPlate groupPlate=mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code,task.getVehicle_code()));
|
||||
GroupPlate groupPlate=mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,task.getVehicle_code()
|
||||
));
|
||||
MdMeMaterialbase mdMeMaterialbase=mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,groupPlate.getMaterial_id()));
|
||||
jo.put("material_name",mdMeMaterialbase.getMaterial_name());
|
||||
jo.put("material_code",mdMeMaterialbase.getMaterial_code());
|
||||
@@ -1021,6 +1045,43 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
towmsmsg.setTableData(tableData);
|
||||
iWmsToWmsService.FinishOutTask(towmsmsg);
|
||||
}
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void taskCancel(SchBaseTask task) {
|
||||
List<IOStorInvDis> ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, task.getTask_id())
|
||||
);
|
||||
if (CollectionUtils.isEmpty(ioStorInvDis)) {
|
||||
throw new BadRequestException("未找到任务对应的分配明细");
|
||||
}
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", task.getPoint_code2());
|
||||
finish_map.put("storagevehicle_code",null);
|
||||
finish_map.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
finish_map.put("inv_type", null);
|
||||
finish_map.put("inv_id", null);
|
||||
finish_map.put("inv_code", null);
|
||||
iStructattrService.updateStatusByCode("2", finish_map);
|
||||
String iostorinvId = ioStorInvDis.get(0).getIostorinv_id();
|
||||
String storagevehicleCode = ioStorInvDis.get(0).getStoragevehicle_code();
|
||||
String structCode = ioStorInvDis.get(0).getStruct_code();
|
||||
IOStorInvDis item1 = ioStorInvDis.get(0);
|
||||
//获取出入库单标识
|
||||
String iostorinv_id=item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("0");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
towmsmsg.setStatus("4");
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("storagevehicle_code",task.getVehicle_code());
|
||||
List<JSONObject> tableData=new ArrayList<>();
|
||||
tableData.add(jo);
|
||||
towmsmsg.setTableData(tableData);
|
||||
iWmsToWmsService.FinishOutTask(towmsmsg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IOStorInvDisDto> getDisDtl(Map whereJson) {
|
||||
|
||||
@@ -21,9 +21,11 @@ import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicletypeService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicletype;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||
@@ -112,6 +114,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
|
||||
@Resource
|
||||
private IWmsToWmsService iWmsToWmsService;
|
||||
|
||||
@Resource
|
||||
private IMdPbStoragevehicletypeService iMdPbStoragevehicletypeService;
|
||||
@Override
|
||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
@@ -242,6 +247,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void deleteAll(String[] ids) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
@@ -347,14 +354,12 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
String iostorinv_id = IdUtil.getStringId();
|
||||
String bill_code= (String) map.get("bill_code");
|
||||
IOStorInv ioStorInv=new IOStorInv();
|
||||
if(ObjectUtil.isNotEmpty(this.getByCode(bill_code))){
|
||||
throw new BadRequestException("此入库批次号已经存在");
|
||||
}
|
||||
String source_name= (String) map.get("bill_code");
|
||||
String bill_code = CodeUtil.getNewCode("OUT_STORE_CODE");
|
||||
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById("1985609822694936576");
|
||||
map.put("iostorinv_id", iostorinv_id);
|
||||
map.put("bill_code", bill_code);
|
||||
map.put("source_name", source_name);
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy -MM-dd");
|
||||
String formattedDate = formatter.format(new Date());
|
||||
map.put("biz_date",formattedDate);
|
||||
@@ -379,7 +384,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
JSONObject row = array.getJSONObject(i);
|
||||
// 校验计划数量不能为零
|
||||
double plan_qty = row.getDoubleValue("Plan_qty");
|
||||
double plan_qty = row.getDoubleValue("plan_qty");
|
||||
if (Double.compare(plan_qty, 0.0) == 0) {
|
||||
throw new BadRequestException("数量不能为0");
|
||||
}
|
||||
@@ -397,10 +402,10 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
ioStorInvDtl.put("source_bill_code", row.getString("source_bill_code"));
|
||||
ioStorInvDtl.put("source_bill_type", row.getString("source_bill_type"));
|
||||
ioStorInvDtl.put("source_billdtl_id", row.getString("source_billdtl_id"));
|
||||
ioStorInvDtl.put("plan_qty", row.get("Plan_qty"));
|
||||
ioStorInvDtl.put("plan_qty", row.get("plan_qty"));
|
||||
ioStorInvDtl.put("remark", row.getString("remark"));
|
||||
ioStorInvDtl.put("assign_qty", "0");
|
||||
ioStorInvDtl.put("unassign_qty", row.get("Plan_qty"));
|
||||
ioStorInvDtl.put("unassign_qty", row.get("plan_qty"));
|
||||
|
||||
ioStorInvDtlMapper.insert(ioStorInvDtl.toJavaObject(IOStorInvDtl.class));
|
||||
|
||||
@@ -584,7 +589,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
mater.setMaterial_id(material_id);
|
||||
List<StrategyMater> list = new ArrayList<>();
|
||||
list.add(mater);
|
||||
Structattr outAllocation = iStructattrService.getByCode(whereJson.getString("turnout_struct_code"));
|
||||
// Structattr outAllocation = iStructattrService.getByCode(whereJson.getString("turnout_struct_code"));
|
||||
Structattr outAllocation = iStructattrService.getByCode(tableData.getJSONObject(i).getString("turnout_struct_code"));
|
||||
int seq_no = 1;
|
||||
BigDecimal allocation_canuse_qty=BigDecimal.ZERO;
|
||||
// //分配明细
|
||||
@@ -594,9 +600,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
ioStorInvDis.setIostorinvdtl_id(dtl.getIostorinvdtl_id());
|
||||
ioStorInvDis.setSeq_no((seq_no++)+"");
|
||||
ioStorInvDis.setSect_id(outAllocation.getSect_id());
|
||||
ioStorInvDis.setPcsn(tableData.getJSONObject(0).getString("pcsn"));
|
||||
ioStorInvDis.setMaterial_id(tableData.getJSONObject(0).getString("material_code"));
|
||||
ioStorInvDis.setMaterial_code(tableData.getJSONObject(0).getString("material_code"));
|
||||
ioStorInvDis.setPcsn(tableData.getJSONObject(i).getString("pcsn"));
|
||||
ioStorInvDis.setMaterial_id(tableData.getJSONObject(i).getString("material_code"));
|
||||
ioStorInvDis.setMaterial_code(tableData.getJSONObject(i).getString("material_code"));
|
||||
ioStorInvDis.setSect_name(outAllocation.getSect_name());
|
||||
ioStorInvDis.setSect_code(outAllocation.getSect_code());
|
||||
ioStorInvDis.setStruct_id(outAllocation.getStruct_id());
|
||||
@@ -604,10 +610,10 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
ioStorInvDis.setStruct_code(outAllocation.getStruct_code());
|
||||
ioStorInvDis.setStoragevehicle_code(outAllocation.getStoragevehicle_code());
|
||||
ioStorInvDis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("否"));
|
||||
ioStorInvDis.setQty_unit_id(tableData.getJSONObject(0).getString("qty_unit_id"));
|
||||
ioStorInvDis.setQty_unit_name(tableData.getJSONObject(0).getString("qty_unit_name"));
|
||||
ioStorInvDis.setQty_unit_id(tableData.getJSONObject(i).getString("qty_unit_id"));
|
||||
ioStorInvDis.setQty_unit_name(tableData.getJSONObject(i).getString("qty_unit_name"));
|
||||
ioStorInvDis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("未生成"));
|
||||
String Plan_qty=tableData.getJSONObject(0).getString("Plan_qty");
|
||||
String Plan_qty=tableData.getJSONObject(i).getString("plan_qty");
|
||||
BigDecimal bigDecimal = new BigDecimal(Plan_qty);
|
||||
ioStorInvDis.setPlan_qty(bigDecimal);
|
||||
//锁定货位
|
||||
@@ -621,21 +627,21 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
iStructattrService.updateStatusByCode("0",lock_map);
|
||||
//更新组盘表冻结数量状态
|
||||
iMdPbGroupPlateService.update(new LambdaUpdateWrapper<GroupPlate>()
|
||||
.set(GroupPlate::getFrozen_qty, tableData.getJSONObject(0).getString("qty"))
|
||||
.set(GroupPlate::getFrozen_qty, tableData.getJSONObject(i).getString("qty"))
|
||||
.set(GroupPlate::getUpdate_time, now)
|
||||
.eq(GroupPlate::getStoragevehicle_code, outAllocation.getStoragevehicle_code())
|
||||
.eq(GroupPlate::getPcsn, tableData.getJSONObject(0).getString("pcsn"))
|
||||
.eq(GroupPlate::getPcsn, tableData.getJSONObject(i).getString("pcsn"))
|
||||
.eq(GroupPlate::getMaterial_id, whereJson.getString("material_code"))
|
||||
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||
//生成分配明细
|
||||
ioStorInvDisMapper.insert(ioStorInvDis);
|
||||
// allocation_canuse_qty = allocation_canuse_qty.add(outAllocation.getFrozen_qty());
|
||||
allocation_canuse_qty=bigDecimal;
|
||||
//分配完成 结束分配
|
||||
unassign_qty=unassign_qty.subtract(allocation_canuse_qty);
|
||||
if (unassign_qty.doubleValue() <= 0){
|
||||
break;
|
||||
}
|
||||
// //分配完成 结束分配
|
||||
// unassign_qty=unassign_qty.subtract(allocation_canuse_qty);
|
||||
// if (unassign_qty.doubleValue() <= 0){
|
||||
// break;
|
||||
// }
|
||||
|
||||
|
||||
//更新详情
|
||||
@@ -1133,7 +1139,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public String allSetPoint(JSONObject whereJson) {
|
||||
public void allSetPoint(JSONObject whereJson) {
|
||||
//出库点
|
||||
if (StrUtil.isBlank(whereJson.getString("region_code"))){
|
||||
throw new BadRequestException("未选择出库区");
|
||||
@@ -1141,13 +1147,17 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
List<SchBasePoint> regionCode = schBasePointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, whereJson.getString("region_code"))
|
||||
.eq(SchBasePoint::getPoint_status,PointStatusEnum.EMPTY_POINT.getCode())
|
||||
.eq(SchBasePoint::getIs_used,true)
|
||||
.eq(SchBasePoint::getLock_up,"0")
|
||||
);
|
||||
if (CollectionUtils.isEmpty(regionCode)){
|
||||
throw new BadRequestException("当前库区"+regionCode+"无可用点位");
|
||||
}
|
||||
String pointCode=regionCode.get(0).getPoint_code();
|
||||
|
||||
|
||||
// String pointCode=regionCode.get(0).getPoint_code();
|
||||
// SchBasePoint schBasePoint=new SchBasePoint();
|
||||
// schBasePoint=iSchBasePointService.getByCode(pointCode);
|
||||
// schBasePoint.setLock_up("1");
|
||||
// iSchBasePointService.update(schBasePoint);
|
||||
String iostorinv_id = whereJson.getString("iostorinv_id");
|
||||
//查询主表信息
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectById(iostorinv_id);
|
||||
@@ -1167,13 +1177,28 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
for (String storageVehicleCode : groupDis.keySet()) {
|
||||
List<IOStorInvDis> disList = groupDis.get(storageVehicleCode);
|
||||
IOStorInvDis item = disList.get(0);
|
||||
String struct_code= item.getStruct_code();
|
||||
Structattr structattr=new Structattr();
|
||||
String car_type=null;
|
||||
String car_width=null;
|
||||
structattr=iStructattrService.getByCode(struct_code);
|
||||
if(structattr.getLayer_num().equals(4)){
|
||||
car_type="2";
|
||||
String storagevehicle_stype=(String) whereJson.get("storagevehicle_type");
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype=iMdPbStoragevehicletypeService.getByCode(storagevehicle_stype);
|
||||
car_width=mdPbStoragevehicletype.getCar_width();
|
||||
}else{
|
||||
car_type="1";
|
||||
}
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
task_form.put("task_type", "STOutTask");
|
||||
task_form.put("TaskCode",CodeUtil.getNewCode("TASK_CODE"));
|
||||
task_form.put("PickingLocation", item.getStruct_code());
|
||||
task_form.put("PlacedLocation", pointCode);
|
||||
task_form.put("PickingLocation", struct_code);
|
||||
task_form.put("PlacedLocation", IOSConstant.CKFPW_POINT_CODE);
|
||||
task_form.put("vehicle_code", item.getStoragevehicle_code());
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
StOutTask stOutTask = SpringContextHolder.getBean("STOutTask");
|
||||
String task_id = stOutTask.create(task_form);
|
||||
for (IOStorInvDis itemDis : disList) {
|
||||
@@ -1183,11 +1208,10 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
dis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("生成"));
|
||||
dis.setTask_id(task_id);
|
||||
dis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("是"));
|
||||
dis.setPoint_code(pointCode);
|
||||
// dis.setPoint_code(pointCode);
|
||||
ioStorInvDisMapper.updateById(dis);
|
||||
}
|
||||
}
|
||||
return pointCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1197,7 +1221,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
String iostorinv_id = whereJson.getString("iostorinv_id");
|
||||
String iostorinv_id = whereJson.getString("iostorinv_ id");
|
||||
|
||||
//查询主表信息
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectById(iostorinv_id);
|
||||
@@ -1342,6 +1366,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
//获取单据编号
|
||||
String bill_code=ioStorInv.getBill_code();
|
||||
//
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", item.getStruct_code());
|
||||
@@ -1356,6 +1382,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
point_code2=iSchBasePointService.getByCode(task.getPoint_code2());
|
||||
point_code2.setVehicle_code(task.getVehicle_code());
|
||||
point_code2.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
|
||||
point_code2.setLock_up(false);
|
||||
iSchBasePointService.update(point_code2);
|
||||
//库存变动:根据冻结数更新物料库存
|
||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||
@@ -1398,13 +1425,15 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
//回传给wms
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("1");
|
||||
towmsmsg.setBill_code(bill_code);
|
||||
towmsmsg.setStatus("Finish");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
towmsmsg.setStatus("200");
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("storagevehicle_code",task.getVehicle_code());
|
||||
jo.put("struct_name",task.getPoint_code2());
|
||||
jo.put("struct_code",task.getPoint_code2());
|
||||
GroupPlate groupPlate=mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code,task.getVehicle_code()));
|
||||
GroupPlate groupPlate=mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,task.getVehicle_code()));
|
||||
MdMeMaterialbase mdMeMaterialbase=mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_id,groupPlate.getMaterial_id()));
|
||||
jo.put("material_name",mdMeMaterialbase.getMaterial_name());
|
||||
jo.put("material_code",mdMeMaterialbase.getMaterial_code());
|
||||
@@ -1415,6 +1444,43 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
iWmsToWmsService.FinishOutTask(towmsmsg);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void taskCancel(SchBaseTask task) {
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", task.getPoint_code1());
|
||||
finish_map.put("storagevehicle_code",null);
|
||||
finish_map.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
finish_map.put("inv_type", null);
|
||||
finish_map.put("inv_id", null);
|
||||
finish_map.put("inv_code", null);
|
||||
iStructattrService.updateStatusByCode("2", finish_map);
|
||||
List<IOStorInvDis> disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, task.getTask_id())
|
||||
);
|
||||
// 完成当前任务对应的所有分配明细
|
||||
for (IOStorInvDis ioStorInvDis : disList) {
|
||||
ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id()));
|
||||
}
|
||||
IOStorInvDis item = disList.get(0);
|
||||
//获取出入库单标识
|
||||
String iostorinv_id=item.getIostorinv_id();
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("1");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
towmsmsg.setStatus("4");
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("storagevehicle_code",task.getVehicle_code());
|
||||
List<JSONObject> tableData=new ArrayList<>();
|
||||
tableData.add(jo);
|
||||
towmsmsg.setTableData(tableData);
|
||||
iWmsToWmsService.FinishOutTask(towmsmsg);
|
||||
}
|
||||
@Override
|
||||
public IOStorInv getByCode(String bill_code){
|
||||
IOStorInv one = this.getOne(
|
||||
|
||||
@@ -1,19 +1,30 @@
|
||||
package org.nl.wms.wbwms.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.wbwms.service.WmsToIWmsService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/ext/wms")
|
||||
@@ -21,12 +32,20 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
public class WmsToIWmscontroller {
|
||||
@Autowired
|
||||
WmsToIWmsService wmsToIWmsService;
|
||||
@Autowired
|
||||
IStructattrService iStructattrService;
|
||||
@PostMapping("/release")
|
||||
@Log("WMS释放出库终点位置")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> release(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.release(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/groupCheck")
|
||||
@Log("WMS待检区任务推送")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> groupCheck(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.groupCheck(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/group")
|
||||
@Log("WMS入库任务推送")
|
||||
@SaIgnore
|
||||
@@ -49,6 +68,61 @@ public class WmsToIWmscontroller {
|
||||
@Log("WMS盘点任务推送")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> checkBillTask(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.checkBillTask(param), HttpStatus.OK);
|
||||
return new ResponseEntity<>(wmsToIWmsService. checkBillTask(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/batchSaveAttr")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> batchSaveAttr(@Validated @RequestBody JSONObject config) {
|
||||
int 排 = config.getInteger("x");
|
||||
int 列 = config.getInteger("y");
|
||||
int 层 = config.getInteger("z");
|
||||
String sect_code = config.getString("sect_code");
|
||||
String stor_code = config.getString("stor_code");
|
||||
String pre = config.getString("pre");
|
||||
String now = DateUtil.now();
|
||||
ArrayList<Structattr> list = new ArrayList<>();
|
||||
for (int x = 1; x <= 排; x++) {
|
||||
for (int y = 1; y <= 列; y++) {
|
||||
for (int z = 1; z <= 层; z++) {
|
||||
Structattr attr = new Structattr();
|
||||
attr.setStruct_id(IdUtil.getStringId());
|
||||
attr.setSect_code(sect_code);
|
||||
attr.setStor_code(stor_code);
|
||||
String nx = "" + x;
|
||||
String ny = "" + y;
|
||||
String nz = "" + z;
|
||||
if(x<10){
|
||||
nx="0"+nx;
|
||||
}
|
||||
if(y<10){
|
||||
ny="0"+ny;
|
||||
}
|
||||
attr.setStruct_code(pre+nx+ny+"0"+nz);
|
||||
attr.setStruct_name(pre+nx+ny+"0"+nz);
|
||||
attr.setCreate_id("1");
|
||||
attr.setRow_num(x);
|
||||
attr.setCol_num(y);
|
||||
attr.setBlock_num(5);
|
||||
attr.setLayer_num(z);
|
||||
attr.setCreate_time(now);
|
||||
attr.setCreate_name("Admin");
|
||||
attr.setStor_id("1985609997907791872");
|
||||
attr.setSect_id("1985610807760785408");
|
||||
attr.setSect_name("1楼半成品");
|
||||
attr.setStor_name("1楼半成品");
|
||||
attr.setIs_used(true);
|
||||
attr.setIs_tempstruct("0");
|
||||
attr.setLock_type("0");
|
||||
list.add(attr);
|
||||
}
|
||||
}
|
||||
}
|
||||
Lists.partition(list,1000).stream().map((Function<List<Structattr>, CompletableFuture>) o->CompletableFuture.runAsync(() -> {
|
||||
for (Structattr stIvtStructattr : o) {
|
||||
iStructattrService.save(stIvtStructattr);
|
||||
}
|
||||
})).parallel().forEach(CompletableFuture::join);
|
||||
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
|
||||
public interface WmsToIWmsService {
|
||||
WmstoIWmsResponse release(JSONObject param);
|
||||
WmstoIWmsResponse groupTask (JSONObject param);
|
||||
WmstoIWmsResponse groupCheck(JSONObject param);
|
||||
WmstoIWmsResponse outBillTask (JSONObject param);
|
||||
WmstoIWmsResponse moveTask(JSONObject param);
|
||||
WmstoIWmsResponse checkBillTask(JSONObject param);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package org.nl.wms.wbwms.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
@@ -75,11 +77,13 @@ public class IWmsToWmsServiceImpl implements IWmsToWmsService {
|
||||
public JSONObject FinishOutTask(TOWMSMSG towmsmsg) {
|
||||
JSONObject result = new JSONObject();
|
||||
// 系统参数类
|
||||
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(towmsmsg), JSONObject.class);
|
||||
log.info("FinishOutTask请求参数是:-------------------" + jsonObject.toString());
|
||||
String wmsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.WMS_URL).getValue();
|
||||
wmsUrl = wmsUrl + WMSConstant.INOUT_WMS_API;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(wmsUrl)
|
||||
.body(String.valueOf(towmsmsg))
|
||||
.body(String.valueOf(jsonObject))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("FinishOutTask接口输出参数为:-------------------" + result.toString());
|
||||
@@ -98,6 +102,8 @@ public class IWmsToWmsServiceImpl implements IWmsToWmsService {
|
||||
@Override
|
||||
public JSONObject FinishMoveTask(MoveToWmsMsg moveToWmsMsg) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
log.info("FinishMoveTask请求参数是:-------------------" + moveToWmsMsg.toString());
|
||||
// 系统参数类
|
||||
String wmsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.WMS_URL).getValue();
|
||||
wmsUrl = wmsUrl + WMSConstant.MOVE_WMS_API;
|
||||
@@ -116,6 +122,7 @@ public class IWmsToWmsServiceImpl implements IWmsToWmsService {
|
||||
@Override
|
||||
public JSONObject FinishCheckTask(CheckToWmsMsg checkToWmsMsg) {
|
||||
JSONObject result = new JSONObject();
|
||||
log.info("FinishMoveTask请求参数是:-------------------" + checkToWmsMsg.toString());
|
||||
// 系统参数类
|
||||
String wmsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.WMS_URL).getValue();
|
||||
wmsUrl = wmsUrl + WMSConstant.CHECK_WMS_API;
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -19,10 +20,14 @@ import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.StructattrMapper;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.CheckInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.CheckOutTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.MoveTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
@@ -34,6 +39,7 @@ import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.IStIvtCheckmstService;
|
||||
import org.nl.wms.warehouse_manage.service.IStIvtMoveinvService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_manage.service.dto.CheckInsertDto;
|
||||
import org.nl.wms.wbwms.service.WmsToIWmsService;
|
||||
import org.nl.wms.wbwms.service.dto.WmstoIWmsResponse;
|
||||
@@ -61,6 +67,10 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
private GroupController groupController;
|
||||
@Autowired
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
@Resource
|
||||
private SchBasePointMapper schBasePointMapper;
|
||||
@Resource
|
||||
private StructattrMapper structattrMapper;
|
||||
@Autowired
|
||||
IInBillService iInBillService;
|
||||
@Autowired
|
||||
@@ -69,6 +79,10 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
private IStIvtCheckmstService iStIvtCheckmstService;
|
||||
@Autowired
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
@Autowired
|
||||
private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper;
|
||||
@Autowired
|
||||
private MdPbGroupplateMapper mdPbGroupplateMapper;
|
||||
/**
|
||||
* 移库任务配置类
|
||||
*/
|
||||
@@ -78,6 +92,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
IStIvtMoveinvService iStIvtMoveinvService;
|
||||
@Override
|
||||
public WmstoIWmsResponse release(JSONObject parm) {
|
||||
log.info("WMS释放点位的请求参数为:-------------------" + parm.toString());
|
||||
//IWMS出库终点位置
|
||||
String turnout_destination_code=parm.getString("turnout_destination_code");
|
||||
SchBasePoint schBasePoint=new SchBasePoint();
|
||||
@@ -87,14 +102,22 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
schBasePoint=iSchBasePointService.getByCode(turnout_destination_code);
|
||||
//载具编码
|
||||
String storagevehicle_code=schBasePoint.getVehicle_code();
|
||||
iSchBasePointService.unLockPoint(turnout_destination_code);
|
||||
//将组盘状态改为出库
|
||||
groupPlate=iMdPbGroupplateService.getByCode(storagevehicle_code);
|
||||
groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("出库"));
|
||||
iMdPbGroupplateService.update(groupPlate);
|
||||
// iSchBasePointService.unLockPoint(turnout_destination_code);
|
||||
if(StringUtils.isNotEmpty(storagevehicle_code)) {
|
||||
//将组盘状态改为出库
|
||||
groupPlate = iMdPbGroupplateService.getByCode(storagevehicle_code);
|
||||
mdPbGroupplateMapper.deleteById(groupPlate);
|
||||
}
|
||||
schBasePoint.setVehicle_code("");
|
||||
schBasePoint.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
|
||||
schBasePoint.setLock_up(false);
|
||||
iSchBasePointService.update(schBasePoint);
|
||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo=new MdPbStoragevehicleinfo();
|
||||
if(StringUtils.isNotEmpty(storagevehicle_code)) {
|
||||
mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(storagevehicle_code);
|
||||
//将载具信息清除
|
||||
mdPbStoragevehicleinfoMapper.deleteById(mdPbStoragevehicleinfo);
|
||||
}
|
||||
}catch (Exception e){
|
||||
result.setCode("404");
|
||||
result.setMsg("未找到出库货位");
|
||||
@@ -102,14 +125,19 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
}
|
||||
result.setMsg("出库位释放成功");
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
log.info("WMS释放点位的返回参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse groupTask(JSONObject parm) {
|
||||
log.info("WMS入库请求参数参数为:-------------------" + parm.toString());
|
||||
if(StringUtils.isBlank(parm.getString("point_code"))){
|
||||
throw new BadRequestException("未传入地面入库点");
|
||||
}
|
||||
if(!ObjectUtil.isNotEmpty(iSchBasePointService.getByCode(parm.getString("point_code")))){
|
||||
throw new BadRequestException("传入的地面入库点不存在");
|
||||
}
|
||||
if(StringUtils.isBlank(parm.getString("storagevehicle_code"))){
|
||||
throw new BadRequestException("未传入载具码");
|
||||
}
|
||||
@@ -136,11 +164,79 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
data.put("urnin_struct_code",point_code1);
|
||||
data.put("bill_code",parm.getString("bill_code"));
|
||||
result.setData(data);
|
||||
log.info("WMS入库返回参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse groupCheck(JSONObject parm) {
|
||||
log.info("WMS待检区请求参数参数为:-------------------" + parm.toString());
|
||||
if(StringUtils.isBlank(parm.getString("point_code"))){
|
||||
throw new BadRequestException("未传入地面入库点");
|
||||
}
|
||||
if(StringUtils.isBlank(parm.getString("task_type"))){
|
||||
throw new BadRequestException("未传入任务类型");
|
||||
}
|
||||
if(StringUtils.isBlank(parm.getString("storagevehicle_type"))){
|
||||
throw new BadRequestException("未传入托盘类型");
|
||||
}
|
||||
String car_type=null;
|
||||
String car_width="685";
|
||||
if(parm.getString("task_type").equals("1")){
|
||||
List<Structattr> regionCode = structattrMapper.selectList(new LambdaQueryWrapper<Structattr>()
|
||||
.eq(Structattr::getSect_code, "1BCDJQ")
|
||||
.eq(Structattr::getIs_used,true)
|
||||
.eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.isNull(Structattr::getStoragevehicle_code));
|
||||
String pointCode=regionCode.get(0).getStruct_code();
|
||||
if(StringUtils.isBlank(pointCode)){
|
||||
throw new BadRequestException("待检区域无库存");
|
||||
}
|
||||
if(parm.getString("storagevehicle_type").equals("BCPHDL")){
|
||||
car_type="1";
|
||||
}else{
|
||||
car_type="2";
|
||||
}
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
task_form.put("task_type", "CheckInTask");
|
||||
task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task_form.put("PickingLocation", parm.getString("point_code"));
|
||||
task_form.put("PlacedLocation", pointCode);
|
||||
task_form.put("vehicle_code", parm.getString("storagevehicle_type"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
CheckInTask checkInTask = SpringContextHolder.getBean("CheckInTask");
|
||||
String task_id = checkInTask.create(task_form);
|
||||
} else if(parm.getString("task_type").equals("2")){
|
||||
if(parm.getString("storagevehicle_type").equals("BCPHDL")){
|
||||
car_type="1";
|
||||
}else{
|
||||
car_type="2";
|
||||
}
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
task_form.put("task_type", "STInTask");
|
||||
task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task_form.put("PickingLocation",parm.getString("point_code"));
|
||||
task_form.put("PlacedLocation", "CKFPW");
|
||||
task_form.put("vehicle_code",parm.getString("storagevehicle_type"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
CheckOutTask checkOutTask = SpringContextHolder.getBean("CheckOutTask");
|
||||
String task_id = checkOutTask.create(task_form);
|
||||
}
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("待检区任务生成成功");
|
||||
result.setTotalElements(0);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse outBillTask(JSONObject parm) {
|
||||
log.info("WMS出库请求参数参数为:-------------------" + parm.toString());
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
JSONArray tableData = parm.getJSONArray("tableData");
|
||||
String storage_code=tableData.getJSONObject(0).getString("storage_code");
|
||||
@@ -157,7 +253,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
}
|
||||
parm.put("sect_id",structattr.getSect_id());
|
||||
parm.put("stor_id",structattr.getStor_id());
|
||||
parm.put("turnout_struct_code",turnout_struct_code);
|
||||
// parm.put("turnout_struct_code",turnout_struct_code);
|
||||
JSONObject j1=new JSONObject();
|
||||
j1.put("tableData",tableData);
|
||||
j1.put("bill_type",parm.getString("bill_type"));
|
||||
@@ -165,26 +261,28 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
//新增出库单
|
||||
String iostorinv_id=iOutBillService.insertDtl1(j1);
|
||||
parm.put("iostorinv_id",iostorinv_id);
|
||||
//分配库位
|
||||
//
|
||||
String stuct_code=iOutBillService.allDiv1(parm);
|
||||
|
||||
//生成出库任务
|
||||
parm.put("point_code",stuct_code);
|
||||
parm.put("region_code","CKQ");
|
||||
String pointCode=iOutBillService.allSetPoint(parm);
|
||||
iOutBillService.allSetPoint(parm);
|
||||
JSONObject data=new JSONObject();
|
||||
data.put("bill_code",iostorinv_id);
|
||||
data.put("urnin_struct_code",pointCode);
|
||||
// data.put("bill_code",iostorinv_id);
|
||||
// data.put("turnout_destination_code",pointCode);
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("出库任务生成成功");
|
||||
result.setTotalElements(0);
|
||||
result.setData(data);
|
||||
log.info("WMS出库返回参数参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse moveTask(JSONObject parm) {
|
||||
log.info("WMS移库请求参数参数为:-------------------" + parm.toString());
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
JSONArray tableData = parm.getJSONArray("tableData");
|
||||
//移出位置
|
||||
@@ -209,12 +307,14 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
JSONObject data=new JSONObject();
|
||||
data.put("bill_code",bill_code);
|
||||
result.setData(data);
|
||||
log.info("WMS移库返回参数参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse checkBillTask(JSONObject parm) {
|
||||
log.info("WMS盘点请求参数参数为:-------------------" + parm.toString());
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
CheckInsertDto checkInsertDto=new CheckInsertDto();
|
||||
String check_id=IdUtil.getStringId();
|
||||
@@ -247,8 +347,8 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("盘点任务生成成功");
|
||||
JSONObject data=new JSONObject();
|
||||
data.put("bill_code",parm.getString("check_code"));
|
||||
result.setData(data);
|
||||
log.info("WMS盘点返回参数参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--配置说明:
|
||||
https://www.cnblogs.com/jybky/p/12204586.html
|
||||
https://blog.csdn.net/wzygis/article/details/103189490
|
||||
https://www.cnblogs.com/xrq730/p/8628945.html
|
||||
https://www.jianshu.com/p/af5a7bab0e59
|
||||
https://blog.csdn.net/wzygis/article/details/103189490
|
||||
https://juejin.cn/post/6844903775631572999
|
||||
-->
|
||||
|
||||
<configuration scan="true" scanPeriod="30 seconds" debug="false">
|
||||
<contextName>nlAdmin</contextName>
|
||||
<property name="log.charset" value="utf-8"/>
|
||||
<property name="log.pattern"
|
||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
||||
value="%cyan(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %blue(%msg%n)"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
|
||||
<!--引入默认的一些设置-->
|
||||
<include resource="log/WmsToErp.xml"/>
|
||||
<include resource="log/ErpToWms.xml"/>
|
||||
<include resource="log/SendAcsTask.xml"/>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- 控制台高亮-->
|
||||
<!--withJansi 参数改为true-->
|
||||
<withJansi>true</withJansi>
|
||||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<!-- <charset>${log.charset}</charset>-->
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>10</maxHistory>
|
||||
<maxHistory>30</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxFileSize>120MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
@@ -32,78 +46,116 @@
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="ErpLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ErpLog/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>7</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<discardingThreshold>2</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
<appender name="asyncERPFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>2</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="ErpLogFile"/>
|
||||
|
||||
</appender>
|
||||
<appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" >
|
||||
<properties>
|
||||
<property>
|
||||
<name>system</name>
|
||||
<value>lms</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>logLevel</name>
|
||||
<value>%level</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>requestMethod</name>
|
||||
<value>%X{requestMethod}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>requestTime</name>
|
||||
<value>%d{yyyy-MM-dd HH:mm:ss.SSS}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>requestIp</name>
|
||||
<value>%X{requestIp}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>thread</name>
|
||||
<value>%thread</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>logger</name>
|
||||
<value>%logger</value>
|
||||
</property>
|
||||
</properties>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>DEBUG</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
<appender name="asyncLuceneAppender" class="org.nl.config.lucene.AsyncLuceneAppender">
|
||||
<appender name="asyncLuceneAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<appender-ref ref="luceneAppender" />
|
||||
<!-- 设置队列大小 -->
|
||||
<queueSize>512</queueSize>
|
||||
</appender>
|
||||
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<root level="info">
|
||||
<root level="debug">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
</springProfile>s
|
||||
<logger name="com.baomidou.mybatisplus.core.MybatisConfiguration" level="ERROR" additivity="false">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.redisson.command.RedisExecutor" level="ERROR" additivity="false">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.reflections.Reflections" level="ERROR" additivity="false">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.redisson.connection.ClientConnectionsEntry" level="ERROR" additivity="false">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.mybatis.spring.mapper.ClassPathMapperScanner" level="ERROR" additivity="false">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.baomidou.dynamic.datasource.DynamicRoutingDataSource" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.redisson.connection.pool.MasterPubSubConnectionPool" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.redisson.connection.pool.MasterConnectionPool" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.redisson.Version" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.alibaba.druid.pool.DruidDataSource" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.nl.config.RedisConfig" level="INFO" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.apache" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.hibernate" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="io.netty" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="io.lettuce" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.fasterxml" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.quartz" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.google" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="springfox" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="log4jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="nl.basjes" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.yomahub.tlog.id.snowflake.UniqueIdGenerator" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="com.yomahub.tlog.core.rpc.TLogRPCHandler" level="ERROR" additivity="true">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
|
||||
<!--生产环境:打印控制台和输出到文件-->
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
@@ -146,8 +198,27 @@
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
|
||||
|
||||
<!--测试环境:打印控制台-->
|
||||
|
||||
<!--生产环境:打印控制台和输出到文件-->
|
||||
|
||||
<springProfile name="test">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</root>
|
||||
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.resultset" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="springfox.documentation" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.resultsettable" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
</configuration>
|
||||
|
||||
Reference in New Issue
Block a user