fix:优化货位表查询
This commit is contained in:
@@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -42,12 +43,7 @@ public interface DeviceService extends CommonService<Device> {
|
||||
* @return List<DeviceDto>
|
||||
*/
|
||||
List<DeviceDto> queryAll(DeviceQueryParam query);
|
||||
/**
|
||||
* 根据id获取类
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
Device getById(String id);
|
||||
|
||||
/**
|
||||
* 根据id获取Dto
|
||||
* @param id
|
||||
@@ -55,24 +51,7 @@ public interface DeviceService extends CommonService<Device> {
|
||||
*/
|
||||
DeviceDto findById(String id);
|
||||
|
||||
/**
|
||||
* 插入
|
||||
* @param resources
|
||||
* @return
|
||||
*/
|
||||
int insert(DeviceDto resources);
|
||||
/**
|
||||
* 更新
|
||||
* @param resources
|
||||
* @return
|
||||
*/
|
||||
int updateById(DeviceDto resources);
|
||||
/**
|
||||
* 删除
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
int removeById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
* @param ids
|
||||
@@ -89,7 +68,7 @@ public interface DeviceService extends CommonService<Device> {
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> queryAll(Map whereJson, Pageable page);
|
||||
PageInfo queryAll(Map whereJson, Pageable page);
|
||||
|
||||
/**
|
||||
* 查询设备协议
|
||||
@@ -292,10 +271,6 @@ public interface DeviceService extends CommonService<Device> {
|
||||
*/
|
||||
String queryScannerByCode(String code) throws Exception;
|
||||
|
||||
/**
|
||||
* 加载货位信息
|
||||
*/
|
||||
void reload();
|
||||
|
||||
/**
|
||||
* 查找所有货位
|
||||
@@ -308,7 +283,7 @@ public interface DeviceService extends CommonService<Device> {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<StorageCellDto> findAllStorageCellFromCache();
|
||||
Collection<StorageCellDto> findAllStorageCellFromCache();
|
||||
|
||||
/**
|
||||
* 根据code获取地址
|
||||
|
||||
@@ -258,7 +258,6 @@ public class DeviceAppServiceImpl implements DeviceAppService, ApplicationAutoIn
|
||||
device.setDeviceDriverDefination(defination);
|
||||
DeviceDriver driver = defination.getDriverInstance(device);
|
||||
device.setDeviceDriver(driver);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.map.ListOrderedMap;
|
||||
import org.nl.acs.device.deviceDriver.service.defination.opcDefination.standardInspectSite.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device.deviceDriver.service.defination.ordinaryDefination.standardOrdinarySite.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device.storageMgt.service.StorageCellService;
|
||||
import org.nl.acs.iot.opc.opcPlc.service.OpcPlcService;
|
||||
import org.nl.ApplicationAutoInitial;
|
||||
import org.nl.acs.device.device.service.entity.Device;
|
||||
import org.nl.acs.device.deviceExtInfo.service.entity.DeviceExtra;
|
||||
import org.nl.acs.device.deviceDriver.service.dto.ItemDto;
|
||||
@@ -31,7 +31,6 @@ import org.nl.acs.device.device.service.mapper.DeviceMapper;
|
||||
import org.nl.acs.task.route.domain.RouteLine;
|
||||
import org.nl.acs.task.route.service.mapper.RouteLineMapper;
|
||||
import org.nl.acs.device.storageMgt.service.entity.StorageCell;
|
||||
import org.nl.acs.device.storageMgt.service.mapper.StorageCellMapper;
|
||||
import org.nl.common.utils.ConvertUtil;
|
||||
import org.nl.common.utils.PageUtil;
|
||||
import org.nl.common.utils.ReadUtil;
|
||||
@@ -60,13 +59,14 @@ import org.nl.system.service.dict.dao.Dict;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.openscada.opc.lib.da.Server;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
@@ -80,122 +80,52 @@ import java.util.*;
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
// @CacheConfig(cacheNames = DeviceService.CACHE_KEY)
|
||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||
public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> implements DeviceService, ApplicationAutoInitial {
|
||||
|
||||
private final DeviceMapper deviceMapper;
|
||||
private final RouteLineMapper routeLineMapper;
|
||||
private final StorageCellMapper storageCellMapper;
|
||||
private final DeviceExtraMapper deviceExtraMapper;
|
||||
|
||||
private final DeviceExtraService deviceExtraService;
|
||||
private final OpcService opcService;
|
||||
private final OpcPlcService opcPlcService;
|
||||
private final DeviceDriverDefinationAppService deviceDriverDefinationAppService;
|
||||
private final DeviceAppService deviceAppService;
|
||||
|
||||
private final ISysDictService iSysDictService;
|
||||
List<StorageCellDto> storageCells = new ArrayList<>();
|
||||
public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> implements DeviceService {
|
||||
@Resource
|
||||
private RouteLineMapper routeLineMapper;
|
||||
@Resource
|
||||
private DeviceExtraMapper deviceExtraMapper;
|
||||
@Autowired
|
||||
private StorageCellService storageCellService;
|
||||
@Autowired
|
||||
private DeviceExtraService deviceExtraService;
|
||||
@Autowired
|
||||
private OpcService opcService;
|
||||
@Autowired
|
||||
private OpcPlcService opcPlcService;
|
||||
@Autowired
|
||||
private DeviceDriverDefinationAppService deviceDriverDefinationAppService;
|
||||
@Autowired
|
||||
private DeviceAppService deviceAppService;
|
||||
@Autowired
|
||||
private ISysDictService iSysDictService;
|
||||
|
||||
@Override
|
||||
public PageInfo<DeviceDto> queryAll(DeviceQueryParam query, Pageable pageable) {
|
||||
IPage<Device> queryPage = PageUtil.toMybatisPage(pageable);
|
||||
IPage<Device> page = deviceMapper.selectPage(queryPage, QueryHelpMybatisPlus.getPredicate(query));
|
||||
IPage<Device> page = this.baseMapper.selectPage(queryPage, QueryHelpMybatisPlus.getPredicate(query));
|
||||
return ConvertUtil.convertPage(page, DeviceDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceDto> queryAll(DeviceQueryParam query) {
|
||||
return ConvertUtil.convertList(deviceMapper.selectList(QueryHelpMybatisPlus.getPredicate(query)), DeviceDto.class);
|
||||
return ConvertUtil.convertList(this.baseMapper.selectList(QueryHelpMybatisPlus.getPredicate(query)), DeviceDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Device getById(String id) {
|
||||
return deviceMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
// @Cacheable(key = "'id:' + #p0")
|
||||
public DeviceDto findById(String id) {
|
||||
return ConvertUtil.convert(getById(id), DeviceDto.class);
|
||||
return ConvertUtil.convert(this.baseMapper.selectById(id), DeviceDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insert(DeviceDto resources) {
|
||||
Device entity = ConvertUtil.convert(resources, Device.class);
|
||||
return deviceMapper.insert(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateById(DeviceDto resources) {
|
||||
Device entity = ConvertUtil.convert(resources, Device.class);
|
||||
int ret = deviceMapper.updateById(entity);
|
||||
// delCaches(resources.id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int removeByIds(Set<String> ids) {
|
||||
// delCaches(ids);
|
||||
return deviceMapper.deleteBatchIds(ids);
|
||||
return this.baseMapper.deleteBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int removeById(String id) {
|
||||
Set<String> set = new HashSet<>(1);
|
||||
set.add(id);
|
||||
return this.removeByIds(set);
|
||||
}
|
||||
|
||||
/*
|
||||
private void delCaches(String id) {
|
||||
redisUtils.delByKey(CACHE_KEY + "::id:", id);
|
||||
}
|
||||
|
||||
private void delCaches(Set<String> ids) {
|
||||
for (String id: ids) {
|
||||
delCaches(id);
|
||||
}
|
||||
}*/
|
||||
|
||||
/*
|
||||
@Override
|
||||
public void download(List<DeviceDto> all, HttpServletResponse response) throws IOException {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (DeviceDto device : all) {
|
||||
Map<String,Object> map = new LinkedHashMap<>();
|
||||
map.put("设备编码", device.getDeviceCode());
|
||||
map.put("设备名字", device.getDeviceName());
|
||||
map.put("设备类型", device.getDeviceType());
|
||||
map.put("所属区域", device.getRegion());
|
||||
map.put("生产厂家", device.getManufacturer());
|
||||
map.put("生产厂家电话", device.getManufacturerPhone());
|
||||
map.put("是否配置", device.getIsConfig());
|
||||
map.put("opcServer标识", device.getOpcServerId());
|
||||
map.put("opcPlc标识", device.getOpcPlcId());
|
||||
map.put("是否为路由设备", device.getIsRoute());
|
||||
map.put("设备驱动类型", device.getDriverCode());
|
||||
map.put("备注", device.getRemark());
|
||||
map.put("是否启用", device.getIsActive());
|
||||
map.put("顺序号", device.getSeqNum());
|
||||
map.put("是否删除", device.getIsDelete());
|
||||
map.put("创建者", device.getCreateBy());
|
||||
map.put("创建时间", device.getCreateTime());
|
||||
map.put("修改者", device.getUpdateBy());
|
||||
map.put("修改时间", device.getUpdateTime());
|
||||
map.put("地址号", device.getAddress());
|
||||
list.add(map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
public PageInfo queryAll(Map whereJson, Pageable page) {
|
||||
IPage<Device> queryPage = PageUtil.toMybatisPage(page);
|
||||
LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(StringUtils.isNotBlank((String) whereJson.get("device_type")), Device::getDevice_type, whereJson.get("device_type"));
|
||||
@@ -204,9 +134,8 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
wrapper.nested(StringUtils.isNotBlank((String) whereJson.get("blurry")), i -> i.like(Device::getDevice_code, whereJson.get("blurry")).or().like(Device::getDevice_name, whereJson.get("blurry")));
|
||||
wrapper.orderByAsc(Device::getIs_config).orderByDesc(Device::getSeq_num).orderByDesc(Device::getUpdate_time);
|
||||
wrapper.orderByDesc(Device::getCreate_time);
|
||||
IPage<Device> devicePage = deviceMapper.queryPage(queryPage, wrapper);
|
||||
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(devicePage, Device.class));
|
||||
return json;
|
||||
IPage<Device> devicePage = this.baseMapper.queryPage(queryPage, wrapper);
|
||||
return ConvertUtil.convertPage(devicePage, Device.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -239,7 +168,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
|
||||
@Override
|
||||
public List<DeviceDto> queryAll(Map whereJson) {
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.list();
|
||||
return ConvertUtil.convertList(deviceList, DeviceDto.class);
|
||||
}
|
||||
@@ -254,7 +183,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
|
||||
@Override
|
||||
public DeviceDto findByCode(String code) {
|
||||
Device device = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
Device device = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.eq(Device::getDevice_code, code)
|
||||
.one();
|
||||
return ConvertUtil.convert(device, DeviceDto.class);
|
||||
@@ -280,7 +209,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
|
||||
Device entity = ConvertUtil.convert(dto, Device.class);
|
||||
|
||||
deviceMapper.insert(entity);
|
||||
this.baseMapper.insert(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -304,56 +233,28 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
dto.setUpdate_by(currentUsername);
|
||||
|
||||
Device device = ConvertUtil.convert(dto, Device.class);
|
||||
deviceMapper.updateById(device);
|
||||
this.baseMapper.updateById(device);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(String[] ids) {
|
||||
// WQLObject wo = WQLObject.getWQLObject("acs_device");
|
||||
// WQLObject storageTab = WQLObject.getWQLObject("acs_storage_cell");
|
||||
// //路由路线表【acs_route_line】
|
||||
// WQLObject routeLineTab = WQLObject.getWQLObject("acs_route_line");
|
||||
// //路由路线表【stage_actor】
|
||||
// WQLObject stageActorTab = WQLObject.getWQLObject("stage_actor");
|
||||
for (String device_id : ids) {
|
||||
// JSONObject deviceJson = wo.query("device_id = '" + device_id + "'").uniqueResult(0);
|
||||
Device deviceJson = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
Device deviceJson = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.eq(Device::getDevice_id, device_id)
|
||||
.one();
|
||||
if (deviceJson == null) {
|
||||
continue;
|
||||
}
|
||||
String device_code = deviceJson.getDevice_code();
|
||||
log.debug("删除设备时候判断路由是否存在,如果存在,则不允许删除设备!");
|
||||
// JSONObject json = routeLineTab.query("device_code = '" + device_code + "' or next_device_code = '" + device_code + "'").uniqueResult(0);
|
||||
//"删除设备时候判断路由是否存在,如果存在,则不允许删除设备!"
|
||||
LambdaQueryChainWrapper<RouteLine> eq = new LambdaQueryChainWrapper<>(routeLineMapper)
|
||||
.eq(RouteLine::getDevice_code, device_code)
|
||||
.or().eq(RouteLine::getNext_device_code, device_code);
|
||||
if (eq != null && eq.count() > 0) {
|
||||
throw new BadRequestException(LangProcess.msg("device_checkRoute", device_code));
|
||||
}
|
||||
log.debug("删除舞台里面的设备!");
|
||||
// Map<String, String> map = new HashMap<>();
|
||||
// map.put("device_id", "");
|
||||
// map.put("device_code", "");
|
||||
// map.put("device_name", "");
|
||||
// stageActorTab.update(map, "device_code = '" + device_code + "'");
|
||||
// stageActorMapper.lambdaUpdate().eq(StageActor::getDevice_code,device_code)
|
||||
// .set(StageActor::getDevice_code,"")
|
||||
// .set(StageActor::getDevice_name,"")
|
||||
// .update();
|
||||
log.debug("根据设备编码查询在缓存里面的舞台数据,并删除掉!");
|
||||
// JSONArray jsonArr = WQL.getWO("QStage_01").addParam("flag", "1").addParam("device_code", device_code).process().getResultJSONArray(0);
|
||||
|
||||
// List<Stage> stageList = stageMapper.selectByDeviceCode(device_code);
|
||||
// for (int i = 0; i < stageList.size(); i++) {
|
||||
// String stage_code = stageList.get(i).getStage_code();
|
||||
// redisUtils.del("stage:mst:" + stage_code);
|
||||
// redisUtils.del("stage:dtl:" + stage_code);
|
||||
// }
|
||||
log.debug("删除缓存里面的设备!");
|
||||
Device deviceByCode = deviceAppService.findDeviceByCode(device_code);
|
||||
List<Device> allDevice = deviceAppService.findAllDevice();
|
||||
Iterator<Device> iterator = allDevice.iterator();
|
||||
@@ -363,32 +264,12 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// allDevice.remove(deviceByCode);
|
||||
|
||||
log.info("设备删除成功!");
|
||||
if (deviceByCode != null) {
|
||||
if (StrUtil.equals("storage", deviceByCode.getDeviceDriverDefination().getFitDeviceTypes().get(0).name())) {
|
||||
// storageTab.delete("substring_index( storage_code,'-',1)= '" + device_code + "'");
|
||||
storageCellMapper.deleteByStorageCode(device_code);
|
||||
} else {
|
||||
// JSONObject data = storageTab.query("storage_code ='" + device_code + "'").uniqueResult(0);
|
||||
StorageCell storageCell = new LambdaQueryChainWrapper<>(storageCellMapper)
|
||||
.eq(StorageCell::getStorage_code, device_code)
|
||||
.one();
|
||||
if (storageCell != null) {
|
||||
// storageTab.delete("storage_code = '" + device_code + "'");
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("storage_code", device_code);
|
||||
storageCellMapper.deleteByMap(map);
|
||||
}
|
||||
}
|
||||
storageCellService.deleteByStorageCode(device_code);
|
||||
}
|
||||
// wo.delete("device_id = '" + device_id + "'");
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("device_id", device_id);
|
||||
deviceMapper.deleteByMap(map);
|
||||
this.baseMapper.deleteByMap(map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,7 +332,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
|
||||
@Override
|
||||
public JSONArray selectList() {
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.apply("is_delete= '0' AND is_active= '1' AND is_config = 'true'")
|
||||
.orderByAsc(Device::getDevice_code)
|
||||
.list();
|
||||
@@ -473,7 +354,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
public JSONArray selectConveyorList() {
|
||||
//设备基础信息表【acs_device】
|
||||
// JSONArray arr = WQLObject.getWQLObject("acs_device").query("is_delete= '0' AND is_active= '1' AND device_type = 'conveyor'").getResultJSONArray(0);
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.apply("is_delete= '0' AND is_active= '1' AND device_type = 'conveyor'")
|
||||
.list();
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList));
|
||||
@@ -493,7 +374,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
@Override
|
||||
public JSONArray selectDeviceListByRegion(String region) {
|
||||
//设备基础信息表【acs_device】
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.apply("is_delete= '0' AND is_active= '1' and region = '" + region + "'")
|
||||
.orderByAsc(Device::getDevice_code)
|
||||
.list();
|
||||
@@ -545,7 +426,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
|
||||
StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver;
|
||||
// JSONArray arr = WQLObject.getWQLObject("acs_device").query("is_delete= '0' AND is_active= '1' and region != '' and is_config= 'true' ").getResultJSONArray(0);
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.apply("is_delete= '0' AND is_active= '1' and region != '' and is_config= 'true' ")
|
||||
.list();
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList));
|
||||
@@ -745,10 +626,9 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
int minZ = form.getInteger("minZ");
|
||||
for (int i = minY; i <= maxY; i++) {
|
||||
for (int j = minZ; j <= maxZ; j++) {
|
||||
// JSONObject json = wo.query("storage_code='" + device_code + "-" + formatNum(i) + "-" + formatNum(j) + "'").uniqueResult(0);
|
||||
StorageCell storageCell = new LambdaQueryChainWrapper<>(storageCellMapper)
|
||||
.eq(StorageCell::getStorage_code, device_code + "-" + formatNum(i) + "-" + formatNum(j))
|
||||
.one();
|
||||
|
||||
StorageCell storageCell = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>()
|
||||
.eq(StorageCell::getStorage_code, device_code + "-" + formatNum(i) + "-" + formatNum(j)));
|
||||
if (ObjectUtil.isEmpty(storageCell)) {
|
||||
StorageCellDto celldto = new StorageCellDto();
|
||||
celldto.setStorage_id(IdUtil.simpleUUID());
|
||||
@@ -757,12 +637,10 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
celldto.setX(formatNum(x));
|
||||
celldto.setY(formatNum(i));
|
||||
celldto.setZ(formatNum(j));
|
||||
//celldto.setAddress(Integer.parseInt(CodeUtil.getNewCode("NDCADDRESS_NO")));
|
||||
celldto.setCreate_by("init");
|
||||
celldto.setCreate_time(SecurityUtils.getCurrentNickName());
|
||||
// wo.insert((JSONObject) JSONObject.toJSON(celldto));
|
||||
StorageCell entity = ConvertUtil.convert(celldto, StorageCell.class);
|
||||
storageCellMapper.insert(entity);
|
||||
storageCellService.save(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -771,10 +649,8 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
if (StrUtil.equals(driver_code, "standard_emptypallet_site") && form.containsKey("max_emptypalletnum")) {
|
||||
int num = form.getInteger("max_emptypalletnum");
|
||||
for (int i = 1; i < num + 1; i++) {
|
||||
// JSONObject json = wo.query("storage_code ='" + device_code + "." + i + "'").uniqueResult(0);
|
||||
StorageCell storageCell = new LambdaQueryChainWrapper<>(storageCellMapper)
|
||||
.eq(StorageCell::getStorage_code, device_code + "." + i)
|
||||
.one();
|
||||
StorageCell storageCell = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>()
|
||||
.eq(StorageCell::getStorage_code, device_code + "." + i));
|
||||
if (ObjectUtil.isEmpty(storageCell)) {
|
||||
StorageCellDto celldto = new StorageCellDto();
|
||||
celldto.setStorage_id(IdUtil.simpleUUID());
|
||||
@@ -788,14 +664,12 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
String now = DateUtil.now();
|
||||
celldto.setCreate_time(now);
|
||||
StorageCell entity = ConvertUtil.convert(celldto, StorageCell.class);
|
||||
storageCellMapper.insert(entity);
|
||||
storageCellService.save(entity);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// JSONObject json = wo.query("storage_code ='" + device_code + "'").uniqueResult(0);
|
||||
StorageCell storageCell = new LambdaQueryChainWrapper<>(storageCellMapper)
|
||||
.eq(StorageCell::getStorage_code, device_code)
|
||||
.one();
|
||||
StorageCell storageCell = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>()
|
||||
.eq(StorageCell::getStorage_code, device_code));
|
||||
if (ObjectUtil.isEmpty(storageCell)) {
|
||||
StorageCellDto celldto = new StorageCellDto();
|
||||
celldto.setStorage_id(IdUtil.simpleUUID());
|
||||
@@ -809,8 +683,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
String now = DateUtil.now();
|
||||
celldto.setCreate_time(now);
|
||||
StorageCell entity = ConvertUtil.convert(celldto, StorageCell.class);
|
||||
storageCellMapper.insert(entity);
|
||||
storageCells.add(celldto);
|
||||
storageCellService.save(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1358,7 +1231,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
public JSONArray selectDeviceListByType(String type) {
|
||||
// JSONArray arr = WQLObject.getWQLObject("acs_device").query("is_delete= '0' AND is_active= '1' and device_type = '" + type + "' AND is_config = 'true'", "device_code").getResultJSONArray(0);
|
||||
// return arr;
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.eq(Device::getIs_delete, "0")
|
||||
.eq(Device::getIs_active, "1")
|
||||
.eq(Device::getDevice_type, type)
|
||||
@@ -1372,7 +1245,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
@Override
|
||||
public JSONObject queryStorageExtra(String device_code) {
|
||||
// JSONObject device = WQLObject.getWQLObject("acs_device").query("device_code = '" + device_code + "'").uniqueResult(0);
|
||||
Device device = new LambdaQueryChainWrapper<>(deviceMapper)
|
||||
Device device = new LambdaQueryChainWrapper<>(this.baseMapper)
|
||||
.eq(Device::getDevice_code, device_code)
|
||||
.one();
|
||||
String device_id = device.getDevice_id();
|
||||
@@ -1397,65 +1270,34 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void autoInitial() throws Exception {
|
||||
this.reload();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载货位信息
|
||||
*/
|
||||
@Override
|
||||
public void reload() {
|
||||
this.storageCells = queryAllStorageCell();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StorageCellDto> queryAllStorageCell() {
|
||||
List<StorageCell> list = new LambdaQueryChainWrapper<>(storageCellMapper)
|
||||
.list();
|
||||
List<StorageCell> list = storageCellService.list();
|
||||
return ConvertUtil.convertList(list, StorageCellDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StorageCellDto> findAllStorageCellFromCache() {
|
||||
return storageCells;
|
||||
public Collection<StorageCellDto> findAllStorageCellFromCache() {
|
||||
Map<String, StorageCellDto> storageCacheMap = storageCellService.Storage_Cache_Map;
|
||||
return storageCacheMap.values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int queryAddressBydeviceCode(String code) {
|
||||
Iterator iterator = storageCells.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
StorageCellDto storageCellDto = (StorageCellDto) iterator.next();
|
||||
if (storageCellDto.getStorage_code().equals(code)) {
|
||||
return storageCellDto.getAddress();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
StorageCell one = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>().eq(StorageCell::getStorage_code, code));
|
||||
return one.getAddress();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int queryAddressBynextdeviceCode(String code) {
|
||||
Iterator iterator = storageCells.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
StorageCellDto storageCellDto = (StorageCellDto) iterator.next();
|
||||
if (storageCellDto.getStorage_code().equals(code)) {
|
||||
return storageCellDto.getAddress1();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
StorageCell one = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>().eq(StorageCell::getStorage_code, code));
|
||||
return one.getAddress1();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryDeviceCodeByAddress(int code) {
|
||||
Iterator iterator = storageCells.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
StorageCellDto storageCellDto = (StorageCellDto) iterator.next();
|
||||
if (storageCellDto.getAddress() == code) {
|
||||
return storageCellDto.getStorage_code();
|
||||
}
|
||||
}
|
||||
return "0";
|
||||
public String queryDeviceCodeByAddress(int add) {
|
||||
StorageCell one = storageCellService.getOne(new LambdaQueryWrapper<StorageCell>().eq(StorageCell::getAddress, add));
|
||||
return one.getStorage_code();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1852,7 +1694,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
param.put("zh_device_name", zh_device_name);
|
||||
|
||||
Device entity = ConvertUtil.convert(param, Device.class);
|
||||
deviceMapper.insert(entity);
|
||||
this.baseMapper.insert(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1931,7 +1773,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
}
|
||||
|
||||
public JSONArray selectCarList() {
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(deviceMapper).apply("device_type = 'agv' AND is_delete= '0' AND is_active= '1' AND is_config = 'true'").orderByAsc(Device::getDevice_code).list();
|
||||
List<Device> deviceList = new LambdaQueryChainWrapper<>(this.baseMapper).apply("device_type = 'agv' AND is_delete= '0' AND is_active= '1' AND is_config = 'true'").orderByAsc(Device::getDevice_code).list();
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList));
|
||||
JSONArray result = new JSONArray();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
### appInit
|
||||
项目启动时候对项目进行初始化,初始化器包括6项目
|
||||
1.AutoRunService :根据配置判断哪些自动线程需要启动
|
||||
2.自动线程继承AbstractAutoRunnable,目前系统一共有4个自动线程
|
||||
#### DeviceExecuteAutoRun
|
||||
设备自动线程,完成每个设备驱动的加载
|
||||
设备驱动通过while循环判断信号状态
|
||||
#### NDCAutoRun
|
||||
NDC自动线程,通过该线程与NDC创建socket通讯,做phace逻辑交互
|
||||
该版本废弃:统一改agvKit交互
|
||||
#### DeviceOpcSynchronizeAutoRun
|
||||
同步所有OpcService信号,
|
||||
该版本固定使用KEP-SERVER 进行信号同步
|
||||
#### SocketListenerAutoRun
|
||||
socket同步监听测试类,在startconfig中配置不用
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.acs.device.storageMgt.service;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.common.db.PageInfo;
|
||||
import org.nl.common.db.CommonService;
|
||||
import org.nl.acs.device.storageMgt.service.entity.StorageCell;
|
||||
@@ -9,6 +10,7 @@ import org.springframework.data.domain.Pageable;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -18,6 +20,7 @@ import java.util.Set;
|
||||
* @date 2023-05-09
|
||||
*/
|
||||
public interface StorageCellService extends CommonService<StorageCell> {
|
||||
Map<String,StorageCellDto> Storage_Cache_Map = new HashMap<>();
|
||||
|
||||
static final String CACHE_KEY = "storageCell";
|
||||
|
||||
@@ -157,4 +160,7 @@ public interface StorageCellService extends CommonService<StorageCell> {
|
||||
void download(List<StorageCellDto> dtos, HttpServletResponse response) throws IOException;
|
||||
|
||||
StorageCell findByAddress(String taskPoint);
|
||||
|
||||
int deleteByStorageCode(@Param("storage_code") String storage_code);
|
||||
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@ import java.util.*;
|
||||
@Service
|
||||
public class StorageCellServiceImpl extends CommonServiceImpl<StorageCellMapper, StorageCell> implements StorageCellService , ApplicationAutoInitial {
|
||||
|
||||
public static Map<String,StorageCellDto> Storage_Cache_Map = new HashMap<>();
|
||||
|
||||
|
||||
@Override
|
||||
@@ -193,6 +192,13 @@ public class StorageCellServiceImpl extends CommonServiceImpl<StorageCellMapper,
|
||||
return storageCell;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByStorageCode(String storage_code) {
|
||||
if (!org.apache.commons.lang3.StringUtils.isEmpty(storage_code)){
|
||||
return this.baseMapper.deleteByStorageCode(storage_code);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void initCache(){
|
||||
List<StorageCell> list = this.list();
|
||||
|
||||
@@ -19,7 +19,7 @@ public interface StorageCellMapper extends CommonMapper<StorageCell> {
|
||||
* @param storage_code
|
||||
* @return
|
||||
*/
|
||||
@Select("delete from acs_storage_cell where substring_index( storage_code,'-',1) = #{storage_code}")
|
||||
@Select("delete from acs_storage_cell where storage_code = #{storage_code}")
|
||||
int deleteByStorageCode(@Param("storage_code") String storage_code);
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
### ApplicationAutoInitial
|
||||
项目启动时候对项目进行资源初始化,初始化器包括8项
|
||||
#### 1.AutoRunServiceImpl
|
||||
[自动线程初始化](./acs/autoThread/初始化自动线程.md)
|
||||
|
||||
1.包括opc信号同步自动线程-根据配置的opcServer(KEP)进行信号同步
|
||||
2.设备驱动线程-execute方法用于设备信号判断
|
||||
|
||||
#### 2.DeviceAppServiceImpl
|
||||
[设备信息加载](./acs/device/device/设备信息.md)
|
||||
|
||||
加载所有设备信息devices至本地内存
|
||||
#### 3.StorageCellServiceImpl
|
||||
加载货位信息至内存
|
||||
#### NDCAutoRun
|
||||
NDC自动线程,通过该线程与NDC创建socket通讯,做phace逻辑交互
|
||||
该版本废弃:统一改agvKit交互
|
||||
#### DeviceOpcSynchronizeAutoRun
|
||||
同步所有OpcService信号,
|
||||
该版本固定使用KEP-SERVER 进行信号同步
|
||||
#### SocketListenerAutoRun
|
||||
socket同步监听测试类,在startconfig中配置不用
|
||||
@@ -1,156 +0,0 @@
|
||||
server:
|
||||
port: 8010
|
||||
#配置数据源
|
||||
spring:
|
||||
datasource:
|
||||
druid:
|
||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:ndxy3_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:P@ssw0rd}
|
||||
# 初始连接数
|
||||
initial-size: 5
|
||||
# 最小连接数
|
||||
min-idle: 15
|
||||
# 最大连接数
|
||||
max-active: 60
|
||||
# 获取连接超时时间
|
||||
max-wait: 5000
|
||||
# 连接有效性检测时间
|
||||
time-between-eviction-runs-millis: 60000
|
||||
# 连接在池中最小生存的时间
|
||||
min-evictable-idle-time-millis: 300000
|
||||
# 连接在池中最大生存的时间
|
||||
max-evictable-idle-time-millis: 900000
|
||||
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
|
||||
test-while-idle: true
|
||||
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
|
||||
test-on-borrow: true
|
||||
# 是否在归还到池中前进行检验
|
||||
test-on-return: false
|
||||
# 检测连接是否有效
|
||||
validation-query: select 1
|
||||
# 配置监控统计
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
stat-view-servlet:
|
||||
enabled: true
|
||||
# 控制台管理用户名和密码
|
||||
url-pattern: /druid/*
|
||||
reset-enable: false
|
||||
login-username: admin
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 记录慢SQL
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
redis:
|
||||
#数据库索引
|
||||
host: ${REDIS_HOST:127.0.0.1}
|
||||
port: ${REDIS_PORT:6379}
|
||||
#连接超时时间
|
||||
timeout: 5000
|
||||
redisson:
|
||||
config: |
|
||||
threads: 4
|
||||
nettyThreads: 4
|
||||
singleServerConfig:
|
||||
database: 1
|
||||
connectionMinimumIdleSize: 8
|
||||
connectionPoolSize: 8
|
||||
address: redis://127.0.0.1:6379
|
||||
idleConnectionTimeout: 10000
|
||||
timeout: 3000
|
||||
# 登录相关配置
|
||||
login:
|
||||
# 登录缓存
|
||||
cache-enable: true
|
||||
# 是否限制单用户登录
|
||||
single-login: false
|
||||
# 验证码
|
||||
login-code:
|
||||
# 验证码类型配置 查看 LoginProperties 类
|
||||
code-type: arithmetic
|
||||
# 登录图形验证码有效时间/分钟
|
||||
expiration: 2
|
||||
# 验证码高度
|
||||
width: 111
|
||||
# 验证码宽度
|
||||
heigth: 36
|
||||
# 内容长度
|
||||
length: 2
|
||||
# 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可
|
||||
font-name:
|
||||
# 字体大小
|
||||
font-size: 25
|
||||
|
||||
#jwt
|
||||
jwt:
|
||||
header: Authorization
|
||||
# 令牌前缀
|
||||
token-start-with: Bearer
|
||||
# 必须使用最少88位的Base64对该令牌进行编码
|
||||
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
|
||||
# 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
|
||||
token-validity-in-seconds: 7200000
|
||||
# 在线用户key
|
||||
online-key: online-token-
|
||||
# 验证码
|
||||
code-key: code-key-
|
||||
# token 续期检查时间范围(默认30分钟,单位默认毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
|
||||
detect: 1800000
|
||||
# 续期时间范围,默认 1小时,这里单位毫秒
|
||||
renew: 3600000
|
||||
|
||||
# IP 本地解析
|
||||
ip:
|
||||
local-parsing: true
|
||||
|
||||
#是否允许生成代码,生产环境设置为false
|
||||
generator:
|
||||
enabled: false
|
||||
# 文件存储路径
|
||||
file:
|
||||
mac:
|
||||
path: ~/file/
|
||||
avatar: ~/avatar/
|
||||
linux:
|
||||
path: /home/eladmin/file/
|
||||
avatar: /home/eladmin/avatar/
|
||||
windows:
|
||||
path: C:\eladmin\file\
|
||||
avatar: C:\eladmin\avatar\
|
||||
# 文件大小 /M
|
||||
maxSize: 100
|
||||
avatarMaxSize: 5
|
||||
logging:
|
||||
file:
|
||||
path: /app/jar/logs
|
||||
config: classpath:logback-spring.xml
|
||||
|
||||
# Sa-Token配置
|
||||
sa-token:
|
||||
# token 名称 (同时也是cookie名称)
|
||||
token-name: Authorization
|
||||
# token 有效期,单位s 默认30天, -1代表永不过期
|
||||
timeout: 2592000
|
||||
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||
activity-timeout: -1
|
||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||
is-share: false
|
||||
# token风格
|
||||
token-style: random-128
|
||||
# 是否输出操作日志
|
||||
is-log: false
|
||||
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
|
||||
# token 前缀
|
||||
token-prefix: Bearer
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="ACSToLMS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ACS请求LMS/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.api.wms.service.impl.AcsToWmsServiceImpl" level="info" additivity="true">
|
||||
<appender-ref ref="ACSToLMS"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="LMSToACS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/LMS下发ACS/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.api.wms.service.impl.WmsToAcsServiceImpl" level="info" additivity="true">
|
||||
<appender-ref ref="LMSToACS"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE18" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/agv下发/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="true">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.agv.server.impl.NDCAgvServiceImpl" level="info" additivity="true">
|
||||
<appender-ref ref="FILE18"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE11" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/一楼NDC系统/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="true">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.autoThread.autoRunThread.OneNDCSocketConnectionAutoRun" level="info" additivity="true">
|
||||
<appender-ref ref="FILE11"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE10" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/二楼NDC系统/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="true">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.autoThread.autoRunThread.service.impl.TwoNDCSocketConnectionAutoRun" level="info" additivity="true">
|
||||
<appender-ref ref="FILE10"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="XgagvDeviceDriver" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/XgAgvDeviceDriver/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
|
||||
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<appender-ref ref="XgagvDeviceDriver" />
|
||||
<!-- 设置队列大小,根据您的需求调整 -->
|
||||
<queueSize>512</queueSize>
|
||||
</appender>
|
||||
<logger name="org.nl.acs.device_driver.agv.xg_agv.XgagvDeviceDriver" level="info" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="XianGongAgvServiceImpl" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/仙工agv请求/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.agv.server.impl.XianGongAgvServiceImpl" level="info" additivity="true">
|
||||
<appender-ref ref="XianGongAgvServiceImpl"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -1,4 +0,0 @@
|
||||
# If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger
|
||||
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
|
||||
log4jdbc.auto.load.popular.drivers=false
|
||||
log4jdbc.drivers=com.mysql.cj.jdbc.Driver
|
||||
@@ -18,12 +18,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!--引入默认的一些设置-->
|
||||
<include resource="log/ACSToLMS.xml"/>
|
||||
<include resource="log/LMSToACS.xml"/>
|
||||
<include resource="log/TwoNDCSocketConnectionAutoRun.xml"/>
|
||||
<include resource="log/NDCAgvServiceImpl.xml"/>
|
||||
<include resource="log/XgAgvDeviceDriver.xml"/>
|
||||
<include resource="log/XianGongAgvServiceImpl.xml"/>
|
||||
<include resource="log/OpcLog.xml"/>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!--withJansi 参数改为true-->
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<?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.acs.angle.mapper.AcsPointAngleMapper">
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
id, start_point_code, start_device_code, next_point_code, next_device_code, start_point_angle, next_point_angle, is_active, create_by, create_time, update_by, update_time
|
||||
</sql>
|
||||
|
||||
</mapper>
|
||||
@@ -1,10 +0,0 @@
|
||||
<?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.acs.angle.mapper.AcsTaskMapper">
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
task_id, ext_task_id, task_code, vehicle_code, vehicle_type, task_type, task_status, compound_task, compound_task_data, request_again, request_again_success, link_num, is_send, material, quantity, priority, create_type, finish_type, execute_code, execute_message, start_point_code, start_device_code, put_point_code, put_device_code, start_point_code2, start_device_code2, next_point_code, next_device_code, next_point_code2, next_device_code2, from_x, from_y, from_z, put_x, put_y, put_z, to_x, to_y, to_z, from_x2, from_y2, from_z2, to_x2, to_y2, to_z2, route_plan_name, route_plan_code, is_needfeedback, emptypallet_num, remark, is_active, is_delete, create_by, create_time, update_by, update_time, weight, agv_system_type, storage_task_type, temperature, oven_time, car_no, start_height, next_height
|
||||
</sql>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user