Compare commits

..

No commits in common. "0bca14aa1a94a769e7f5a13a1434fe0e076c0343" and "50b2d81ec54c8173b5e19991023db29dca7f2df2" have entirely different histories.

4 changed files with 37 additions and 72 deletions

View File

@ -41,7 +41,6 @@ import org.ttzero.excel.entity.Workbook;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@ -771,20 +770,4 @@ public class DeviceController extends ControllerBase {
}
return ResponseEntity.ok().build();
}
/**
* 获取设备机型
* @param deviceNo 设备编号
* @return 设备机型
*/
@GetMapping("/getModelNo")
public ApiResult<String> getModelNo(@RequestParam @NotBlank String deviceNo) {
Device device = deviceService.lambdaQuery()
.eq(Device::getDeviceNo, deviceNo)
.orderByDesc(Device::getDeviceState)
.last("limit 1")
.one();
VUtils.trueThrowBusinessError(Objects.isNull(device)).throwMessage("设备编号无效");
return ApiResult.success(device.getModelNo());
}
}

View File

@ -16,7 +16,6 @@ import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.VUtils;
import com.nflg.mobilebroken.repository.entity.Device;
import com.nflg.mobilebroken.repository.service.IDeviceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -25,7 +24,6 @@ import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class AdminDeviceService {
@ -72,6 +70,7 @@ public class AdminDeviceService {
/**
* 导入
*
* @param data
*/
@Transactional(rollbackFor = Exception.class)
@ -107,6 +106,7 @@ public class AdminDeviceService {
/**
* 同步CRM 数据
*
* @param dateParam
* @param dateParam
*/
@ -129,46 +129,31 @@ public class AdminDeviceService {
Map<String, Device> deviceMap = deviceList.stream().collect(Collectors.toMap(Device::getSourceId, device -> device));
crmDeviceList.forEach(u -> {
if (StrUtil.isBlank(u.getProductLine5__c())) {
log.error("设备机型为空,{}", JSONUtil.toJsonStr(u));
} else {
if (StrUtil.isNotBlank(u.getMachine_Number__c())) {
Device ent = deviceMap.get(u.getId());
if (Objects.nonNull(ent)) {
ent.setUpdateBy("crm");
ent.setUpdateTime(LocalDateTime.now());
} else {
ent = deviceService.lambdaQuery()
.eq(Device::getDeviceNo, u.getMachine_Number__c())
.eq(Device::getSourceFrom, DeviceSourceFromEnum.MANUAL_ADD.getSourceKey())
.orderByDesc(Device::getDeviceState)
.last("limit 1")
.one();
if (Objects.nonNull(ent)) {
ent.setUpdateBy("crm");
ent.setUpdateTime(LocalDateTime.now());
} else {
ent = new Device();
ent.setCustomerId(0);
ent.setCreateBy("crm");
ent.setCreateTime(LocalDateTime.now());
}
ent.setSourceId(u.getId());
}
ent.setDeviceState(u.getCfsStatus__c());
ent.setDeviceNo(u.getMachine_Number__c());
ent.setDeviceType(u.getAssetProductLine3__c());
ent.setDeviceTypeSub(u.getAssetProductLine4__c());
ent.setModelNo(u.getProductLine5__c());
if (StrUtil.isNotBlank(u.getAccount())) {
JSONObject jsonObject = JSONUtil.parseObj(u.getAccount());
String cname = jsonObject.getStr("Name");
ent.setCustomerName(cname);
ent.setCustomerId(0);
}
ent.setSourceFrom(DeviceSourceFromEnum.FROM_CRM.getSourceKey());
result.add(ent);
if (StrUtil.isNotBlank(u.getMachine_Number__c())) {
Device ent = deviceMap.get(u.getId());
if (Objects.nonNull(ent)) {
ent.setUpdateBy("crm");
ent.setUpdateTime(LocalDateTime.now());
} else {
ent = new Device();
ent.setSourceId(u.getId());
ent.setCreateBy("crm");
ent.setCreateTime(LocalDateTime.now());
}
ent.setDeviceState(u.getCfsStatus__c());
ent.setDeviceNo(u.getMachine_Number__c());
ent.setDeviceType(u.getAssetProductLine3__c());
ent.setDeviceTypeSub(u.getAssetProductLine4__c());
ent.setModelNo(u.getProductLine5__c());
if (StrUtil.isNotBlank(u.getAccount())) {
JSONObject jsonObject = JSONUtil.parseObj(u.getAccount());
String cname = jsonObject.getStr("Name");
ent.setCustomerName(cname);
}
ent.setSourceFrom(DeviceSourceFromEnum.FROM_CRM.getSourceKey());
ent.setCustomerId(0);
result.add(ent);
}
});
if (CollUtil.isNotEmpty(result)) {

View File

@ -18,6 +18,6 @@ public class DeviceQRCodeService {
public byte[] generate(String deviceNo, String modelNo) throws Exception {
ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "DeviceQRCodeHost").one();
return QRCodeUtil.generateDeviceQRCode(deviceNo, StrUtil.format(config.getValue(), deviceNo, modelNo), 550, 550);
return QRCodeUtil.generateDeviceQRCode(deviceNo ,StrUtil.format(config.getValue(), deviceNo,modelNo),200, 200);
}
}

View File

@ -11,7 +11,6 @@ import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Hashtable;
public class QRCodeUtil {
@ -49,16 +48,16 @@ public class QRCodeUtil {
/**
* 为图片添加边框和文字
*
* @param qrImage 原始二维码图片
* @param text 要添加的文字
* @return 带边框和文字的新图片
*/
private static BufferedImage addBorderAndText(BufferedImage qrImage, String text) throws Exception {
private static BufferedImage addBorderAndText(BufferedImage qrImage, String text) {
int borderSize = 1;
int extend1 = 10;
int extend2 = 50;
int newWidth = qrImage.getWidth() + extend1;
int newHeight = qrImage.getHeight() + extend2;
int extend=10;
int newWidth = qrImage.getWidth() + extend;
int newHeight = qrImage.getHeight() + extend;
// 创建新画布扩大尺寸以容纳边框
BufferedImage newImage = new BufferedImage(
newWidth,
@ -66,12 +65,11 @@ public class QRCodeUtil {
BufferedImage.TYPE_INT_RGB
);
Graphics2D g = newImage.createGraphics();
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// 填充边框颜色
g.setColor(Color.WHITE);
g.fillRect(0, 0, newWidth, newHeight);
// 绘制原始二维码居中
g.drawImage(qrImage, borderSize + extend1 / 2, borderSize, null);
g.drawImage(qrImage, borderSize + extend / 2, borderSize, null);
// 绘制边框
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(borderSize));
@ -81,14 +79,13 @@ public class QRCodeUtil {
g.drawLine(0, newHeight - borderSize, newWidth, newHeight - borderSize);
// 添加文字居中显示
g.setColor(Color.BLACK);
InputStream is = QRCodeUtil.class.getResourceAsStream("/fonts/simsun.ttc");
Font baseFont = Font.createFont(Font.TRUETYPE_FONT, is).deriveFont(Font.BOLD, 45.0f);
g.setFont(baseFont);
g.setFont(new Font("Arial", Font.PLAIN, 14));
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
FontMetrics fm = g.getFontMetrics();
int textWidth = fm.stringWidth(text);
int x = (newImage.getWidth() - textWidth) / 2;
g.drawString(text, x, qrImage.getHeight() + (extend2 - fm.getAscent()) / 2);
is.close();
int y = newImage.getHeight() - 15;
g.drawString(text, x, y);
g.dispose();
return newImage;
}