新增条形码管理服务,支持根据code跨服务获取数据信息

This commit is contained in:
weizhiqiang 2022-08-28 16:15:34 +08:00
parent c52eed9c1a
commit dadd828974
4 changed files with 57 additions and 1 deletions

View file

@ -5,12 +5,12 @@
package com.skyeye.eve.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.entity.barcode.BarCodeApiMation;
import com.skyeye.eve.entity.dict.SysDictDataQueryDO;
import com.skyeye.eve.service.BarCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@ -44,4 +44,18 @@ public class BarCodeController {
barCodeService.writeBarCode(inputObject, outputObject);
}
/**
* 根据条形码code获取数据信息
*
* @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象
*/
@ApiOperation(id = "getDataByBarCode", value = "根据条形码code获取数据信息", method = "GET", allUse = "2")
@ApiImplicitParams({
@ApiImplicitParam(id = "barCode", name = "barCode", value = "条形码code", required = "required")})
@RequestMapping("/post/BarCodeController/getDataByBarCode")
public void getDataByBarCode(InputObject inputObject, OutputObject outputObject) {
barCodeService.getDataByBarCode(inputObject, outputObject);
}
}

View file

@ -21,4 +21,5 @@ public interface BarCodeService extends IService<BarCodeMation> {
void writeBarCode(InputObject inputObject, OutputObject outputObject);
void getDataByBarCode(InputObject inputObject, OutputObject outputObject);
}

View file

@ -4,18 +4,25 @@
package com.skyeye.eve.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.DateUtil;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.eve.dao.BarCodeDao;
import com.skyeye.eve.entity.barcode.BarCodeApiMation;
import com.skyeye.eve.entity.barcode.BarCodeMation;
import com.skyeye.eve.service.BarCodeService;
import com.skyeye.eve.service.IBarCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
/**
* @ClassName: BarCodeServiceImpl
@ -31,6 +38,12 @@ public class BarCodeServiceImpl extends ServiceImpl<BarCodeDao, BarCodeMation> i
@Autowired
private BarCodeDao barCodeDao;
@Autowired
private IBarCodeService iBarCodeService;
@Autowired
private DiscoveryClient discoveryClient;
/**
* 批量新增条形码
*
@ -49,4 +62,31 @@ public class BarCodeServiceImpl extends ServiceImpl<BarCodeDao, BarCodeMation> i
});
this.saveBatch(barCodeList);
}
/**
* 根据条形码code获取数据信息
*
* @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象
*/
@Override
public void getDataByBarCode(InputObject inputObject, OutputObject outputObject) {
String barCode = inputObject.getParams().get("barCode").toString();
QueryWrapper<BarCodeMation> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(BarCodeMation::getCodeNum), barCode);
BarCodeMation barCodeMation = barCodeDao.selectOne(queryWrapper);
// 根据服务名获取服务实例
List<ServiceInstance> allInstances = discoveryClient.getInstances(barCodeMation.getSpringApplicationName());
if (CollectionUtils.isEmpty(allInstances)) {
outputObject.setreturnMessage("this service[{}] has no instance.", barCodeMation.getSpringApplicationName());
return;
}
// 调用SDK服务获取数据信息
Map<String, Object> result = iBarCodeService.getDataSdkByObjectId(allInstances.get(0).getUri(), barCodeMation.getObjectId(),
barCodeMation.getCodeImplClass());
outputObject.setBean(result);
outputObject.settotal(1);
}
}

View file

@ -27,6 +27,7 @@ spring:
logging:
level:
com.skyeye.eve.dao: debug
com.skyeye.eve.rest: debug
webroot:
# 工作流相关的服务